学生成绩管理系统千行代码c语言课程设计(编辑修改稿)内容摘要:

*/ } else { /* 若未找到待插入节点的位置且未到表尾,则继续找 */ while (przongfen pzongfen amp。 amp。 prnext != NULL) { temp = pr。 /* 在 temp 中保存当前节点的指针 */ pr = prnext。 /* pr 指向当前节点的下一节点 */ }//printf(程序运行到此 )。 if (przongfen = pzongfen) { if (pr == headnext) /* 若在头节点前插入新节点 */ { pnext = headnext。 /* 将新节点的指针域指向原链表的头节点 */ headnext= p。 /* 让 head 指向新节点 */ } else /* 若在链表中间插入新节点 */ { pr = temp。 内蒙古科技大学课程设计说明书 10 否 是 否 pnext = prnext。 /* 将新节点的指针域指向下一节点 */ prnext = p。 /* 让前一节点的指针域指向新节点 */ } } else /* 若在表尾插入新节点 */ { prnext = p。 /* 让末节点的指针域指向新节点 */ } } printf(学生资料添加成功。 \n)。 ziliao = 1。 return head。 /* 返回插入新节点后的链表头指针 head 的值 */ } 输出模块设计 1. 流程图 /* 函数的功能:菜单更能 5 显示学生资料 */ void DisplyNode(NODE *head,char kemu [N][20] ) { NODE *p = headnext。 int j = 1。 printf( 学号 姓名 %8s%8s%8s%8s%8s 总分 平均分 编号\n,kemu[0],kemu[1],kemu[2],kemu[3],kemu[4])。 while (p != NULL) /* 若不是表尾,则循环打印 */ { printf(%13ld%8s%8d%8d%8d%8d%6d%% %3d\n,pxuehao, pname, pchengji[0], pchengji[1], pchengji[2], pchengji[3], pchengji[4], pzongfen, ppingjun,j)。 /* 打印第 j 个节点的数据 */ p = pnext。 /* 让 p 指向下一个节点 */ j++。 传入链表头指针 是否为空链表 是否达到表尾 输出 是 返回主菜单 内蒙古科技大学课程设计说明书 11 是 1 2 3 是 是 否 否 否 } } 查找模块设计 1. 流程图 /* 函数的功能:菜单功能 3 查询学生资料 */ void FIND (NODE *head,char kemu [N][20] ) { NODE *p = headnext。 int j = 1,k = 1,c=0。 long xuehao。 char name[20]。 char c1[1]。 int zongfen。 printf(请输出查找方式: \ \ \ \n======)。 c1[0] = getche()。 c = atoi(c1)。 printf(\n)。 if(c==1) { printf(请输入学号: )。 scanf(%ld,amp。 xuehao)。 while (p != NULL) /* 若不是表尾,则循环打印 */ 姓名是否相同是否 到表尾 分数是否大于查询分数 学号是否相等是否到表尾 输出 进入下一个节点 进入下一个节点 内蒙古科技大学课程设计说明书 12 { if(xuehao == pxuehao) { if(k) { printf( 学号 姓名 %8s%8s%8s%8s%8s 总分 平均分 \n,kemu[0],kemu[1],kemu[2],kemu[3],kemu[4])。 } printf(%13ld%8s%8d%8d%8d%8d%6d%% \n,pxuehao, pname, pchengji[0], pchengji[1], pchengji[2], pchengji[3], pchengji[4], pzongfen, ppingjun)。 /* 打印第 j 个节点的数据 */ k=0。 } p = pnext。 /* 让 p 指向下一个节点 */ } if(k==1) printf(抱歉,您查找的信息不存在。 \n)。 system(pause)。 } else if(c==2) { printf(请输入姓名: )。 scanf(%s,name)。 while (p != NULL) /* 若不是表尾,则循环打印 */ { if(strcmp(name,pname) == 0) { if(k) { printf( 学号 姓 名 %8s%8s%8s%8s%8s 总分 平均分 \n,kemu[0],kemu[1],kemu[2],kemu[3],kemu[4])。 } printf(%13ld%8s%8d%8d%8d%8d%6d%% \n,pxuehao, pname, pchengji[0], pchengji[1], pchengji[2], pchengji[3], 内蒙古科技大学课程设计说明书 13 pchengji[4], pzongfen, ppingjun)。 /* 打印第 j 个节点的数据 */ k=0。 } p = pnext。 /* 让 p 指向下一个节点 */ } if(k==1) printf(抱歉,您查找的信息不存在。 \n)。 system(pause)。 } else if(c==3) { printf(请输入要查找多少分以上的学生: )。 scanf(%d,amp。 zongfen)。 while (p != NULL) /* 若不是表尾,则循环打印 */ { if(zongfen =pzongfen) { if(k) { printf( 学号 姓名 %8s%8s%8s%8s%8s 总分 平均分 \n,kemu[0],kemu[1],kemu[2],kemu[3],kemu[4])。 } printf(%13ld%8s%8d%8d%8d%8d%6d%% \n,pxuehao, pname, pchengji[0], pchengji[1], pchengji[2], pchengji[3], pchengji[4], pzongfen, ppingjun)。 /* 打印第 j 个节点的数据 */ k=0。 } p = pnext。 /* 让 p 指向下一个节点 */ } if(k==1) printf(抱歉,您查找的信息不存在。 \n)。 system(pause)。 } else { printf(输入有误,请重新输入。 \n)。 内蒙古科技大学课程设计说明书 14 system(pause)。 caidan()。 printf(\n)。 FIND (head,kemu)。 } } 排序模块设计 1. 流程图 /* 函数的功能:菜单功能 学号升序排列学生 */ NODE* paixv(NODE* head) { NODE* r = head。 NODE* SL = NULL。 NODE* t,*cp,*ap。 char xv[1]。 int xv1。 printf(请选择排序方式 :\ \t\ \ \n)。 xv[0] = getche()。 xv1 = atoi(xv)。 while (r != NULL) { 返回主函数 调用显示资料函数 内蒙古科技大学课程设计说明书 15 t = rnext。 cp = SL。 ap = NULL。 while (cp != NULL) { if(xv1==1) { if(rxuehao cpxuehao) { break。 } else { ap = cp。 cp=cpnext。 } } else if(xv1==2) { if(rzongfen cpzongfen) { break。 } else { ap = cp。 cp=cpnext。 }} } if (ap == NULL) { rnext = SL。 SL = r。 } else { rnext = cp。 apnext = r。 } r = t。 } printf(排序完成。 \n)。 return SL。 } 内蒙古科技大学课程设计说明书 16 否 是 保存及读取模块设计 1. 流程图 2. 模块代码 /* 函数功能:菜单功能 10 对新录入的学生信息进行保存 */ void Save(NODE* l) { FILE *fp。 NODE。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。