c--学生成绩管理系统课程设计报告-毕业论文.doc
《c--学生成绩管理系统课程设计报告-毕业论文.doc》由会员分享,可在线阅读,更多相关《c--学生成绩管理系统课程设计报告-毕业论文.doc(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+课程设计报告课程设计题目: 学生成绩管理系统 学 生 姓 名 : 学 号: 专 业: 软 件 工 程 班 级: 指 导 教 师 : 2015年 6 月 27 日目 录1功能需求分析32总体设计33数据结构的设计54算法设计84.1 总体的算法设计84.2较难部分的算法设计94.2.1 密码验证模块94.2.2 降序排序部分94.2.3 打开已有文件部分115.程序代码126. 运行环境247.运行结果248.课程设计总结28学生成绩管理系统课程设计报告1功能需求分析学生成绩管理是一个学校必不可少的部分,随着计算机和计算机知识的普及,学生成绩管理系统得到了更大的发展空间,通过对学生成绩管理系
2、统的开发,可以提高校务人员的工作效率。本系统具有以下基本功能:1、功能菜单实现功能选择; 2、输入功能:输入学生信息,并保存到文件中;3、计算每个学生的总分与平均分并排序4、能根据学号修改学生信息5、能根据学号删除学生信息6、查询功能:1)能够根据学号查询学生信息;2)能够根据姓名、班级查询学生信息3)统计学生成绩,按照班级和科目计算平均分。2总体设计根据以上功能需求,本系统定义了一下函数,来逐步实现。(1)void input_student( );该函数实现从键盘中录入学生成绩,并且保存给学生类数组。(2)void rank_down( );该函数以总分对学生降序排序,该函数会从每个学生的
3、成员函数中调用int get_sum( )函数,在调用函数时,被调函数根据输入数据计算出总分并且返回给主调函数。排序以冒泡法实现,排序完成后,再依次给每个学生的数据成员rank(名次)赋值。(3)void save_student( );在有数据后,该函数可以实现数据以十进制的方式保存,保存时,可以自己输入文件名以及保存地址。(4)void rwrite_student();该函数实现对学生成绩等信息进行修改,修改前,以学号先查找到该学生,并且输出其详细信息,方便操作者进行修改。(5)void delete_student();该函数能够以学号为依据,实现对象的删除,并且删除后该位置会被写一个
4、数据填充。(6)void serch_menu();该函数被调用后系统会进入查看菜单,可选择以不同的方式查看学生的成绩信息。按照不同的选择,该函数会调用一下函数。 void surch_number();该函数以学号为依据实现精确查找。 void surch_CLASS();能够根据姓名、班级查询学生信息void detial_class();该函数能够汇总您要查询的班级详细情况,功能包括人数,每个人都详细情况,班级平均分,和该班级的各个科目的平均分。void subject_ave();该函数能够计算出所有科目的平均分。(7)void open_file();该函数可以打开已经保存的学生信息
5、,并且显示到屏幕上,打开后可以进行上述的各种操作。除此之外,还写了void main_menu();主菜单,实现对上述各个功能的选择。3数据结构的设计UML类图数据结构的代码设计如下:const int N = 5000;/student sNstatic int count=N;/控制学生的操作数,默认值为N,在main中会提示改变class student/定义学生类private:string name, sex, number, CLASS;int chinese, math, english, comprehensive, sum, ave, rank;public:string g
6、et_name()/外部接口,查询信息时用到。return name;string get_number()/外部接口,查询信息时用到。return number;int get_chinese()/外部接口,分班级处理时用到。return chinese;int get_math()/外部接口,分班级处理时用到。return math;int get_english()/外部接口,分班级处理时用到。return english;int get_comprehensive()/外部接口,分班级处理时用到。return comprehensive;int get_sum()/总分是排序的依据,在
7、输出信息和排序时会产生sum = chinese + math + english + comprehensive; return sum;int get_ave()ave = (chinese + math + english + comprehensive) / 4;return ave;string get_CLASS()return CLASS;void set_rank(int rank)/对多个学生进行排序时产生产生名次this-rank = rank;void set_Rn(int nsum, int nave, int nrank)/我把总分、平均数和名次称为余项。/这些数据在
8、基本数据录入后会产生。sum = nsum;/提供这个外部接口用于从文件中读取这些数据ave = nave;rank = nrank;friend istream & operator (istream & in, student &cs) /重载插入符,实现输入基本数据in cs.CLASS cs.number cs.name cs.sex cs.chinese cs.math cs.english prehensive;return in;friend ostream & operator (ostream & out, student &cs) /重载提取符,实现格式输出详细信息out
9、cs.CLASS t cs.number t cs.name t cs.sex t cs.chinese t cs.matht cs.english t prehensivet cs.get_sum() t cs.get_ave() t cs.rank t)和提取符()。但是11个数据成员中只有8个是是从键盘输入,所以重载插入符时仅仅实现了8个基本数据的输入。另外3个数据有两个是通过调用get_ave()和get_sum()时由基本数据自动算出并返回给调取位置,另外一个排名rank是在降序排序时产生。所以,在重载提取符时实现了11个数据的格式输出。所以文件中,每个成员有11个数据,通过重载的提
10、取符只能提取8个,另外三个暂时保存在临时定义的sum,ave,rank中,通过对象的成员函数void set_Rn(int nsum, int nave, int nrank)把剩余的三个值对象的数据成员。从而避免从文件中读取数据时出现读取错位的现象。5.程序代码 请注意参考注释#include#include#includeusing namespace std;const int N = 5000;/student sNstatic int count=N;/控制学生的操作数,默认值为N,在main中会提示改变void mima( );/函数的声明void input_student();
11、void rank_down();void save_student();void rwrite_student();void delete_student();void serch_menu();void open_file();void surch_number();void surch_CLASS();void detial_class();void subject_ave();class student/定义学生类private:string name, sex, number, CLASS;int chinese, math, english, comprehensive, sum,
12、 ave, rank;public:string get_name()/外部接口,查询信息时用到。return name;string get_number()/外部接口,查询信息时用到。return number;int get_chinese()/外部接口,分班级处理时用到。return chinese;int get_math()/外部接口,分班级处理时用到。return math;int get_english()/外部接口,分班级处理时用到。return english;int get_comprehensive()/外部接口,分班级处理时用到。return comprehensiv
13、e;int get_sum()/总分是排序的依据,在输出信息和排序时会产生sum = chinese + math + english + comprehensive; return sum;int get_ave()ave = (chinese + math + english + comprehensive) / 4;return ave;string get_CLASS()return CLASS;void set_rank(int rank)/对多个学生进行排序时产生产生名次this-rank = rank;void set_Rn(int nsum, int nave, int nra
14、nk)/我把总分、平均数和名次称为余项。/这些数据在基本数据录入后会产生。sum = nsum;/提供这个外部接口用于从文件中读取这些数据ave = nave;rank = nrank;friend istream & operator (istream & in, student &cs) /重载插入符,实现输入基本数据in cs.CLASS cs.number cs.name cs.sex cs.chinese cs.math cs.english prehensive;return in;friend ostream & operator (ostream & out, student
15、&cs) /重载提取符,实现格式输出详细信息out cs.CLASS t cs.number t cs.name t cs.sex t cs.chinese t cs.matht cs.english t prehensivet cs.get_sum() t cs.get_ave() t cs.rank t endl;return out;student();student sN;/N=5000,但是学生的操作数是由count控制void mima() /密码设置与验证模块string mima, mima1;ifstream mimafile(mima.txt);if (mimafile.f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 课程设计 报告 毕业论文
限制150内