- 923.53 KB
- 30页
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'彳戾4农茨PINGDINGSHANUNIVERSITY项目报告课程:C程序设计实训项目名称:学生成绩管理系统专业年级:软件工程(专升本1班)姓名:温春宇学号:1335301532014年5月21日第七组组长:温春宇
任务分配情况学号姓名角色f-r:务打分133530153温春宇组长管理综合修改133530104张从新组员查看成绩统计133530133梁凌志组员查看成绩排序133530135殷广林组员输出学丰成绩133530119朱义振组员查询学生成绩133530142严宇苏组员输入插入删除学生成绩
1项目简介11.1项目意义11・2项目说明11.3关键技术12总体设计32.1功能模块设计42.2主要算法设计52.3主要数据结构设计63详细设计与实现73.1创建学生信息模块的设计与实现73.2增加学生信息模块的设计与实现83.3删除学生信息模块的设计与实现93.4修改学牛信息模块的设计与实现113.5显示学生信息模块的设计与实现123.6查询学生信息模块的设计与实现143.7学生信息排序模块的设计与实现153.8学生信息幣理模块的设计与实现173.9保存学牛信息模块的设计与实现194结论211项目简介1.1项目背景随着科学的发展和社会的进步,许多过去有人工处理的繁杂事
务开始交付计算机来完成。学生成绩管理系统可以说是一个得力助手,它利用计算机对学生成绩进行统一管理,实现学生成绩信息管理工作流程的系统化、规范化和自动化,提高了广大教师的工作效率。本程序旨在训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件等的各种基本操作,使学生能对C语言的文件操作有一个更深的理解。为进一步开发出高质量的信息管理系统打下坚实的基础。1.2项目意义复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握;课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;培养学生在项目开发中团队合作精神、创新意识及能力。1.3项目需求实现:实现学生成绩的录入;实现学生成绩的管理■增删改查、排序、输出;实现学生成绩的统计等。详细如下:(1)创建学生成绩信息文件,根据提示输入学生的各项信息,计算岀总分和平均分,然后按学号对学生信息进行排序,并将排序后的学生成绩信息存储到一个二进制文件中。(2)增加学生信息,在原有学生信息文件的基础上增加新的学生成绩信息。要求:增加后的学生信息仍按学号排序,并继续保存至原文件。(3)删除学生信息,提示用户输入要进行删除操作的学号,如果在文件中有该信息存在,则将该学号所对应的学生信息删除,否则输岀提示信息,并提示用户选择是否继续进行删除操作。(4)修改学生信息,提示用户输入要进行修改操作的学号,如果在文件中有该息存在,则将提示用户输入该学号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。(5)显示全部学生各科成绩信息;(6)按不同条件对学生信息进行查询操作,输出满足条件的学生信息。
a.按学号查询,输入一个学号,输出对应的学生信息。b.按姓名查询,包括精确查询(输入全名),模糊查询(输入姓)。(7)按不同条件对学生成绩进行排序操作,输出排序后的学生信息。a.按某课程成绩由高到低排序显示;b.按某总分由高到低排序显示。(8)按不同条件对学生成绩进行统计工作。a.对各科成绩统计分析(最高分、最低分、不及格率等)b.统计各科各分数段的人数分布要求:(1)链表处理数据:学生作为某一对象,其自身包含不同属性,而每个属性的类型并不完全相同,因而,我们必须通过创建结构体类型的变量来定义学生信息。而用户在输入学生信息时,并不一定指定学生人数,因此,需要系统动态分配内存给节点,从而达到随时增删的目的。(2)文件读写存储学生信息(3)设计一个菜单,具有上述规定的操作要求、退出系统等最基本的功能。(4)界面美观,人机交互良好。
2总体设计2.1功能模块设计1―创建学生信息模块的设计与实现2―增加学生信息模块的设计与实现3―删除学生信息模块的设计与实现4―修改学生信息模块的设计与实现5―显示学生信息模块的设计与实现6―查询学生信息模块的设计与实现7―学生信息排序模块的设计与实现8―学生信息整理模块的设计与实现9―保存学生信息模块的设计与实现"C:UsersAdministratorDesktop^^H^^2^生成塔管淫系统Debug学生成绕管理浆统....学生成绩管理系统自心自心自3兰m亠一一一一R步S吉Z佥-T--塗M.于总帝创保13579"息息息理::::it^ft整=生生生息统一一入改询生出二24680二B--.UTT菜请输入您的选择<旷9〉:图2-1学生成绩管理系统界而图
2.2主要算法设计图2-2学生成绩管理系统主体函数设计界面图
2.3主要数据结设计表2・1函数列表printhcadcr()打印输出表头printdata(Node*pp)打印输出单链表PPstringinput(char*t,intlens,char*noticc)输入字符串numberinput(char*notice)输入数值型数据Disp(Link1)显示单链表1屮存储的学生记录Locate(Link1,charfindmess[],char定位链表中符合要求的节点nameornum[J)Create(Link1)单链表中创建学生信息节点Find(LinkI)查找满足条件的学生信息Del(Link1)删除满足条件的学生信息Modify(Link1)修改满足条件的学生信息lnscrt(Link1)插入学生信息Tongji(Link1)统计出该班的总分,单科Sortscorc(Link1)插入排序法实现排序升序Sortnum(Link1)插入排序法实现排序降序Savc(Linkl,charfilc[20])数据写入磁盘中的数据文件main()整个学生成绩管理系统的控制
表2-2数据列表HEADER1,2,3系统表头变量a...z局部变量FORMAT打印变量3•••Z全局变量DATA输出数据变量users[10]账户数组nuin[10]学号数组ps[7]密码数组name[15]姓名数组Nodenode结构变量xueyuan[15]学院数组Linknode指针变量banji[15]班级数组cgradeC语言成绩mgrade数学成绩egrade英语成绩total总分ave平均分
3详细设计与实现3.1创建学生信息模块的设计与实现创建学牛信息实现界面如图D
!1:1■1•一一.1一一:付乐颖;信息学院;计0902I1__1_-:1!100!■1:!-!100:I1_——;100:11113001-!!100.0■■1S3■1!张怀志;信息学院!计加02I1__1_■1!??!■1I1:88!I1_19911I!2641a!88.0■■1:8{刘志亚;信息学院;计0902I1a■1!73:11I1!91!11_1821一1I1246a!82.0111:5;王博伦;经济学院;经0901I1a1155511111!48i11_(56;一11*11591553.0111!71一一一一11王龙龙«经济学院1经090211!57:•1118711——1-(6711*!2111!?0.30!9:丁韦;信息学院;计090111!87:871871Iju!261■―1!87.0S3按任意键继缮?磨入学号〈输入⑹返回主菜单〉:2-r-P/L班级温春宇软舲院1班成绩[0-100):99…支绩[0-100]:99英语成绩[0-1001:99请输入李号《输入⑹返回主菜单〉:图3-1创建学生信息系统界面
3.2增加学生信息模块的设计与实现
S3;张怀志;信息学院;计0902!77!88:99!264!88.0!1—:81•IMM|MMMMMB*|1刘志亚:信息学院:计0902■ii1•_1_73!-i■.i_1•91!■MMlOM82!246―1-i•一i_82.0■:51;王博伦;经济学院;经即皿•OB*MB*OB*WMB»OBBMM[OB*MMOBBOIBBW■■■»-11•—!-55i■i・!-48!56!159ii•一1_53.0i7■«王龙龙!经济学院!经0902aiaI••_I_5?ii■.i_87!6?!211•••一1_70.3■!9i丁韦M言息学院;计即0i■■1■•—1.87i■i.•—87!87!2611■•一Q—87.0I—:2:一一;温春宇1软件学院江班•一;•1i-•1-:■99iii:-99!99!297•—1"•1一;一99.0按任意键继续?班级2C谙司感绩[0-100]:60频学成绩[0-100]:60英语成绩[0-1001:60图3-2增加学生信息系统界面图3.3删除学生信息模块的设计与实现输入选择1,27Select==?1、;2援援学姓名删删赊除
NofindQ;r=r->next;r->next=p->next;free(p);saveflag=l;NofindQ;
!3■1!张怀志;信息学院!it0902!|aiI77!88!_1a_99!I!264I!88.0!■1:4■1;测试!ui:1!|a-11601a!60:_11_1601I1!180Ii60.0!11:8■1!刘志亚;信息学院;计即02!1■-1173111915_a1182!11:2461-—!82.0!a1:5I1;王博伦!经济学院;经09血!5511148!_1a(56;I1:159I!53.0!111?1一一一一11王龙龙:经济学院1经旳02!5?1a18?1167!1!2111J70.3:■]i11911{丁韦;信息学院11+0901J87•|—|1871-118?1一—|!261|.....!87.0:I1■1:2・1;温春宇;软件学院L班;)・■■99a1199!_1119911I1297I■1!99.0;1011按勺I■1a圧意键继续?11(I11======>1按学号删除=====>2按姓名删除请选择[1.21:1请输入现有f的学生的学号:4>deletesuccess!8I1刘志亚;信息学院;计防02!1-1_111?3I1191|1!82!I1!24611182・0I151;王博伦:经济学院:经0901!1>•I11:55!II11148i1111:56!11Ia:159:11I:53.01I7■1!王龙龙;经济学院;经09021)・■1I1!571111187:1111:67:1111:2111111:70.31!9:丁韦M言息学院;计0901:11187:III187;87!261!87.0>2按姓名删除按任意键继续?27;=>1按学号删除请选择[1,23:2请输入现有生的姓名丁韦删除成功?图3-3删除学生信息系统界而图
3.4修改学生信息模块的设计与实现Modify(LinkI)修改学生信息Node*p;charfindmess[20];printf(,rn====。没有学生信見!iT)依次修改信息;张怀志;信息学院;计0902!77!88!99!264!88.0!4;测试:p:1:60:60:60:180!60.0:8戊I」志亚I信息学院Jt+0902I73I91:82:246I82.0!!5;王博伦;经济学院;经09血!55!48!56;159!53.0!7;王龙龙;经济学院;经0992!5?!8?56?!211!70.3J9;丁韦I信息学院I计0901!8?!87J87!261!87.0!!2;温春宇;软件学院江班!99!99!99;297!99.0區输入现黯翳番篦:4姓奄亟试•请输入趣熨姓名:赵钱孙c语目成纟!h60,C语百成缰[0-1並]数学成绩:6/数字成绩10-100]:70英语成绩:6靳英语成绩[0-1001:70图3-4修改学生信息系统界面图
3.5显示学生信息模块的设计与实现图3-5显示学生信息打印系统界面图
3.6查询学生信息模块的设计与实现
Nofind();printdata(q);q=q・>next;I学号;姓名I学院III厂亦亦&議誓濛石玉鬲―&帚「示再歹::2;温春宇;软件学院江班!99!99!99!297!99.021二]:号询询询询“学書香香一.3的号名院级,2生学姓学班[1学1234选有->=>=>=>请现■==V■=_一一一SZ二二二输按任意键返回王菜单?專学;2・•]:名询询询询M姓查查查查山的号名院级,2生学姓学班[1学>1>2>3>453.055!48王博伦;经济学院;经09皿70.367;21157!87王龙龙:经济学院;经0902图3-6查询学生信息打印系统界面图入4刖
3.7学生信息排序模块的设计与实现
二学生彳話、表学号;姓名;学院:班级农语訂;敎学;英语;总分!平均分:—>■一一—•IIIII•—一IaI・Ia1;温春宇;信息学院;计阳025100!100:100!300!100.0!3;张怀志;信息学院;计090257?!88!99!264!88.0
5;王博伦;经济学院;经0901555:48:56:159!53.07;王龙龙;经济学院;经09025?!87!67!211!?0.38;刘志亚;信息学院;计防0273!91!82:246!82.09;丁韦;信息学院;计090187!87:87!261!87.0
学生仁自表-:学号;姓名;学院;班级:C语詈1毀学;1__11_11_I_1;英语;总分1111!平均分11111111!1;温春宇;信息学院;计阳02!100:100!11111■-1111!100:300!1111i100.01IIi1a11S31张怀志M言恵学院;计阳02!?7!88!1101111I11:9912641I111!88・0I11111i1!9;丁韦;信息学院;计0901:8?!8?:1111aa1111:8?!261!111I!8?.0|II1iiai!8:刘志亚;信息学院;计0902!73!91:11a1a11I1:82!246:111I:82.01I*111[7;王龙龙;经济学院;经册021571871I1167!2111I11!70.3!5;王博伦;经济学院;经0901!55!48ii1:56!159!1・」・"・""!53.0图3-7排序学生信息打印系统界面图3.8学生信息整理模块的设计与实现Node^pm,^pe,#pc,#pt;TonEji(Ltn上1)Node*r=l->next;绽计农绩cl=03ml^Oje1=0^c2=二0,e5=0;/*保03c4二0$c5-Ojm2二0,m3二0$itl4=0^m5二0,e2=0^e3=0je4"绫中不及格的人数材printf("n>没有学生信息!h);Eetch();Disp(l);pm=pe=pc=pt=r;Whilefrl这里只注C衣護的篆计.数学衣養和英谟r・》d且ta.CEradeaata.cEfade<90r->=90
<60:1[60,70>:1[70,80>:0[80,90>:2[90,100]:2<60:1[60,70>:0[70,80):0[80.90>:3[90,1001:2<60:2[60,70>:0[70.80>:2[80,90>:1[90,1001:1C语肯央语:000000003111为为为为亠咼高高亠咼曰BWW取各各各各姓姓姓姓r>;C语言不及不及格率0.3333330.1666670.166667图3-8统计学生成绩信息打印系统界面图3.9保存信息整理模块的设计与实现r=r->next;Node叱
While⑴WhH电⑴(strcmp(r->daxabanjiji(1tfcmp(i->datA.xueyNode幕Locate2(LinkLcharfindmess[],charnameornum[])pxintdata(x).logo«l;pr:nxdata(f);logo=l;Nodeirtlogo=0;r*f->next;f»r->n*xx;returnlogo;学生成绩管理糸统"自貳自5理一一ft^^i星生生息统::::入改询生岀=插馨i24680菜、壬自3自a自a亠__m=dl^y=R筈吉建您丁忌存创®^保13579请输入您的选择<0^9>:9…■■汶件保存成功,总共保存的学生信息数量为图3-9保存学生成绩信息打印系统界面图4结论这次课程设计之前,我感觉学的东西很少,很零散,不知该怎么融合到一起,就要课程设计,是不是太难为我们了。刚看到题目时,我一脸茫然,完全不知道如何下手、从哪里下手,没有一点思绪。但是我明白,这是一个很好的锻炼机会。第一周基本上都是在看书,把基本知识再熟悉一边。到了第二周的时候,还是没有思路,就看了看老师发的例题,从这道例题上
我得到了不少启发,然后我把整个程序的思路理清了,开始着手写程序。我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的儿个模块编写出来,心里挺开心的。但是,到了即将完成的时候,我又不得不再次陷入困境,编译时出现很多错误。同时我也被提醒以后办事的时候要认真,仔细,考虑周全。我开始一个一个的完善修改这次课程设计提高了我的综合运用所学知识的能力。在设计的过程中遇到很多问题,可以说是困难重重,这毕竟第一次做,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。程序的编写需要有耐心,有些事情看起来很复杂,但问题需要一点一点去解决,分析问题,把问题一个一个划分,划分成小块以后就逐个去解决,再总体解决大的问题。这样做起来不仅有条理,也使问题得到了轻松的解决。同时我对于专业课的学习有了更加深刻的认识,以为现在学的知识用不上就加以怠慢,等到想用的时候却发现自己的学习原来是那么的不扎实。以后我会努力学好每门专业课,让自己拥有更多的知识,才能解决更多的问题!总的来说,这次课程设计让我获益匪浅,对C语言也有了进一步的理解和认识!对我而言,知识上的收获虽然重要,但精神上的丰收却更加可喜。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!'
您可能关注的文档
- 工作汇报项目报告年终总结计划PPT模板
- 成都世联策划顾问项目报告
- 收购项目报告商业计划书模板
- 广州同博软管有限公司年产全塑管400万套建设项目报告表(5.21)
- cq天津理研添加剂项目报告表(2017年3月3日)-天津理研维他食品有限
- 10万吨年环保净水剂建设项目报告书(2)pdf
- 新建年产300万片分子键裂扫描诊断芯片项目报告书
- 商务总结、工作汇报、项目报告——活力激情滑雪运动主题ppt模板
- 《皮囊》(节选)翻译项目报告
- XX移动用户手机上网感知提升项目报告
- 河南华利制药股份有限公司固体制剂和小容量注射剂项目报告表
- 项目报告分析
- 克拉美丽防漏堵漏项目报告
- 乡镇垃圾综合利用项目报告书
- 2019供销社网络项目报告
- 住建机关项目报告
- 3.汉拿山-项目报告0910
- 20140708中山门项目报告