当前位置:文档之家› C学生成绩管理系统完整

C学生成绩管理系统完整

C学生成绩管理系统完整 The latest revision on November 22, 2020(二〇一四 年 十 一月课程设计说明书 本科毕业设计题 目: 学生成绩管理系统(教师端) 学生姓名: 陈 学 院:工学院 专 业:数字媒体技术 班 级:2013级 指导教师:目录一、设计题目(问题)描述和要求设计目的:为方便对学生成绩进行高效的管理,编写该程序以提高学生成绩管理效率。

使用该程序之后,学校管理者可以查询某位学生、某个科目的成绩情况,还可以对学生成绩进行排名,对学生的数据进行修改和删除,其中排名以按总分排名,并且还提供了多种浏览方式,查询结果包括各个科目的分数、总分。

通过本系统可以很好的掌握学生成绩的分布,减轻管理人员的负担,也使学生的成绩和信息长时期的保留。

问题描述:编写一个简单的学生成绩管理系统。

学生成绩管理系统有若干学生成绩记录组成,每个记录由学号、姓名、性别、年级、班级、三个科目成绩、总分、总排名、各科目排名几个部分组成,学号不超过5个字符,姓名不超过3个字符,成绩为int型数据。

该系统具有以下功能:程序开始执行时显示如下版权信息和主菜单:*******学生成绩管理系统*************学生信息*1.登记*2.编辑*3.顺序4.删除浏览* 5全部*6个人*7考试* 8专业*9指定系统设置10默认0.退出************************************请输入(0~8):通过键盘输入数字0~10后,程序能够执行相应的功能,执行完后回到上述主菜单继续等待用户输入,输入数字0后退出程序。

(1)选择“登记”后,输入学生个数。

按程序提示输入学号、姓名、性别、年级、班级、三个科目成绩、总分、总排名、各科目排名。

(2)选择“编辑”,按提示输入要删除的学生的学号,输入学号,若改学号存在,则编辑相应的学生记录,如果该学号不存在,返回主菜单(3)选择“顺序”后,会显示从成绩高到低还是相反。

该操作会改变程序中链表的连接顺序,因此浏览时候显示也是顺序改变后的链表顺序输出。

(4)(5)选择“全部”,系统会按照年级显示全部学生其成绩。

(6)选择“个人”,系统会提示输入学生姓名或者学号进行寻找并显示。

(7)选择“考试”,会按照每一年级的每一次考试显示成绩。

(8)选择“专业”,会按照专业进行成绩输出。

(9)选择“指定”,里面还有八种显示方式:分数段、排名、学期、班级、大一至大四,可以按照其进行浏览。

(10)进行系统相关的设置,如是否显示欢迎窗口,是否自动读取信息或是手动、是否浏览显示全部等(0)退出操作。

二、系统分析与模块设计《学生成绩管理系统》结构图三、系统设计1. 系统总体框架《学生成绩管理系统》流程图2. 系统关键算法流程图(1).系统包含的类库#include<iostream>#include<string>#include<fstream>#include<iomanip>#include<>#include<>(2).主函数(3)student类的设计与分析class student/*定义学生成绩类*/{private:Score *sco;string name;class List{int set[SET];Student* stu; public:core类(6). 输入学生资料模块:主要功能用来对学生的成绩进行收集和输入。

在学生信息保存在系统中的前提下,输入要输入的人数,成绩录入需要输入学生资料,比如学号,姓名。

在准确输入学生资料后,就可以对该学生的各科成绩进行录入。

该学生各科成绩输入成功后,输入下一个学生资料时会先判断是否学号是否与之前的学生相同,如果相同,则显示提示信息,不同则继续输入(6) 输出学生资料模块:主要功能用来对学生的成绩进行输出。

在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。

具体包括学生的学号,姓名和各科成绩。

在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单(5)查找并显示学生资料模块主要功能是用来查找学生资料。

在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息(6)按学号查找,修改学生资料模块主要功能是用来修改学生资料。

在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生学号,系统就会显示该学生资料和各科成绩等信息,这样就可以修改该学生的资料,成绩等信息。

(7)按学号查找,删除该学生资料模块主要功能是用来删除学生资料。

在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生学号,系统查找该学生资料后,就可以删除了。

由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化(8)按学生成绩总分进行排列模块主要功能是用来对学生的资料按总分进行排序。

在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按总分进行排序,这样就方便查找成绩相同或是相近的同学的资料。

(9)储存学生资料并退出系统模块主要功能是用来储存学生资料。

在对系统进行一系列操作,比如添加、删除、修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作。

四、运行结果1.开始界面2.输入数据3.搜索数据4.删除5. 修改数据7. 显示数据8.系统设置五、小结这个程序经过了暑假开始到十月份的修改编辑,要感谢老师及同学的指导,另外程序本身更适合学生数量不是特别多的情况下,加入学生有上千上万个,那么应该在添加几个类,在学生类之上的类,这样才可以大大方便了各种操作以及浏览等。

六、参考资料《C++程序设计教程》CSDN程序员社区代码:/**学生成绩管理系统*类:Student Score Manage*可保存学科:语文数学英语*时间段:大一至大四*说明:该程序针对学生数较少的情况,假如面对上千上万的学生数,应该再将其中的存储结构进行改变,* 分别分层次存储,例如大一至大四四个链表表头,在每一个链表中又根据不同分类依据细分,* 例如根据学院、专业等,这样的改变将大大有利于程序进行的寻找、输出、排序等涉及链表的操作,* 当然相应代码也要稍作改变*/#include<iostream>#include<string>#include<fstream>#include<sstream>#include<iomanip>#include<>#include<>#include<vector>using namespace std;#define CONOBJ 3 参数时的构造函数Student(string iname="No name",string ipro="none",inticlass=0,int igrade=0,string inum="0",char isex='n'):name(iname),num(inum),sex(isex),next(NULL),pro(ipro),clas(icl ass),grade(igrade){sco=NULL;cout<<"\t\t\t\t★成功添加学生"<<name<<"★\n";return;}于添加无输入成绩的构造函数Student(string iname,string ipro,int iclas,int igrade,string inum,char isex,int *score):name(iname),pro(ipro),clas(iclas),grade(igrade),num(inum),sex (isex),next(NULL){sco=new Score(score);cout<<"\t\t\t\t★成功添加学生"<<name<<"★\n";}于添加有成绩的构造函数Student(string iname,string ipro,int iclas,int igrade,string inum,char isex,int *score,int conor,int *order):name(iname),pro(ipro),clas(iclas),grade(igrade),num(inum),sex (isex),next(NULL){sco=new Score(score,order,conor);}于从文件读入时候的构造函数int CountOfScore(); 学院▏\n";cout<<"\t\t▕▔▔▔▔▔▔▔▔▔▔▔▏\n";cout<<"\t\t▕ 2.理学院▏\n";cout<<"\t\t▕▔▔▔▔▔▔▔▔▔▔▔▏\n";cout<<"\t\t▕ 3.医学院▏\n";cout<<"\t\t▕▔▔▔▔▔▔▔▔▔▔▔▏\n";cout<<"\t\t▕ 4.农学院▏\n";cout<<"\t\t▕▔▔▔▔▔▔▔▔▔▔▔▏\n";cout<<"\t\t▕ 5.经管学院▏\n";cout<<"\t\t▕▔▔▔▔▔▔▔▔▔▔▔▏\n";cout<<"\t\t▕ 0.退出选择▏\n";cout<<"\t\t ▔▔▔▔▔▔▔▔▔▔▔ \n";do{cout<<" \t\t请输入相应学院代号:";cin>>kh;}while(!(kh>=0&&kh<6));cout<<"\t*********************\n";switch (kh){case 1:cout<<"\t* 11.数字媒体技术\n";cout<<"\t* 12.土木工程\n";cout<<"\t* 13.建筑学\n";cout<<"\t* 14.化学工程工艺\n"; break;case 2:cout<<"\t* 21.化学系\n";cout<<"\t* 22.地理工程\n";cout<<"\t* 23.环境工程\n"; break;case 3:cout<<"\t* 31.临床医学\n";cout<<"\t* 32.麻醉学\n";cout<<"\t* 33.影像学\n"; break;case 4:cout<<"\t* 41.院农业机械\n";cout<<"\t* 42.水产养殖\n"; break;case 5:cout<<"\t* 51.经济学\n";cout<<"\t* 52.国际经济贸易\n";cout<<"\t* 53.金融学\n"; break;}int ch;cout<<"\t* 0.返回\n";cout<<"\t***********************\n";do{cout<<"\t请输入相应专业代号:";cin>>ch;if(ch==0){i=OfProfe();return i;}}while(!((ch%10>0&&ch%10<4&&ch!=43&&ch/10==kh)||(ch==14&&ch/10==kh)));cout<<"\t***********************\n";switch (ch){case 11:i="数字媒体技术"; break;case 12:i="土木工程"; break;case 13:i="建筑学"; break;case 14:i="化学工程工艺"; break;case 21:i="化学系"; break;case 22:i="地理工程"; break;case 23:i="环境工程"; break;case 31:i="临床医学"; break;case 32:i="麻醉学"; break;case 33:i="影像学"; break;case 41:i="农业机械"; break;case 42:i="水产养殖"; break;case 51:i="经济学"; break;case 52:i="国际经济贸易"; break;case 53:i="金融学"; break;default:cout<<"\t输入错误。

相关主题