C++学生成绩统计管理系统总汇(最新最全).doc
《C++学生成绩统计管理系统总汇(最新最全).doc》由会员分享,可在线阅读,更多相关《C++学生成绩统计管理系统总汇(最新最全).doc(85页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流C+学生成绩统计管理系统总汇(最新最全)【精品文档】第 85 页南 昌 大 学C+ 选 修 课课程设计报告 题 目: 学 院:专 业:姓 名: 学 号: 电 话:2016年6月17日目录 1需求分析32概要设计33程序实现思路44设计总结45参考文献56源代码6一、需求分析经过研一下学期C+选修课的学习,对C+基于对象的程序设计有了一定的认识,根据所学的知识,设计学生成绩管理系统。学生成绩统计管理系统是为某班级成绩统计管理的一个系统。为方便班级的管理人员对学生的信息进行管理,该系统中包括学号、姓名、大学物理、高数、C+语言,各科平均成绩、各科成绩“优秀”
2、、“良好”、“中等”、“及格”、“不及格”的人数及其所占比例,学生的总成绩、平均成绩及成绩排名。通过仔细研究借鉴众多相关毕业设计研究等文献资料(见参考文献一),学习书籍谭浩强面向对象的C+程序设计编写了该成绩管理系统。主要的功能有学生数据的增加、删除、修改、查询,另外实现一些统计的功能,例如:成绩的输入、成绩统计、总成绩统计、成绩的统计结果显示。二、概要设计1、本程序所用到的所有抽象数据类型的定义如下:序号成员名数据类型含义1numlong学号2namestring姓名3sumdouble总分4rangeint排名5avedouble平均分6scoredouble记录数组2、各程序模块的功能v
3、oid input(); /输入void count(); /计算void sort(); /按学号升序排列void selectsort(); /按总成绩降序排列void insert(); /增加int del(); /删除void student:Exit(); /修改void search(); /查询void display(); /显示以下为统计模块:void count(); /计算成员函数void average(); /计算平均值成员函数void display(); /显示成员函数三、程序实现思路1.设计菜单实现功能成绩的输入(学号、姓名、大学物理、高数、C+语言)。成绩统
4、计(各科平均成绩、各科成绩“优秀”、“良好”、“中等”、“及格”、“不及格”的人数及其所占比例)。总成绩统计(学生的总成绩、平均成绩及成绩排名)。成绩的统计结果显示。学生数据的增加、修改、与删除。学生数据的读取与存储。2.设计类与对象class student /建立学生student类,目的是存储学生个人信息public:long num; /学号string name; /姓名double scoren; /学生科目成绩 double sum; /总成绩double ave; /平均成绩int range; /排名 void insert(); /增加 int del(); /删除void
5、 search(); /查询void student:Exit();/修改void display(); /显示void input(); /输入void count(); /计算void sort(); /按学号升序排列void selectsort(); /按总成绩降序排列stuN;class all /建立整体all类,目的是存放学生整体信息public: double ave; /每学科的平均成绩 int people5; /每学科的各等级人数 double percent5; /每学科的各等级人数比例void count(); /计算成员函数 void average(); /计算平
6、均值成员函数 void display(); /显示成员函数 aln;3.通过类的调用实现功能设计case 0:cout*endl;cout高数科统计结果为endl;cout*endl;coutendl;break;case 1:cout*endl;cout大学物理科统计结果为endl;cout*endl;coutendl;break;case 2:cout*endl;coutC+统计结果为endl;cout*endl;coutendl;break;case 3:if(total=0) cout数组为空,请在主菜单中选择1增加数据endl;else cout学生信息为:endl; stutot
7、al.count(); stutotal.display();/显示 coutendl; break;case 4:if (total=0) cout数组为空,请在主菜单中选择1增加数据endl;elsecout各科学生成绩为:endl;aln.average();aln.count(); aln.display();coutendl;break;case 5:if(total=0) cout数组为空,请在主菜单中选择1增加数据endl;elsedo stutotal.search();cout查询成功,继续查询请输入Y/y:endl; cout退出请按其他键endl; fflush(stdi
8、n); ch=getchar();while(ch=Y|ch=y);break;case 6:if(total=0) cout数组为空,请在主菜单中选择1增加数据endl;elsedostutotal.Exit(); /修改cout修改成功,继续修改请输入Y/y:endl;cout退出请按其他键endl;fflush(stdin);ch=getchar();while(ch=Y|ch=y);break;case 7:if(total=0) cout数组为空,请在主菜单中选择1增加数据endl;else do system(cls); stutotal.insert(); /增加 total+;
9、 cout增加成功,继续增加请输入Y/y:endl; cout退出请按其他键endl; fflush(stdin); ch=getchar(); coutendl;while(ch=Y|ch=y);break;case 8:if(total=0)cout数组为空,请在主菜单中选择1增加数据endl;elsedo system(cls); if(stutotal.del() /删除 total-; /人数-1 system(cls); else cout该学号不存在endl; system(pause); system(cls); cout删除成功,继续删除请输入Y/y:endl; cout退出
10、该选择请按其他键endl; fflush(stdin); ch=getchar(); coutendl;while(ch=Y|ch=y); break;case 9: cout此操作将删除所有记录endl; cout继续该操作请输入Y/y:endl; cout退出请按其他键endl; fflush(stdin); ch=getchar(); if(ch=Y|ch=y) total=0;break;default:cout确定要退出吗?endl; cout退出请输入Y/y:endl; fflush(stdin); ch=getchar(); coutendl; if(ch=y|ch=Y) exi
11、t(0); break; system(pause); while(1);四、设计总结通过为期两周的努力,挑战程序设计的难度,终于将程序正确地运行。虽说只是一个简单的程序,但它却见证了我从编写、调试、修改、运行、再修改等一系列的过程,收录了我努力后的小小成果。从不断调试中遇到的错误中,我发现了自己的不足,同时也学会让自己如何面对挑战。 运用结构体、类等新学的内容让我再次感受到了学习的重要性。都说“万变不离其宗”,书本是我们课后学习的参照。因为没有重视书本,让我在编译时不断翻看,这也坚定了我努力学好这门课程的决心。 五、参考文献 1.谭浩强C+程序设计清华出版社 2007,5六、源代码学生成绩统
12、计管理程序#include /引用库函数#include /引用控制符处理#include /字符串using namespace std;#define N 100 /宏定义#define n 3class student /建立学生类,用于存储学生个人信息public:long num; /学号string name; /姓名double scoren; /学生科目成绩double sum; /总成绩double ave; /平均成绩int range; /排名void input(); /输入void count(); /计算void sort(); /按学号升序排列void selec
13、tsort(); /按总成绩降序排列void search(); /查询void insert(); /增加int del(); /删除void student:Exit(); /修改数据void display(); /显示stuN;class all /建立整体类,用来存放学生整体信息public:double ave; /每学科的平均成绩int people5; /每学科的各等级人数double percent5; /每学科的各等级人数比例void count(); /计算成员函数void average(); /计算平均值成员函数void display(); /显示成员函数aln;i
14、nt total=0; /定义全局变量void student:input() /输入学生个人信息cout请输入学生信息:endl;cout学号setw(8)姓名setw(12)高数成绩setw(10)大学物理成绩setw(10)C+成绩setw(10)stutotal.num;cinsetw(10)stutotal.name;for(int j=0;jsetw(10)stutotal.scorej;void student:selectsort() /按总成绩降序排列student aa;int i,j;for(i=0;itotal-1;i+)for(j=i+1;jtotal;j+)if(s
15、tui.sumstuj.sum) aa=stuj;stuj=stui;stui=aa;void student:count() /计算总成绩、平均成绩stutotal.selectsort();for(int i=0;itotal;i+)stui.sum=0;for(int j=0;jn;j+)stui.sum+=stui.scorej;stui.ave=stui.sum/n;void student:sort() /按学号升序排列student abc;int i,j;for(i=0;itotal-1;i+)for(j=i+1;jstuj.num)abc=stuj;stuj=stui;stu
16、i=abc;void student:display() /显示学生个人信息selectsort(); /调用按总成绩降序排列函数cout学号setw(10)姓名setw(10)高数成绩setw(10)大学物理成绩setw(10)C+成绩setw(10)平均成绩setw(10)总成绩setw(10)排名endl;for(int i=0;itotal;i+)stui.range=i+1;coutsetw(10)stui.numsetw(10)stui.name;for(int j=0;jn;j+)coutsetw(10)stui.scorej;coutsetw(10)stui.avesetw(1
17、0)stui.sumsetw(10)stui.rangeendl;void all:average() /计算各科的平均成绩for(int j=0;jn;j+)long double a=0;for(int i=0;itotal;i+) a+=stui.scorej;alj.ave=a/double(total);void all:count() /计算各科的各等级人数及其比例for(int j=0;jn;j+)int a=0,b=0,c=0,d=0,e=0;for(int i=0;itotal;i+)if(stui.scorej60)a+;else if(stui.scorej70)b+;e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 成绩 统计 管理 系统 总汇 最新
限制150内