学生成绩管理系统课程设计报告c++484.pdf
《学生成绩管理系统课程设计报告c++484.pdf》由会员分享,可在线阅读,更多相关《学生成绩管理系统课程设计报告c++484.pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学生成绩管理系统课程设计报告 前言 一、系统的设计需求 1、整个系统均用 C 语言实现;2、利用指针、链表来实现学生成绩的数据结构设计;3、系统具有输入、显示、删除、排序、退出基本功能;4、系统的各个功能模块都用函数的形式来实现;5、可以将学生信息全部显示出来出来。二、系统的功能模块划分 每一条记录包括一个学生的姓名、成绩。同时 1、输入功能:一次可以完成一个学生成绩记录的输入。2、显示功能:完成全部学生记录的显示。3、删除功能:对指定学生的成绩进行删除。、排序功能:按学生从大到小进行排序.5、修改功能:对学生的成绩进行修改。三、系统的整体设计 1.数据结构设计:A、输入功能的设计:void
2、insert_fun(vod)car sem;pt=(stuct udent)aoc(izof(sruc studn));pintf(Student nae:”);ets(ptr-nme);/t从标准输入设备读取字符串/prnt(”Student coe:”);gets(_tmp);pr-coe=ti(stmp);/把字符串转化为 整数/B、删除功能的设计:vd ee_c(void)/现在进入删除操作 har el_name20;pritf(”elete tuden name:);ges(e_name);pev=d;urrent hea-next;wi((cuent!=NULL)&(strcm
3、p(crretnme,el_nam)!=0)/用到了tcmp 比较字符串 prev=curret;curet urrnt-nt;if(current!NUL)prevnxt=urret-nt;free(curet);/释放当前位置/pntf(”%s sudnt rcod detedn”,de_ae);/输出被删除的姓名/else ptf(”Stuent s t fond,eam);/否则此学生不存在/C、排序功能的设计:vid ort_fun(oi)/插入数据/pre=had;/把头指针所指的值付给ev/curre=head-net;/把头指针的下一个指针值付给当前指针所指的位置/while(
4、(curet!=NU)(uret-score tscore))rev=current;urret=curentnex;pt-nt=urrent;rev-next pt;、修改功能的设计:void modifyunc(od)char tem20,s_tmp;/定义字符类型/rintf(Moiy uent name:);ts(n_tep);/这样输入姓名 currnhdnext;whil(urrnt!=NL)&(stm(urrent name,n_tp)!=0))pre=currt;curnt=urrennext;if(currnt!=LL)pnt(*n”);prt(”tudnt name:%sn
5、”,crrentam);printf(Stut ore:%d”,current-score);prtf(*n”);pintf(”Pleas ente ne scre:”);gts(s_temp);urrenscore=atoi(s_te);print(”%s stdent ecord miiedn,n_tem);/输出被修改的成绩/els printf(”Sent%s nt foundn,_tem);/否则此学生不存在/anykey_fnc();E、显示功能的设计:oid dspayfn(vd)/定义显示/int count=0;syst(”c”);if(headnex=UL)/如果头指针所指
6、数为空/prit(No suden recorn”);则输出学生记录为空/else/否则输出学生姓名和成绩/pintf(AME SOR);pritf(”-n”);crent=headnxt;whle(cr!=NLL)intf(%s%3dn”,urentnm,curentscr);count+;current=curen-nxt;if(cont%20=)th();pitf(-n);pint(”Ttal d record(s)fundn”,ount);2。功能模块的具体设计 整个系统除了主函数外,另外还有 8 个函数,实现 5 大功能:输入功能、显示功能、排序功能、删除功能、修改功能。各个函数的详
7、细设计说明分别如下:1、主函数 main()利用wh()循环和 sthc()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。、输入记录函数 getch();insetfunc();这是一个无参函数,用来执行第学生成绩记录的输入,当当没有学生纪录时就开始进行输入操作。算法:先声明一个首节点 head,并将ad-nxt 设为ULL。然后用 if((fptrfoen(“s。dt”,”))=NL)对程序进行判断如果成立则进行输入,输入时运用 getc()函数和 inerfuc()主导来完成.最终效果图:3、显示记录函数 oi isly_func(void)这是一个不返回值的有参函数,负责对全
8、部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示。算法:先用 if 语句对头指针的下一给位置进行判断看是否为空如果为空则不显示如果不为空则输出学生姓名及成绩.算法:现将 head-ne赋值给当前位置 crre然后再用hile 对 crrent 进行定义最后输出 最终效果:、删除记录函数 void delete_unc(vod)这是一个有参函数,先输入要删除的学生记录的 姓名,找到后显示该学生信息,等确认后便可进行删除。算法:从 p 指向的第一个结点开始,检查该结点中的 num 值是否等于输入的要求删除的那个姓名。如果相等就将该结点删除,如不相等,就将 p 后移一个结点,再如此进行下
9、去,直到遇到表尾为止。最终效果:5、排序函数 void sor_fnc(void)这是一个有参函数,按学生成绩的大小进行排 6、修改函数 void moifyunc(vd)这是一个有参函数,先输入要修改的学生姓名找到后对其成绩进行修改。算法:先将 ha-net 赋值给当前位置unt 然后用 whie 函数对其进行定义然后检查该节点中的姓名是不是 p 要找的如果相等就修改,如不相等,就将 curren next赋值给 crent 在于 p 节点比较直到遇到表尾为止。五、调试分析)1(刚开始没有那个初始化函数,程序运行后,没有输入任何数据就试得去执行显示功能,结果显示的是一些乱码!加入初始化函数后
10、,这种现象也随之消失。)2(刚开始执行输入函数,输入十个学生的成绩,输完后执行显示功能,学生成绩记录是按输入时的顺序显示的,试着在其中增加一些语句,希望能把学号按从大到小的顺序显示,但暂时没有成功,但最后还是按从大到小的顺序输出了。()在输入函数中设了一个无限循环,可以输入无数个学生的成绩信息,但最后失败了只能一个一个输入。(4)输入太多个学生的成绩时,屏幕显示不能控制为一页一页显示,所以为了方便起见,不要输入太多记录,十七左右为最佳.六、总结经过一个多星期的 C 语言课程设计,感觉自己收获不少!首先是:链表本来上课是没有上的,但这个课程设计里面主要都是用链表,因为要达到这样的功能,使用链表相
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 课程设计 报告 c+ 484
限制150内