c学生成绩管理系统课设报告含程序和截图.doc

上传人:叶*** 文档编号:35169064 上传时间:2022-08-20 格式:DOC 页数:16 大小:62KB
返回 下载 相关 举报
c学生成绩管理系统课设报告含程序和截图.doc_第1页
第1页 / 共16页
c学生成绩管理系统课设报告含程序和截图.doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《c学生成绩管理系统课设报告含程序和截图.doc》由会员分享,可在线阅读,更多相关《c学生成绩管理系统课设报告含程序和截图.doc(16页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C+程序设计 课程设计报告设计题目:学生成绩管理系统目录一、设计任务与要求31.设计内容32.课程设计的要求3二、系统分析(需求分析)31.需求分析32.系统性能要求33.系统的功能分析34.系统功能模块35.模块框架图3三、系统设计与实现41.界面设计42.功能设计与实现4四、运行显示4五、总结11六、参考资料11附录:源程序11一、设计任务与要求1.目的: 通过一个实际的系统开发,提高学生应用所学知识分析问题,解决问题和实际动手的能力,更加熟练的掌握C+程序开发的基本方法和基本步骤,对系统开发时间又进一步体会。从而综合复习C+程序设计语言的所有知识点,进一步熟练面向对象程序的开发方法和流程

2、,提高学生独立分析问题和解决问题的能力。真正理解书本知识,牢固掌握课堂教学内容。为毕业设计及毕业后从事专业技术工作打下基础,提高学生全面素质。2.课程设计的要求:(1) 要求用VC+语言来实现一个简单的学生数据管理系统,该系统完成后基本上要能够无错运行,能达到学生成绩管理系统的基本要求。(2) 各个功能分别是用函数来完成,函数存放在一个.cpp文件中。(3) 准备系统运行的模拟数据不得少于十条。(4) 成绩管理系统至少具有以下功能: 1)输入:学生的基本信息,包括学号、姓名、性别、籍贯、VC+成绩、英语成绩、物理成绩等;2)计算:每个学生的总成绩、平均成绩所有学生单科的平均成绩,找出总成绩和单

3、科成绩最高的学生并输出;3)查询:可以按学好姓名等进行查询;4)排序:可以按学号、姓名、VC+成绩、英语成绩、物理成绩、总成绩、平均成绩等进行排序并输出;5)删除:删除某条记录;6)帮助和关于;7)退出:推出整个系统的运行。8)一些时间富裕的学生可以增加更多的菜单项,比如设置颜色、字体风格等。二、系统分析(需求分析)1.需求分析:a.能对学生各科成绩进行录入。b.能显示各科成绩平均分。c.能显示总成绩和单科分最高的同学。d.能对删除学生信息。e.能对学生的成绩按姓名、学号进行查询。f.能按学号和成绩排序。g.能显示所有学生信息。2.系统性能要求:a.系统安全、可靠;b.功能齐全;c.操作方便、

4、界面友好;d易于维护和扩充。3.系统的功能分析:资料维护:系统维护包括对学生信息的录入操作及数据表中的信息进行浏览。系统功能:可以对数据表中的信息进行浏览。系统查询:可以对学生的信息进行查询。4.系统功能模块学生成绩查询系统有:成绩录入、删除,数据查询,排序显示构成。5.模块框架图学生成绩管理系统操作输入删除计算总成绩平均成绩单科平均成 绩查询学号姓名排序学号姓名单科成绩总分、平均分三、系统设计与实现1.界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。2.功能设计与实现通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。应用系统主控界面包括记录编辑和记录查询等功能模块。记录编辑

5、功能完成学生成绩记录编辑和记录查询功能。记录查询功能可以对数据各分类的记录进行查询。四、运行显示1初始页界面:2.输入学生信息界面:“请按照提示输入学生信息”是帮助和关于,其他同学的信息如该截图依照提示录入即可。录入完毕显示界面为:3.显示总成绩和各单科分最高的同学的界面为:4、删除学生的信息界面为:5. 按姓名查询:6. 按学号查询:7. 排序分系统:1)姓名排序:2)学号排序:3)VC+成绩排序:其他排序法与以上一样,此处不再一一显示。8. 显示所有学生信息:9. 保存文件:10退出系统:此外,界面的颜色与文字的颜色,也是可以改变的。system(color 97); /设置 背景 和 字

6、体颜色 F是背景颜色的设置值 0是字体颜色的设置值(程序第764行)改变9和7的值即改变颜色。五、总结此次c+课程设计,在指导教师的精心教导下,我们学会了如何用C+编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。根据C+课程所学的概念、理论和方法,按照C+程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C+语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编

7、写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。六、参考资料C+程序设计 谭浩强 清华大学出版社附录:源程序 #include#include #include#include#include#include using namespace std;class studentprivate: char name20; /姓名 char sex8; /性别 char native8; /籍贯 double cpro; double english; double physical; double allscore; double average; /课程 int order;

8、 /名次 int number; /学号public: student() student(char* n,int nu,char* sex,char* native,double cc,double eng,double phy,double as,double av) strcpy(this-name,n); this-number=nu; strcpy(this-native,native); strcpy(this-sex,sex); this-cpro=cc; this-english=eng; this-physical=phy; this-allscore=as; this-av

9、erage=av; double getcpro() return this-cpro; double getenglish() return this-english; double getphysical() return this-physical; double getalls() return this-allscore; double getAverage() return this-average; char* getname() return this-name; int getnumber() return this-number; friend void ShowHight

10、srcore(); friend void ShowStuInfo(); friend void QueryByNumber(); friend void QueryByName(); friend void SaveFlie(); friend void InputStudentInfo();student s50; /指针对象,最多存50个学生数据int index = 0; void ShowMenu()cout*endl; cout* 学生成绩管理系统 *endl;cout*endl; cout 0、输入学生信息endl;cout 1、显示各单科成绩平均分endl;cout 2、显示总

11、成绩和各单科分最高的同学endl;cout 3、删除学生的信息endl;cout 4、按姓名查询 endl;cout 5、按学号查询 endl;cout 6、排序分系统endl;cout 7、显示所有学生信息endl;cout 8、保存文件endl;cout 9、退出系统endl;cout*endl;cout 选择0-9数字进行操作endl;cout*endl;void InputStudentInfo()char getkey = 0; /是否录入的选择标记char name20 = 0; /姓名 临时中间变量int number=0; /学号char sex8=0; /性别char nat

12、ive8=0; /籍贯double cpro = 0; /c语言成绩double english = 0; /英语成绩double physical = 0; /物理成绩double allscore = 0; /总成绩double average = 0; /平均成绩int core = 0; /名次cout请按照提示输入学生信息. . .endl;docoutendlnumber;bool IsOk;do bool IsOk = true;for(int n=0;nindex;n+)if(number=sn.number)cout输入的学号重复,请重新输入:number;IsOk = fa

13、lse;break;while(!IsOk); coutendlname;coutendlsex;coutendlnative;coutendlcpro;coutendlenglish;coutendlphysical;coutendl;allscore=cpro + english + physical;/计算该生的总成绩cout 总成绩:allscoreendl; /显示该生总成绩average= allscore / 3; /技术该生平均成绩 总成绩/科目数cout 平均成绩:averageendl;/显示该生平均成绩sindex= student(name, number,sex,na

14、tive,cpro,english,physical,allscore,average);coutgetkey;index+;while( getkey = y | getkey = Y );cout学生数据录入完毕,键入任意键返回主菜单。;getchar();getchar();void ShowAverage()if( index = 0 )cout 管理系统中没有输入数据!endl;coutendl键入任意键返回主菜单。endl;getchar();getchar();return;double cpro_ave = 0;double english_av = 0 ;double phy

15、sical_ave = 0;for(int i=0;iindex;i+)cpro_ave += si.getcpro();english_av += si.getenglish();physical_ave += si.getphysical();cout该班级各单科总平均分分别为:endlendl;coutVC+平均成绩为cpro_ave/index分endl;cout英语平均成绩为english_av/index分endl;cout物理平均成绩为physical_ave/index分endl;coutendl键入任意键返回主菜单。endl;getchar();getchar();void

16、ShowStuInfo()cout 学号 姓名 c+ 英语 物理 总成绩 平均成绩 endl;for(int i=0;iindex;i+)coutsi.numbersetw(7)si.namesetw(4)si.cprosetw(5)si.englishsetw(5)si.physicalsetw(6)si.allscoresetw(10)si.averageendl;void ShowHightsrcore()if( index = 0 )cout 管理系统中没有输入数据!endl;coutendl键入任意键返回主菜单。endl;getchar();getchar();return;doub

17、le allscoretmp = 0; /用来存放总分最高的临时变量double cprotmp = 0; /用来存放 VC 最高的临时变量double englishtmp = 0; /用来存放英语最高的临时变量double physicaltmp = 0; /用来存放物理最高的临时变量int i;for(i=0;iindex;i+) /遍历存储学生信息的数组,找出 总分 VC 英语 物理的最高分allscoretmp = allscoretmp si.getalls() ? si.getalls() : allscoretmp;cprotmp = cprotmp si.getcpro()

18、? si.getcpro() :cprotmp;englishtmp = englishtmp si.getenglish() ? si.getenglish() :englishtmp;physicaltmp = physicaltmp si.getphysical() ? si.getphysical() : physicaltmp;cout总成绩最高的学生为:endl;cout学号 姓名 c+ 英语 物理 总成绩 平均成绩 endl;for(i=0;iindex;i+) /遍历数组,输出总分最高的学生信息if( allscoretmp = si.getalls()coutsi.numbe

19、rsetw(7)si.namesetw(4)si.cprosetw(5)(si).englishsetw(5)si.physicalsetw(6)si.allscoresetw(10)si.averageendl;coutVC成绩最高的学生为:endl;cout学号 姓名 c+ 英语 物理 总成绩 平均成绩 endl;for(i=0;iindex;i+) /遍历数组,输出总分最高的学生信息if( cprotmp = si.getcpro()coutsi.numbersetw(7)si.namesetw(4)si.cprosetw(5)(si).englishsetw(5)si.physical

20、setw(6)si.allscoresetw(10)si.averageendl;cout英语成绩最高的学生为:endl;cout学号 姓名 c+ 英语 物理 总成绩 平均成绩 endl;for(i=0;iindex;i+) /遍历数组,输出总分最高的学生信息if( englishtmp = si.getenglish()coutsi.numbersetw(7)si.namesetw(4)si.cprosetw(5)(si).englishsetw(5)si.physicalsetw(6)si.allscoresetw(10)si.averageendl;cout物理成绩最高的学生为:endl

21、;cout姓名 学号 c+ 英语 物理 总成绩 平均成绩 endl;for(i=0;iindex;i+) /遍历数组,输出总分最高的学生信息if( physicaltmp = si.getphysical() )coutsi.namesetw(7)si.numbersetw(4)si.cprosetw(5)(si).englishsetw(5)si.physicalsetw(6)si.allscoresetw(10)si.averageendl;coutendl键入任意键返回主菜单。endl;getchar();getchar();void Delete()if( index = 0 )cou

22、t 管理系统中没有输入数据!endl;coutendl键入任意键返回主菜单。endl;getchar();getchar();return;while(1)bool Isfind = false;coutnametmp;for(int i=0;iindex;i+)if( strcmp( si.getname(),nametmp ) = 0 ) /在数组中找到要删除学生Isfind = true;for(int j=i;jindex;j+)sj=sj+1; /将删除的学生后的数据全部往前移一位index-;cout 删除成功!endl;if( !Isfind )/没有找到输入的学生的姓名cout

23、没有找要删除的学生的信息,请查证后再试。 endl;coutgetkey;if( getkey !=y& getkey != Y)coutendl;break;/while(1)coutendl键入任意键返回主菜单。endl;getchar();getchar();void QueryByNumber()if( index = 0 )cout 管理系统中没有输入数据!endl;coutendl键入任意键返回主菜单。endl;getchar();getchar();return;char getkey;do bool IsFind = false;int numbertmp;coutnumber

24、tmp;coutendl;for(int i=0;iindex;i+)if(si.number=numbertmp)IsFind = true;cout 您要查询的学生是:(si).nameendl;cout(si).name的成绩是: C+:(si).cpro 英语:(si).english 物理:(si).physical总成绩:(si).allscore平均成绩:(si).averageendl;if( !IsFind )cout 对不起!您要查询的学生不存在!endl;coutgetkey;while( getkey =y| getkey = Y);coutendl键入任意键返回主菜单

25、。endl;getchar();getchar();void QueryByName()if( index = 0 )cout 管理系统中没有输入数据!endl;coutendl键入任意键返回主菜单。endl;getchar();getchar();return;char getkey;do bool IsFind = false;char nametmp20 = 0;coutnametmp;coutendl;for(int i=0;iindex;i+)if( strcmp( nametmp, si.getname() ) = 0 )IsFind = true;cout(si).name的成绩

26、是: C+:(si).cpro 英语:(si).english 物理:(si).physical总成绩:(si).allscore平均成绩:(si).averageendl;if( !IsFind )cout 对不起!您要查询的学生不存在!endl;coutgetkey;while( getkey =y| getkey = Y);coutendl键入任意键返回主菜单。endl;getchar();getchar();void ShowSortMenu()cout*endl;cout 请选择排序方式 endl;cout*endl;cout0.学生姓名endl;cout1.学生学号endl;cou

27、t2.VC+成绩endl;cout3.英语成绩endl;cout4.物理成绩endl;cout5.总成绩endl; cout6.平均成绩endl;cout*0; i-)for(int j=0; j *(sj+1.getname() )temp=sj;sj=sj+1;sj+1=temp;cout*endl;cout 按姓名排序 endl;cout*0; i-)for(int j=0; j sj+1.getnumber()temp=sj;sj=sj+1;sj+1=temp;cout*endl;cout 按学号排序 endl;cout*0; i-)for(int j=0; j sj+1.getcpr

28、o()temp=sj;sj=sj+1;sj+1=temp;cout*endl;cout 按VC+成绩排序 endl;cout*0; i-)for(int j=0; j sj+1.getenglish()temp=sj;sj=sj+1;sj+1=temp;cout*endl;cout 按英语成绩排序 endl;cout*0; i-)for(int j=0; j sj+1.getphysical()temp=sj;sj=sj+1;sj+1=temp;cout*endl;cout 按物理成绩排序 endl;cout*0; i-)for(int j=0; j sj+1.getalls()temp=sj

29、;sj=sj+1;sj+1=temp;cout*endl;cout 按总分排序 endl;cout*0; i-)for(int j=0; j sj+1.getAverage()temp=sj;sj=sj+1;sj+1=temp;cout*endl;cout 按平均分排序 endl;cout*endl;ShowStuInfo();void Sort()if( index = 0 )cout 管理系统中没有输入数据!endl;coutendl键入任意键返回主菜单。endl;getchar();getchar();return;char getselect;char getkey;dosystem(

30、cls);ShowSortMenu();coutgetselect;switch ( getselect )case 0:system(cls);SortByName();break;case 1:system(cls);SortByNumber();break;case 2:system(cls);SortByCproscore();break;case 3:system(cls);SortByEnglishscore();break;case 4:system(cls);SortByPhysicalscore();break;case 5:system(cls);SortByAllscore();break; case 6:system(cls);SortByAverage();break;default:coutendl请输入正确的功能码!endl;break;cout 是否需要进

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com