学生成绩管理系统C.docx
- 文档编号:3540617
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:6
- 大小:18.80KB
学生成绩管理系统C.docx
《学生成绩管理系统C.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C.docx(6页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统C
学生成绩管理系统C
本科生课程设计课程名称C++课程设计课程编号*******x2-0学号学生姓名所在专业所在班级指导教师成绩教师签字2009年月日课程设计时间:
2009年10月10日至2008年11月28日目录:
(1)目的与要求
(2)系统需求分析与功能设计(3)内容设计(4)功能介绍(5)实验总结附件:
程序代码正文一、目的与要求通过本课程设计的实践,全面总结C++课程学习中的的数据类型、程序结构、数组、函数、指针、结构体等基本概念,掌握其使用方法。
掌握面向对象程序设计中有关类、对象、继承、重载、多态性、输入输出流类体系、文件操作的基本概念,初步学会用类与对象这种面向对象的程序设计方法编写应用程序。
培养使用面向对象的程序设计方法编写计算机程序的能力。
通过设计一个《学生成绩管理系统》,进一步熟悉C++中类的概念、类的封装的实现方式。
了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与VisualC++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。
程序设计是一门实践性很强的课程,必须十分重视实践环节。
许多实际的知识不是靠听课和看书学到的,而是通过长时间的实践积累的。
二、系统需求分析与功能设计系统需求:
学生管理系统要求利用C语言面向过程的编程思想来完成系统的设计,除了要突出C语言的函数特征,以多个函数实现每一个子功能外,还要画出功能模块图;另外,要求我们进行简单界面设计,能够实现友好的交互,熟练掌握C语言对文件的各种操作。
功能设计:
1.学生基本信息及成绩所选科目成绩的录入。
2.基本信息的查询与修改。
3.对该班各科成绩进行分析(即求平均成绩);4.对所开课程的成绩分析(求最高分和及格人数);三、设计内容学生成绩管理系统本《学生成绩管理系统》程序是一个具有对学生信息进行录入、添加、删除、根据学号进行学生信息的查询、显示已有学生信息的显示、对学生成绩进行统计(包括最高分,最低分,及格率和需要补考的学生),可以对已有的学生信息进行修改,保存和读取输入的数据等功能。
一切功能都可以在运行的软件中运行。
四、系统功能介绍:
通过主函数显示程序的主界面,通过输入的数字不同,函数会进入不同功能的函数继续运行。
输入1时,进入学生资料管理的界面!
选择1-5数字选择各个不同的小功能。
输入1时,进行学生资料的录入,输入2时,进行学生资料的删除输入3时,进行学生资料的添加输入4时,进行学生资料的修改输入5时,进行学生资料的读取输入0时,可以返回主界面回到主界面后,输入2时,进入学生成绩统计管理功能的界面可以输入0-8任意数字选择各个不同的小功能。
输入1时,进行学生成绩总分排名输入2时,进行学生高数分数排名输入3时,进行学生英语分数排名输入4时,进行学生C++分数排名输入5时,显示学生最高总分输入6时显示学生最低总分输入7时,进行学生平均分排名输入8时,进行及格率计算输入0时,可以返回主界面回到主界面后,输入3时,进入学生成绩统计管理功能的界面。
可以输入0-3的任意数字,选择各个不同的功能输入1时,进行按学号查询学生资料的功能输入2时,进行按姓名查询学生资料的功能输入3时,进行按所在班级查询学生资料的功能输入0时,可以返回主界面回到主界面后,输入4时,进入关于系统信息的界面回到主界面后,输入0时,可以退出主界面,结束系统运行五、实验总结附件:
(程序代码)#includeiostream#includefstream//输入输出文件#includestring#includeiomanip//输出格式控制usingnamespacestd;charpress;intchoose;intn;classStudent{public:
intnum;stringname;intbj;charsex;floatMath;floatEnglish;floatCjj;floatsum;floataverage;};Studentstud[100];//读取资料voidread(){charfilename[20];cout从文件中读取信息!
endl;cout请输入文件名:
endl;cinfilename;ifstreaminfile(filename,ios:
:
in|ios:
:
out);//定义输入文件流对象,以输出方式打开用户自定义的磁盘文件if(!
infile){cerropenerror!
endl;exit
(1);}//输出出错信息do{inti=0;infilestud[i].numstud[i].namestud[i].sexstud[i].bj;//从磁盘读取学生的信息infilestud[i].Mathstud[i].Englishstud[i].Cjj;cout学生的学号:
stud[i].num//向显示器输出学生的信息姓名:
stud[i].name性别:
stud[i].sex班级:
stud[i].bj高数成绩:
stud[i].Math大学英语成绩:
stud[i].EnglishC++成绩:
stud[i].Cjjendl;i++;}while(!
infile.eof());//判断是否为文件尾infile.close();cout读取成功!
endl;}//保存资料voidsave(){inti;charfilename[20];for(i=0;in;i++){cout学生的学号:
stud[i].num姓名:
stud[i].name性别:
stud[i].sex班级:
stud[i].bj高数成绩:
stud[i].Math大学英语成绩:
stud[i].EnglishC++成绩:
stud[i].Cjjendl;}cout将记录保存在文件夹!
endl;cout请输入文件名:
;cinfilename;ofstreamoutfile(filename);if(!
outfile){cerropenerror!
endl;}for(i=0;in;i++){outfilestud[i].numstud[i].bj;outfilestud[i].Mathstud[i].Englishstud[i].Cjj;}outfile.close();cout保存成功!
endl;}//输入资料voidSR(){cout请根据你的需要输入学生的个数:
;cinn;for(inta=0;an;a++){cout请输入第a+1个学生资料:
endl;cout学号:
‘‘;cinstud[a].num;cout姓名:
‘‘;cinstud[a].name;cout性别:
‘‘;cinstud[a].sex;cout班级:
‘‘;cinstud[a].bj;cout高数成绩:
‘‘;cinstud[a].Math;cout大学英语成绩:
‘‘;cinstud[a].English;coutC++成绩:
‘‘;cinstud[a].Cjj;stud[a].sum=stud[a].Math+stud[a].English+stud[a].Cjj;stud[a].average=(stud[a].Math+stud[a].English+stud[a].Cjj)/3;}cout输入成功,学生资料是否保存?
(y/n)endl;cinpress;switch(press){case‘y’:
save();break;default:
cout不保存!
;break;}}//删除资料voidSC(){do{stringSC_name;cout请输入你要删除的学生名字:
endl;inti=0;cinSC_name;while(stud[i].name!
=SC_namein)i++;//查找判断if(stud[i].name==SC_name){for(intj=i;jn-1;j++){stud[i].num=stud[i+1].num;stud[i].name=stud[i+1].name;stud[i].sex=stud[i+1].sex;stud[i].bj=stud[i+1].bj;stud[i].namestud[i].sexstud[i].Math=stud[i+1].Math;stud[i].English=stud[i+1].English;stud[i].Cjj=stud[i+1].Cjj;}cout删除成功!
endl;n=n-1;}elseif(i==n){coutcan’tfindthisnameendl;cout该信息不存在,无法删除!
endl;}cout(是否继(y/n))endl;cinpress;}while(press==‘y’||press==‘Y’);}//添加资料voidTJ(){do{cout请添加新的学生信息endl;cout新的学生学号:
endl;cinstud[n].num;cout新学生姓名:
endl;cinstud[n].name;cout新学生性别:
endl;cinstud[n].sex;cout新学生班级:
endl;cinstud[n].bj;cout新学生的高数成绩:
endl;cinstud[n].Math;cout新学生的大学英语成绩:
endl;cinstud[n].English;cout新学生的C++成绩:
endl;cinstud[n].Cjj;stud[n].sum=stud[n].Math+stud[n].English+stud[n].Cjj;stud[n].average=(stud[n].Math+stud[n].English+stud[n].Cjj)/3;n++;cout(是否继续操作?
(y/n))endl;cinpress;}while(press==‘y’||press==‘Y’);cout添加成功,学生资料是否保存?
(y/n)endl;cinpress;switch(press){case‘y’:
save();break;default:
cout不保存!
;break;}}//修改资料voidXG(){begin:
stringfind_name;inti;cout请输入你要修改的学生名字:
endl;cinfind_name;for(i=0;in;i++)if(stud[i].name==find_name){coutstud[i].namehasbeenfound:
endl;cout学生的学号:
stud[i].num’‘姓名:
stud[i].name’‘性别:
stud[i].sex’‘班级:
stud[i].bj’‘高数成绩:
stud[i].Math’‘大学英语成绩:
stud[i].English’‘C++成绩:
stud[i].Cjjendl;break;}if(stud[i].name!
=find_name){coutcan’tfindthisnameendl;cout请重新查找!
endl;gotobegin;}for(intj=0;jn;j++){cout请输入新的信息:
endl;续操作?
cout学号:
‘‘;cinstud[j].num;cout姓名:
‘‘;cinstud[j].name;cout性别:
‘‘;cinstud[j].sex;cout班级:
‘‘;cinstud[j].bj;cout高数成绩:
‘‘;cinstud[j].Math;cout大学英语成绩:
‘‘;cinstud[j].English;coutC++成绩:
‘‘;cinstud[j].Cjj;stud[i].num=stud[j].num;stud[i].name=stud[j].name;stud[i].sex=stud[j].sex;stud[i].bj=stud[j].bj;stud[i].Math=stud[j].Math;stud[i].English=stud[j].English;stud[i].Cjj=stud[j].Cjj;break;}cout修改成功,是否保存?
(y/n)endl;cinpress;switch(press){case‘y’:
save();break;default:
cout存!
;break;}}//按总分排名voidzf(){intm,t;stringna;floatz,h,e,c,p;chars;for(intj=0;jn-1;j++)//选择法排序for(inti=0;in-1-j;i++)//以下的按各单科成绩和平均分也是运用选择法排序if(stud[i].sumstud[i+1].sum){m=stud[i].num;stud[i].num=stud[i+1].num;stud[i+1].num=m;na=stud[i].name;stud[i].name=stud[i+1].name;stud[i+1].name=na;s=stud[i].sex;stud[i].sex=stud[i+1].sex;stud[i+1].sex=s;t=stud[i].bj;stud[i].bj=stud[i+1].bj;stud[i+1].bj=t;h=stud[i].Math;stud[i].Math=stud[i+1].Math;stud[i+1].Math=h;e=stud[i].English;stud[i+1].English=e;c=stud[i].Cjj;stud[i].Cjj=stud[i+1].Cjj;stud[i+1].Cjj=c;z=stud[i].sum;stud[i].sum=stud[i+1].sum;stud[i+1].sum=z;p=stud[i].average;stud[i+1].average=p;}cout学生按总分排名:
endl;cout学号’‘姓名’‘性别’‘班级’‘总分endl;for(inti=0;in;i++){coutstud[i].numstud[i].namestud[i].sexstud[i].bjstud[i].sumendl;coutendl;}}//按高数分数排名voidgs(){intg,t;floatz,h,e,c,p;stringna;chars;不保stud[i].English=stud[i+1].English;stud[i].average=stud[i+1].average;for(intj=0;jn-1;j++)for(inti=0;in-1-j;i++)if(stud[i].Mathstud[i+1].Math){g=stud[i].num;stud[i].num=stud[i+1].num;stud[i+1].num=g;na=stud[i].name;stud[i].name=stud[i+1].name;stud[i+1].name=na;s=stud[i].sex;stud[i].sex=stud[i+1].sex;stud[i+1].sex=s;t=stud[i].bj;stud[i].bj=stud[i+1].bj;stud[i+1].bj=t;h=stud[i].Math;stud[i].Math=stud[i+1].Math;stud[i+1].Math=h;e=stud[i].English;stud[i+1].English=e;c=stud[i].Cjj;stud[i].Cjj=stud[i+1].Cjj;stud[i+1].Cjj=c;z=stud[i].sum;stud[i].sum=stud[i+1].sum;stud[i+1].sum=z;p=stud[i].average;stud[i+1].average=p;}cout学生按高数分数排名:
endl;cout学号’‘姓名’‘性别’‘班级’‘高数分数endl;for(inti=0;in;i++){coutstud[i].numstud[i].namestud[i].sexstud[i].bjstud[i].Mathendl;coutendl;}}//按英语分数排名voidyy(){intg,t;floatz,h,e,c,p;stringna;chars;for(intj=0;jn-1;j++)for(inti=0;in-1-j;i++)if(stud[i].Englishstud[i+1].English){g=stud[i].num;stud[i+1].num=g;na=stud[i].name;stud[i+1].name=na;s=stud[i].sex;stud[i+1].sex=s;t=stud[i].bj;stud[i+1].bj=t;h=stud[i].Math;stud[i+1].Math=h;e=stud[i].English;stud[i+1].English=e;c=stud[i].Cjj;stud[i+1].Cjj=c;z=stud[i].sum;stud[i+1].sum=z;stud[i].English=stud[i+1].English;stud[i].average=stud[i+1].average;stud[i].num=stud[i+1].num;stud[i].name=stud[i+1].name;stud[i].sex=stud[i+1].sex;stud[i].bj=stud[i+1].bj;stud[i].Math=stud[i+1].Math;stud[i].English=stud[i+1].English;stud[i].Cjj=stud[i+1].Cjj;stud[i].sum=stud[i+1].sum;p=stud[i].average;stud[i+1].average=p;}cout学生按英语分数排名:
endl;cout学号’‘姓名’‘性别’‘班级’‘英语分数endl;for(inti=0;in;i++){coutstud[i].numstud[i].namestud[i].sexstud[i].bjstud[i].Englishendl;coutendl;}}//按C++分数排名voidcy(){intg,t;floatz,h,e,c,p;stringna;chars;for(intj=0;jn-1;j++)for(inti=0;in-1-j;i++)if(stud[i].Cjjstud[i+1].Cjj){g=stud[i].num;stud[i].num=stud[i+1].num;stud[i+1].num=g;na=stud[i].name;stud[i].name=stud[i+1].name;stud[i+1].name=na;s=stud[i].sex;stud[i].sex=stud[i+1].sex;stud[i+1].sex=s;t=stud[i].bj;stud[i].bj=stud[i+1].bj;stud[i+1].bj=t;h=stud[i].Math;stud[i].Math=stud[i+1].Math;stud[i+1].Math=h;e=stud[i].English;stud[i+1].English=e;c=stud[i].Cjj;stud[i+1].Cjj=c;z=stud[i].sum;stud[i].sum=stud[i+1].sum;stud[i+1].sum=z;p=stud[i].average;stud[i+1].average=p;}cout学生按C++分数排名:
endl;cout学号’‘姓名’‘性别’‘班级’‘C++分数endl;for(inti=0;in;i++){coutstud[i].numstud[i].namestud[i].sexstud[i].bjstud[i].Cjjendl;coutendl;}}//计算最高总分voidmax_student(){floatmax;max=stud[0].sum;for(intj=0;jn;j++){if(stud[j].summax)max=stud[j].sum;}stud[i].average=stud[i+1].average;stud[i].English=stud[i+1].English;stud[i].Cjj=stud[i+1].Cjj;stud[i].average=stud[i+1].average;cout最高总分为:
maxendl;}//计算最低总分voidmin_student(){floatmin;min=stud[0].sum;for(intj=0;jn;j++){if(stud[j].summin)min=stud[j].sum;}cout最低总分为:
minendl;}//按平均分排名voidaver(){floatz,h,e,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统