《2022年c++设计报告学生管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年c++设计报告学生管理系统 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、设计任务与要求:设计一个学生成绩管理系统,包含学号、姓名、课程、成绩、数据录入、查询、修改、排序等功能。根据 C+课程所学的概念、理论和方法,按照C+程序设计的基本步骤,设计出一个适当规模的程序来实现设计课程内容中的全部功能自己根据能力及需要添加相应功能模块, 增强模拟系统功能。 包括系统的功能分析、 系统的功能模块设计、程序流程图或结构框图、结构设计等。需求分析:a.能对学生各科成绩进行录入:。b.能对学生的成绩进行增加。c.能对学生的成绩进行删除。d.能对学生的成绩进行修改。e.能对学生的成绩按总成绩,姓名,进行查询。f.能输出学生的所有数据。g.能进行成绩统计h 能进行总分查询排名。系统
2、性能要求:a.系统安全、可靠;b.功能齐全;c.操作方便、界面友好;d 易于维护和扩充。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 一、实验目的进一步巩固所学 c+的基本概念和理论;能够完成简单的程序设计;进一步培养实际分析问题和实践动手编程的能力;二、实验内容采用 vc6.0 环境编译学生成绩管理系统。运用char,int,float 等数据类型,输入学生的学号、 姓名、班级及各科成绩并对各科成绩进行分析。并对学生各科成
3、绩进行录入, 对学生的成绩进行增加, 对学生的成绩进行删除。 对学生的成绩进行修改。对学生的成绩按总成绩,姓名,进行查询等。三、设计思想及主界面设计运用“数组”对程序进行编写,按照c+设计的基本步骤逐步编写运行。设置学生的成绩信息:学生学号、姓名、课程及成绩。计算学生总成绩:总评成绩=各科成绩之和;显示学生的姓名、平均成绩及总成绩;并能对成绩进行查询;用冒泡法进行排序。四、程序结构在 main()函数中主要是通过”switch()”选择判断来调用相关功能模块。在主界面并选择“退出本系统”时退出程序。主函数代码为:void main() for(;) switch() case 0: 输入学生成
4、绩break; case 1: 增加学生数据break; case 2: 修改学生数据strcmp(name,sh.name break; case 3: 按姓名查询break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - case 4: 按学号查询break; case 5: 按平均分排序break; case 6: 按总分排序break; case 7: 退出程序五、程序功能模块图功能:学生成绩查询系统有:成绩录入、增
5、加、修改,数据查询,排序。模块框架图:六、程序#include #include #include #include #include class student private: char name4; /姓名double cpro,english,math,sport,allscore,average;/ 课程int order, number; /名次,学号public: 学生成绩管理系统成绩查询(姓名、学号)模块成绩排名 (平均分、 总分)退出程序成绩修改模块成绩录入模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名
6、师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - student() student(char n4,int nu,double cc,double eng,double ma,double sp,double as,double av) strcpy(name,n); number=nu; cpro=cc; english=eng;math=ma;sport=sp;allscore=as;average=av; friend void main(); ; void main() double allscore; double average
7、; cout 欢迎使用学生管理系统 endl; cout 0、输入数据endl; cout 1、增加数据endl; cout 2、修改数据endl; cout 3、按姓名查询endl; cout 4、按学号查询endl; cout 5、按平均分排序 endl; cout 6、按总分高低排序endl; cout 7、退出系统endl; cout 选择 0-7 数字进行操作 p; if(p=0&p=7) flag=1; else cout 指令错误!请重新输入: endl; while(flag=0); do switch(p) /接收功能选项 case 0: /输入数据 char c; char
8、 name4;int number;double cpro,english,math,sport; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - do coutendlname; coutendlnumber; coutendlcpro; coutendlenglish; coutendlmath; coutendlsport; allscore=cpro+english+math+sport ; cout 总成绩 :all
9、scoreendl; average=(cpro+english+math+sport)/4; cout 平均成绩 :averageendl; filej=new ofstream(D:student.dat,ios:ate); *filej 姓名 name 学号 number C+成绩 cpro 英语成绩english 线代成绩math 体育成绩 sport总成绩 allscore平均成绩 averageendl; j+; si= student(name, number,cpro,english,math,sport,allscore,average); i+; coutc; couten
10、dl; do if(c!=y&c!=n) cout 指令错误!请重新输入! endlc; else flag=1; while(flag=0); while(c=y); break; case 1: /增加数据 char name20; int number;double cpro,english,math,sport; char c; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - do coutname; coutendl
11、number; coutendlcpro; coutendlenglish; coutendlmath; coutendlsport; coutendl; allscore=cpro+english+math+sport; cout 总成绩 :allscoreendl; average=(cpro+english+math+sport)/4; cout 平均成绩 :averageendl; filej=new ofstream(D:student.dat,ios:ate); *filej 姓名 name 学号 number C+成绩 cpro 英语成绩english 线代成绩math 体育成绩
12、 sport总成绩 allscore平均成绩 averageendl; j+; si= student(name, number,cpro,english,math,sport,allscore,average); i+; coutc; coutendl; if(c!=y&c!=n) cout 指令错误!请重新输入! endlc; while(c=y); break; case 2: /修改数据 char name20;int nu;double cc,eng,ma,sp,as,av;flag=0; char c; if(i=0) cout系统中找不到这个学生 ; do coutname; c
13、outendl; for(int h=0;hi;h+) /h 纪录要修改学生的位置 if(strcmp(name,sh.name)=0)/找到要修改名字的位置 flag=1; coutnu; coutendlcc; coutendleng; coutendlma; coutendlsp; as=cc+eng+ma+sp; coutendl 总成绩 :as; av=as/6; coutendl 平均成绩 :av; coutendl; sh.cpro=cc; sh.english=eng; sh.math=ma; sh.sport=sp; sh.number=nu; cout 数据修改成功! en
14、dl; if(flag=0) cout 您要修改的学生本来就不存在!请检查重新输入!endl; coutc; coutendl; if(c!=y&c!=n) cout 指令错误!请重新输入! endlc; while(c=y); break; case 3: /按姓名查询 char n20;int j=0;char c; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - if(i=0) cout 管理系统中没有输入数据!endl
15、;break; do int flag=0; coutn; coutendl; for(int j=0;ji;j+) if(strcmp(n,(sj).name)=0) flag=1; cout 您要查询的学生是 :(sj).nameendl; cout(sj).name 的 成 绩 是 : C+: (sj).cpro 英 语 : (sj).english 线代: (sj).math 体育: (sj).sport 总成绩 (sj).allscore 平均成绩 (sj).averageendl; if(flag=0) cout 对不起 !您要查询的学生不存在 !endl; coutc; cout
16、endl; if(c!=y&c!=n) cout 指令错误!请重新输入! c; while(c=y); break; case 4: /按学号查询 int n,j=0;char c; if(i=0) cout 管理系统中没有输入数据!endl;break; do int flag=0; coutn; coutendl; for(int j=0;ji;j+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - if(sj.numbe
17、r=n) flag=1; cout 您要查询的学生是: (sj).nameendl; cout(sj).name的成绩是 : C+:(sj).cpro 英语:(sj).english 线 代 : (sj).math 体 育 : (sj).sport 总 成绩:(sj).allscore 平均成绩 :(sj).averageendl; if(flag=0) cout 对不起 !您要查询的学生不存在 !endl; coutc; coutendl; if(c!=y&c!=n) cout 指令错误!请重新输入! c; while(c=y); break; case5:/ 平均分排序student te
18、mp; for(int a=0;ai;a+) for(int b=a+1;bi;b+) while (sa.averagesb.average) temp=sa; sa=sb; sb=temp; coutyn; while(yn!=y&yn!=n) coutyn; if(yn=y) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - cout所有学生的成绩按总分从高到低的排名是:endl; cout 本系统所有学生数据如下:end
19、l; if(i=0) cout 管理系统中没有输入数据!endl; cout姓名学号 c+ 英语 线代 体育 总成绩 平均成绩endl; for(int b=0;bi;b+) coutsb.namesetw(7)sb.numbersetw(4) (sb).cprosetw(5)(sb).englishsetw(5) (sb).mathsetw(4)(sb).sportsetw(5) sb.allscoresetw(10)(sb).averagesetw(7)endl; break; case6:/ 总成绩排序 student temp; for(int t=0;ti;t+) for(int k
20、=t+1;ki;k+) while (st.allscoresk.allscore) temp=st; st=sk; sk=temp; coutyn; while(yn!=y&yn!=n) coutyn; if(yn=y) cout 所有学生的成绩按总分从高到低的排名是:endl; cout 本系统所有学生数据如下:endl; if(i=0) cout 管理系统中没有输入数据!endl; cout姓名学号 c+ 英语 线代 体育 总成绩 平均成绩endl; for(int k=0;ki;k+) coutsk.namesetw(7)sk.numbersetw(4) (sk).cprosetw(5
21、)(sk).englishsetw(5) (sk).mathsetw(4)(sk).sportsetw(5) sk.allscoresetw(10)(sk).averagesetw(7)endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - break; case7:/ 退出exit(0); coutBye bye!endl; coutw; coutendl; if(w!=y&w!=n) cout 指令错误!请重新输入!
22、endl; else flag=1; while(flag=0); if(w=y) cout 请输入操作代码 :0 输入数据 endl; cout 1 增加数据 endl; cout 2 修改数据 endl; cout 3 按姓名查询 endl; cout 4 按学号查找 endl; cout 5 按平均分高低排序endl; cout 6 按总分高低排序endl; cout 7 退出系统 p; while(w=y); 七、程序未完成和添加的功能程序未完成功能有对学生的成绩进行删除和按总成绩查询。添加的功能有按平均分排序。八、总结及参考资料参考资料:c+全方位学习中国铁道出版社, c+程序设计题
23、解与上机指导清华大学出版社,c+语言基础教程人民邮电出版社, c+程序设计基础(第3版) ,以及上网查询资料等。总结:此次 c+课程设计, 在指导教师的精心教导下, 我们学会了如何用C+编写一个简单的应用程序。 首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计, 最后是代码设计与调试。 程序实现上, 设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。通过这次 c+程序设计,我从中得到很大的收益, 并且学的了很多知识。 C+名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
24、 - - - - 第 11 页,共 12 页 - - - - - - - - - 已经学了一个学期了, 有许多知识都存在似懂非懂的现象,这种现象通过实际的上机操作, 已经减少了许多。 对这些知识也有了更深的理解和很好的掌握。我觉得写程序, 应该先找到该程序中的核心地方,用多种方法来实现该核心, 这才可能避免等到发现逻辑上或者编译器不支持上的错误,才来想补救的措施, 这样花费时间在想补救措施是很不值得的。同时我还深刻的认识到, 实践是检验真理的唯一标准。 没有实践, 就不会发现和深刻体会它的真实所在。只有通过检验的真理,在自己的心里, 才会认可它的真实性。 我从中深深的感觉到实践和理论的差异,只
25、懂理论而没有实践是不行的, 只有把理论和实践相结合才能才能更好的了解程序设计的开发和运行, 才能从中有所收益。 程序设计的完成, 使我们懂得了真理的重要性, 理论和实际的相结合, 才能真正把握所学和所掌握的知识。措施是很不值得的。同时,在此我对在程序过程中, 老师同学给了我很多宝贵的建议和指点,我很感谢他们。使他们让我学到了很多知识, 让我对所学知识有了更深层次的理解。我从中受益很多。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -