版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机与软件工程学院C+课程设计报告选题:学生成绩管理系统专业班级:时间:2016/6/20 2016/6/29指导教师:完成日期:2016/6/27、课题描述管理内容包括:学号、姓名、班级、五门课成绩。 主要功能有:添加、修改、删除、读出、写入、查找、排序、计算总分、平均分、分类汇总 等。编写代码,运行程序后,显现下面的参考界面:I成绩管理III=:;丨1 输入学生成绩丨I:1I|2修改学生成绩|II:1I丨3删除学生成绩丨:!iI:;|4计算每位学生的总分|I5计算每位学生的平均分I|6按学号或姓名查询学生成绩|IIii|7.按班级查询学生成绩|III :II I:i8成绩排序ij:i9.
2、按班级统计学科总分、平均分等|请选择(19, 0:退出):|二、需求分析开发一个学生成绩管理系统的目的,主要是对查询学生成绩过程中的所有信息进行更加 科学、规范和有效的综合管理,是为了让同学们能在任何时候都能查阅到有关自己学科成绩 有关的信息,也有利于让他们充分了解有关自己在大学期间所有课程的学习情况,提高查询 速度。该学生成绩管理系统主要包括期末成绩管理、具体的查询等。本系统还提供学生相关 的基本信息统计、汇总、查询,这样便于辅助学校领导的学生管理工作,改善管理质量、提 高管理效率包括本班的每一位学生在校期间的基本情况与课程绩汇总。本系统利用 C+面向对象的功能,实现对学生成绩的管理。主要功
3、能为管理有关学生基 本信息、成绩课程等,对每个学生的基本信息、专业成绩信息、选修课成绩信息、课程信息 的查询、修改和删除。本系统的结构分为学生基本情况管理模块、学生成绩管理模块、学生 课程管理模块。这是一个很实际的编程实例。编程要求很详细,内容也比较多,有一定难度。首先,学 生成绩记录是一个复杂的数据结构,至少应包括学号,姓名,性别和成绩。所以,必须建立一个类student,用来记录班级,学号,姓名和成绩。此外还得建立一个类对象数组s180,用来记录多个学生的成绩记录。模块设计与分析(1) 输入学生资料模块:主要功能用来对学生的成绩进行收集和输入。在学生信息保存在系统中的前提下,成绩录入需要输
4、入学生资料,比如班级,学号,姓名。在准确输入学生资料后,就可以对该学生的各 科成绩进行录入。该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入 y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。(2) 输出学生资料模块:主要功能用来对学生的成绩进行输出。在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。具体包括学生的班级,学号,姓名和各科成绩。在 查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。(3) 按条件进行排列模块主要功能是用来对学生的资料进行排序。在系统保存学生资料,成绩的前提下, 使用此
5、功能可以对学生的资料进行排序,这样就方便查找同一类同学的资料。(4) 添加学生资料模块主要功能是用来添加学生资料,成绩。如果系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块。如果系统没有保存该学生信息的话,就要使用此模块, 在成功添加学生资料后,就可以对该学生进行其他的操作。(5) 按姓名查找,删除该学生资料模块主要功能是用来删除学生资料。在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。由于学生辍学,毕业等原因,及时 对系统进行更新,删除一些没用的信息,可以使系统更加优化(6) 查找并显示学生资料模块主要功能是用来查
6、找学生资料。在系统保存了某学生资料的前提下,想要查找该学生资料, 可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息(7) 按姓名查找,修改学生资料模块主要功能是用来修改学生资料。在系统保存了某学生资料的前提下,想要查找该学生 资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信息,这样就可以 修改该学生的资料,成绩等信息。(8 )把数据保存至文件模块主要功能是用来把学生数据保存至txt文件。这样一些资料可以用Word文档,进行编辑故在此模块中增加了导出数据的功能。这样就方便很多,不用把学生资料一个一个添加至word文档,节省了很多时间精力。代码编写分析在main()函数
7、中主要运用 do-while循环语句和switch()-case选择判断语句来调用相关功能模 块。系统的运行是在一个永真的循环里进行的,只有在主界面并选择“退出”时,才会跳出永真循环,并退出程序。for(;)switch(me nu()类中有两个成员函数一个用来输入是调用,一个是在修改的时候调用void Student1(char cla1,double num1,char name1,double chinese1,double math1,double en glish1,double wulil) void Stude nt2(double chin ese1,double math1,
8、double en glish1,double wulil) void tot()/计算学生成绩的总分/计算学生成绩的平均分 /将学生的语文成绩取出/将学生的数学成绩取出 /将学生的英语成绩取出 /将学生的物理成绩取出 /将学生的学号取出/将学生的总分取出/将学生的平均分取出char *get name()/将学生的名字取出void ave() double getch in ese() double getmath() double gete nglish() double getwuli() double get num() double getz ongfen() double geta
9、verage()char *getcla()II将学生的班级取出II用于打开文件将数据存入void pf()II用于学生的成绩输出 ofstream fout(d:stude nti nformati on. txt,ios:out);结构图:学生成绩管理系统退出系统按班级统学科总分平均分成绩排序按条件查询学生成绩计算每位学生总分和平均分删除学生成绩修改学生成绩输出学生成绩将学生信息写入文件中输入学生成绩运行与测试程序调试:5Program FJbeVM rrcsoft Sr sum SliiaMyP!,Tyec,::s7SDiebug7 .ezceILRHSTS和P玉J.旳岂.iJtx-i-
10、舌.和統卄AT超劭貝宁矣肖疇如图是系统的主界面VF ro 孑二 m File-lJd cgctt #创创 jtLdicnMyPrtrblElDcb-.T.tt:4 4 6 7X 5 5 6;s s H-月E 斤 eth -:?;*成貳成成 組匸負学诸理話E-LS巨世净按 呢武蔓新一匹疋1S矍栩“诸 12嚣阴是* .-二.illIMF 3 i爭y/o如图是输入学生资料的界面一 g a-T如图是将学生资料保存至文件的界面如图是将学生成绩输出的界面如图是按照学号删除学生成绩如图是计算学生的总分和平均分如图是按条件查找学生成绩的界面如图是按照条件对成绩排序如图是按班级统计各个学科的总分平均分的界面如图
11、是退出系统的提示界面三、课程设计总结这是一个综合性较强,很实际的一个编程实例。刚学C+时候,感觉类和对象还挺有意思的,刚接触到这个题目时,觉得应该没什么大问题吧,因为,我自认为一些基本知识点都 已经掌握了。可是,真的当我动手编程的时候,才发现并没有想象中的那么简单。单个知识 点是弄清了,但是,将所有的知识点综合起来运用时,就碰到了各种各样的问题了。有时候, 一个错误得找好久,才能发现。本系统的重点就是要会建立一个学生类student,用来存放一个学生的成绩记录, 相当于一个结构体的功能吧。类里的各个功能的实现。总的来说,添加,显示,查找,这三个功能比较容易,但是,删除,保存这三个功能就需要花点
12、心思了,可能 是平时用的比较少吧,生疏了。可见只有通过平时多加练习,才能有助于自己巩固知识点。 最后想说的是,调试程序真的很关键。调试程序需要较大的耐心。可能调试程序的时间比自 己编写整个程序的时间还要长,下的工夫还要深,但这是一个程序员必须了解,也必须接受 的事实。有好几次,几个错误让我很是头疼啊,很想删了,重新来过,可是最后发现,还是 得有耐心去调试程序。通过这个实验的练习,我也学到了很多东西,特别是加深了对类和对 象理解和应用方面,也很谢谢老师给我的帮助。四、源代码#in clude#in clude#in clude#in cludevioma nip#in clude#in clud
13、evc oni o.h#in clude using n amespace std;class Stude ntprivate:char cla10;char n ame10;double num;double chi nese;double math;double en glish;double wuli;double sum;double average;double total;bool Status;public:n ame1,doublevoid Student1(char cla1,double num1,charchi nese1,double math1,double en g
14、lish1,double wuli1)chin ese二chi nesel;math二mathl;en glish=e nglishl;wuli二wulil;num二nu ml;strcpy( name, namel);strcpy(cla,cla1);math1,doublevoid Stude nt2(double chin ese1,doubleen glish1,double wuli1)chin ese=chi nese1;math=math1;en glish=e nglish1;wuli=wuli1;void tot()total=chi nese+math+e nglish+w
15、uli;void ave() average=(chi nese+math+e nglish+wuli)/4;double getch in ese()retur n chin ese;double getmath()return math;double gete nglish()retur n en glish;double getwuli()return wuli;double get num()return num;double getz ongfen()return total;double getaverage()retur n average;char *get name()ret
16、urn n ame;char *getcla()return cla;void pf()coutvsetw(10)vvclavvsetw(7)v num setw(9)v n amesetw(6)vvc hin esevsetw(6)vvmathvvsetw(6)vve nglishvsetw(6)vvwulivsetw(8)v averagevvsetw(8)vvtotalve ndl;void pf1()coutvsetw(10)vvclavvsetw(7)v num setw(9)v n amesetw(6)c hin esesetw(6)mathsetw(6)e nglishvsetw
17、(6)v10;)system(cls);coute ndl;coute ndl;coutvv学生成绩管理系统vvendl;coutvvvve ndl;coutvve ndl;coutvv1 输入学生成绩vvendl;coutvv2.将学生信息写到文件中vvendl;coutvv3输出学生成绩vvendl;coutvv4修改学生成绩vvendl;coutvv5.删除学生成绩vvendl;coutvv6计算每位学生的总分和平均分e ndl;coutvv7.按学号或姓名或班级查询学生成绩e ndl;cout8.成绩排序endl;coutvv9.按班级统计学科总分、平均分e ndl;coutvv0存储
18、并退出系统endl;coute ndl;coutvv请选择(19,0退出):endl;coutvv制作者佘天豪vve ndl;c=getchar();return (c-0);void mai n()int t,i=0,j;int num;int k1=0,k2=0;double k3=0;double chi nese,math,e nglish,wuli;double sum=0;double sum1=0;double sum2=0;double sum3=0;double sum4=0;double sum5=0;int k=0;Stude nt s180;char c11010;ch
19、ar n ame10;char cla10;ofstream fout(d:stude nti nformatio n.txt,ios:out);for(;)switch(me nu()case 1:char sig n;int flag;system(cls);coutsetw(15) 输入学生资料 cla; coutvv学号:; cinnum;coutvv姓名:;cinn ame;doflag=O;coutvv语文成绩:;cin chi nese;if(chi nese150|chi nesevl)coutvv对不起,请输入 1-150之间的数字! n;elseflag=1;while(f
20、lag=O);doflag=O;cout数学成绩:;cin math;if(math150|mathen glish;if(e nglish150|e nglish wuli;if(wuli150|wuli1)coutvv对不起,请输入 1-150之间的数字! n;elseflag=1;while(flag=O);s1i.Stude nt1(cla, nu m, name,chi nese,math,e nglish,wuli);cout提示:是否继续写入学生成绩?(y/n);cin sig n;i+;t=i; system(pause);break;case 2:system(cls);co
21、ut数据将写入 D盘的studentinformation文件,若没有该文件则先建立文件endl;foutvsetw(10)vv 班 级 setw(8)vv 学 号vvsetw(10)vv姓名”setw(7)语文setw(7)数学”setw(7)英语setw(7)物理endl;for(i=0;it;i+)foutvsetw(10)vs1i.getcla();foutvsetw(7)vs1i.get num( )vsetw(9)vs1i.get name()vsetw(7)vs1i.getch in ese()vsetw(7)vs1i.getmath()vsetw(7)vs1i.gete ngl
22、ish()vsetw(7)vs1i.getwuli();foute ndl;fout.close();system(pause);break;case 3:system(cls);cout学生成绩如下:endl;coutvsetw(10)vv 班 级 setw(8)vv 学 号 vvsetw(10)vv 姓 名vvsetw(6)vv 语 文setw(6) 数 学 setw(6)英语setw(6)物理endl;for(i=0;inum;for(i=0;i ch in esee nglishmathwuli;s1i.Stude nt2(ch in ese,math,e nglish,wuli);s
23、ystem(pause);break;case 5:system(cls);coutvv请输入你要删除成绩的学号:;cinnum;for(i=0;it;i+)if(s1i.get num()=num)break;for(j=i;jt;j+)s1j=s1j+1;t=t-1;system(pause);break;case 6:system(cls);coutsetw(15) 计算学生的总分和平均分e ndl;coutsetw(10)班级vvsetw 学号vvsetw(9)vv 姓 名vvsetw(6)vv 语 文setw(6) 数 学vvsetw(6)vv英 语vvsetw(6)vv物 理set
24、w(8)vv 平均分vvsetw(8)vv总分endl;for(i=0;it;i+)s1i.tot();s1i.ave();s1i.pf();system(pause);break;case 7:system(cls);int nu mber;coutsetw(15) 查找学生endl;coutvv请输入你要查询学生成绩的方式(1按学号,2 按姓名,其余数字均为按班级)nu mber;if(nu mber=1)coutvv请输入你要查询成绩的学号:; cinnum;else if(nu mber=2) coutvv请输入你要查询成绩的姓名:;cinn ame;elsecoutvv请输入你要查询
25、的成绩的班级:cin cla;for(i=0;it;i+)if( num=s1i.get num ()|(strcmp(s1i.get name(), name)=0)|(strcmp(s1 i.getcla(),cla)=O)break;coutvsetwOO)*班 级vvsetw 学 号wsetw)*姓名wsetwe)*语文vvsetw(6)数学 wsetwe)*英 语vsetw(6)vv物 理vsetw(8)vv 平均分 setw(8)vv总分endl;for(i=O;it;i+)s1i.pf();system(pause);break;case 8:system(cls);coutsetw(15)vv 成绩排序 a;if(a=1)for(i=O;it;i+)for(j=0;jt-i-1;j+)if(s1j.getz ongfen() s1j+1.getz ongfen() s2=s1j;s1j=s1j+1;s1j+1=s2;else for(i=0;it;i+)for(j=0;jt-i-1;j+)if(s1j.getaverage()vs1j+1.getaverage()s2=s1j;s1j=s1j+1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年瓯海三医面向社会公开招聘工作人员备考题库(含答案详解)
- 2025年安州文化旅游集团有限公司公开招聘工作人员5人备考题库(含答案详解)
- 2025年河南省某国企工程类岗位招聘7人备考题库及参考答案详解一套
- 2025年北京市朝阳区十八里店第二社区卫生服务中心招聘备考题库及答案详解一套
- 2025年方庄社区卫生服务中心预防保健科医师岗位招聘备考题库及答案详解一套
- 2025年南通轨道交通集团有限公司运营分公司公开招聘工作人员的备考题库及参考答案详解一套
- 2025年重庆市北碚区东阳街道办事处非在编人员招聘备考题库及1套参考答案详解
- 2025年顺德梁銶琚职业技术学校招聘烹饪临聘教师备考题库及完整答案详解
- 2025年佛山市顺德区勒流梁季彝纪念学校临聘教师招聘备考题库及答案详解参考
- 2025年东莞理工学院第二批招聘聘用人员19人备考题库及完整答案详解一套
- 小学语文命题策略及试题设计建议
- 2025年高考完形填空说题-2026届高三英语二轮复习
- 农村集体经济培训
- 2026年咨询工程师宏观经济考前冲刺重点知识考点总结笔记
- 2025年探伤工(三级)超声波检测标准试题(附答案)
- NCCN临床实践指南:非小细胞肺癌(2025.V8)
- 统编版六年级下册道德与法治第一单元《完善自我 健康成长》教案(第1~3课)
- 合成生物学智能调控-洞察与解读
- 潮汕功夫茶课件
- GB/T 46247-2025风能发电系统基于地面遥测技术的风能资源测量
- 中介贷款佣金合同范本
评论
0/150
提交评论