成绩管理系统课程设计_第1页
成绩管理系统课程设计_第2页
成绩管理系统课程设计_第3页
成绩管理系统课程设计_第4页
成绩管理系统课程设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计说明书题目: 成绩统计系统 姓名: 学号: 班级: 兰州交通大学电信学院软件工程系2015 年 7 月 10 日课程设计任务书课程名称程序设计课程设计(vbc+)题目学生成绩统计系统姓名学号班级设计任务成 绩 统 计 系 统程序功能:(1)要求能够对学生数据进行录入、添加、修改与删除;(2)已知n个学生的m门课程的成绩,求:课程平均分和方差;学生总分、平均分和平均分方差;学生名次;最高分及得最高分的学生和课程。要求:(1)输入数据存放于文件中,输出数据除了输出到屏幕上,也输出到一个文本文件中;(2)数据结构采用数组,整体框架采用模块化处理;(3)输出数据采用表格形式(不必画表格线)。设

2、计要求程序质量:1符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理。2要求界面友好美观(版权页、登录页),功能明确,操作方便。(登录页的用户名:abcd,密码:1234)3代码应适当缩进,并给出必要的注释,以增强程序的可读性。 4程序调试完后需生成可执行文件。课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容及格式参见课程设计要求。指导教师签字课程设计评分表课程设计题目:学生成绩统计系统姓名学号学院专业评价指标指标内涵分值评分选题与设计完成情况选题难度选题难度分为两个等级,a类选题为一级,b类选题为二级30工 作 量工作量饱满,工作认真、严谨,

3、遵守纪律,与同学团结协作、协调能力强,能按时完成设计任务。综合运用知 识综合运用知识能力强,能较系统地运用有关理论与知识解决实际问题。能够独立查阅文献资料,从事调查研究;具有收集、整理、加工各种信息及获取新知识的能力。设计水平与实际能力能独立开展设计工作,能熟练掌握和运用所学基本理论、基本知识和基本技能分析解决相关理论和实际问题,设计方案合理可行,界面友好,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;操作方便易行。说明书撰写写作水平语言表达清晰,报告内容详实,能对本人所做工作进行详细论述。30文档质量能够按照给定格式排版,页面美观。答辩思路清晰,语言流畅,回答问题

4、准确。(无此环节则删除此行)30考勤按时出勤,不迟到早退,以每次点名为准10成绩评阅时间: 2015年 7 月10 日 目录一 系统概述5二系统分析52.1 程序流程图框架5三系统详细设计53.1数据结构设计5(1)类的设计5(2)系统包含的类库6(3)各个变量的定义和作用63.2系统函数的组成、功能、参数说明、相互调用关系63.3全部窗体8(1)开始界面,进入系统,显示本系统相关信息8(2)输入学生所有信息后,按操作8,输出学生所有信息。93.4 小组中负责的代码编写93.5 附录15(1)进入系统,显示本系统相关信息进入菜单界面 17(2)输入4,按照总分进行排名。19(3)输入5,按照语

5、文成绩进行排名20(4)输入6,按照数学成绩进行排名20(5)输入7,按照英语成绩进行排名21(6)输入8,输出学生所有信息21四 总结34 4.1遇到的困难:34 4.2解决办法:35 4.3心得体会:41五 参考文献451 系统概述 为方便对学生成绩进行高效的管理,编写该程序以提高学生成绩管理效率。使用该程序之后,学校管理者可以通过本系统对学生的成绩,名次,课程平均分等进行查询。也可对学生的成绩进行添加,删改等。通过本系统可以很好的掌握学生成绩的分布,减轻管理人员的负担,也使学生的成绩和信息长时期的保留。二系统分析 2.1 程序流程图框架学生成绩管理系统操作查询排名增加人员按总成绩查询录入

6、数据删除人员修改数据输出全部数据按总分排名语文成绩排名数学成绩排名英语成绩排名三系统详细设计3.1数据结构设计(1)类的设计表3-1 stu类成员列表stu类char name20;double math;double chinese;double english;double average;double sum;double getsum();double getaver();(2)系统包含的类库#include输入输出流#includestring类#include文件输入/输出操作(3)各个变量的定义和作用char name20; 学生姓名double math; 数学成绩double

7、 chinese; 语文成绩double english; 英语成绩double average; 平均分double sum; 总分stu *s50; 对象数组记录学生成绩3.2系统函数的组成、功能、参数说明、相互调用关系主函数 main()调用菜单操作函数handle_menu()实现菜单的输出和操作,调用index()打印首页。以及删除动态对象。菜单操作函数 void handle_menu()这是一个无参的函数,通过调用菜单函数menu()实现菜单的输出,利用do-while()语句和switch()语句实现各函数的调用,系统根据输入的字符选项来调用相应的函数,进行相应的操作。菜单函数

8、 void menu()这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的十一大功能,根据每个功能前面的序号进行选择。打印首页函数 void index()这是一个无参函数,主要功能是打印本系统的相关信息。默认构造函数stu: stu()这是stu类中的一个默认构造函数,实现对象的初始化。有参构造函数stu: stu(char n20,double ma,double chin,double eng)这个函数的功能主要是对对象的数据成员赋值。求总分函数double stu:getsum()这是一个无参函数,主要功能是将每个对象的语文、数学、英语三科成绩求和,返回总分sum。

9、求平均分函数double stu:getaver()这是一个无参函数,调用double stu:getsum()平均分,返回平均分average操作0数据录入函数void operate0() 这是一个无参函数,是stu类的一个友元函数,该函数可将用户输入的学生的信息保存到文件d:document,输入完成后会提示用户是否要继续录入。操作1增加人员函数void operate1() 这是一个无参函数,是stu类的一个友元函数,该函数可以增加学生人数,提示用户输入的学生的信息,并保存到文件d:document,输入完成后会提示用户是否要继续录入。操作2删除人员函数void operate2()

10、这是一个无参函数,是stu类的一个友元函数,进入后系统会提示用户输入需要删除学生的姓名,然后查找该学生,删除该学生数据,并将其后指针往前移动一位,最后提示用户是否继续删除。操作3修改数据函数void operate3() 这是一个无参函数,是stu类的一个友元函数,进入后系统会提示用户输入需要修改学生的姓名,该函数的功能是修改学生的成绩,防止了录入数据时的错误,保证了系统的完备性。操作4按总分排名函数void operate4() 这是一个无参函数,是stu类的一个友元函数,进入后系统会提示用户输入需要查询的总分,然后输出所有该分数的学生的成绩,并提示用户是否需要继续查询。操作5按语文成绩排名

11、函数void operate8() 这是一个无参函数,是stu类的一个友元函数,进入后系统将按照语文成绩从高到低自动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。操作6按数学成绩排名函数void operate9() 这是一个无参函数,是stu类的一个友元函数,进入后系统将按照数学成绩从高到低自动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。操作7按英语成绩排名函数void operatey() 这是一个无参函数,是stu类的一个友元函数,进入后系统将按照英语成绩从高到低自动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。操作8输出所有

12、学生的数据函数void operate6()这是一个无参函数,是stu类的一个友元函数,进入后系统将自动输出该系统下所有学生的成绩,但并不排序,而是按照录入是的顺序输出,输出之后提示用户是否需要进行其它操作。3.3 程序流程图(1) 输出学生所有信息的流程图开始 输入flag2=0,name20,i,j,c,k是kii=i+1是否输出”语文分数,数学成绩,英语成绩,以及平均分” 否 i=0否输出管理系统中没有录入数据或者数据已经被删除! 结束 开始(2)按总分排名函数定义输入i,j,t,stu b,fiag2=0,x=0,k=0xi-1是t=i,y=x+1yi是t!=x是b=*sx,sx=st

13、,st=by=y+1x=x+1ki结束k=k+1是按照排名输出学生信息3.4运行流程 (1)开始界面,进入系统,显示本系统相关信息(2)输入学生所有信息后,按操作8,输出学生所有信息。3.4 小组中负责的代码编写head.h#if !defined(head_h)#define head_h#include#include#includeusing namespace std;/*声明stu类*/class stuprivate:char name20;/姓名double math,chinese,english,average,sum;public:stu()/默认构造函数stu(char

14、n20,double ma,double chin,double eng);/声明有参构造函数double getsum();/声明求总分函数double getaver();/声明求平均分函数friend void operate0();/声明有友元函数操作0 数据录入friend void operate1();/声明有友元函数操作1 增加人员friend void operate2();/声明有友元函数操作2 删除人员friend void operate3();/声明有友元函数操作3 修改数据friend void operate4();/声明有友元函数操作4 按总成绩查询friend

15、 void operate5();/声明有友元函数操作5 按语文成绩排名friend void operate6();/声明有友元函数操作6 按数学成绩排名friend void operate7();/声明有友元函数操作7 按英语成绩排名friend void operate8();/声明有友元函数操作8 输出所有学生数据;/*声明函数原型*/void menu();/声明菜单函数void handle_menu();/声明菜单操作函数#endif/stu.cpp/#includehead.h/*定义stu类*/stu:stu(char n20,double ma,double chin,d

16、ouble eng)/定义有参构造函数strcpy(name,n); math=ma; chinese=chin; english=eng;double stu:getsum()/定义求总分函数sum=chinese+english+math;return sum;double stu:getaver()/定义求平均分函数average=getsum()/3;return average;/operate8.cpp/includehead.h/*操作8输出所有学生的数据函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern stu *s50;/引用外部变量vo

17、id operate8()char name20;char c; int flag2=0; cout本系统所有学生数据如下:endl;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!endl;for(int k=0;ki;k+)/数据输出coutk+1 姓名: name 语文: chinese 数学:math 外语:english 总分:(*sk).getsum() 平均分:(*sk).getaver()endl;/学生成绩管理系统.cpp/#includehead.hextern i;/引用外部变量extern stu *s50;/引用外部变量int main()/index

18、();coutendl;coutendl;cout *欢迎进入学生成绩管理系统*endl;handle_menu();for(int x=0;xi;x+)/删除对象 delete sx; coutdelete all members!p;if(p=0&p=8) flag2=1;else cout指令错误!请重新输入:endl; while(flag2=0);switch(p)case 0:operate0();/操作0数据录入break;case 1:operate1();/操作1增加人员break;case 2:operate2();/操作2删除人员break;case 3:operate3

19、();/操作3修改数据break;case 4:operate4();/操作4按总分排名break;case 5:operate5();/操作5按语文成绩排名break;case 6:operate6();/操作6按数学成绩排名break;case 7:operate7();/操作7按英语成绩排名break; case 8:operate8();break; cout您想继续进行其他操作吗?(y/n)w;if(w!=y&w!=n)cout指令错误!请重新输入!endl; else flag4=1;while(flag4=0);if(w=y)handle_menu();void menu()/定

20、义菜单函数coutendl;coutendl;cout 请选择您需要的操作!endl; coutendl;cout (0)数据录入endl; cout (1)增加人员endl; cout (2)删除人员endl; cout (3)修改数据endl; cout (4)按总分排名endl; cout (5)按语文成绩排名endl; cout (6)按数学成绩排名endl; cout (7)按英语成绩排名endl; cout (8)输出学生所有信息endl; cout 选择相关操作请输入相对的括号里的字符!endlendl;3.5 附录(1)进入系统,显示本系统相关信息进入菜单界面 (2)输入0,回

21、车,按提示输入数据。((3)输入1,回车,增加人员,按提示输入数据。(4)输入2,回车,删除人员,按提示输入数据。(5)输入3,回车,修改学生信息,按提示输入数据。(6)输入4,按照总分进行排名。(7)输入5,按照语文成绩进行排名(8)输入6,按照数学成绩进行排名(9)输入7,按照英语成绩进行排名(10)输入8,输出学生所有信息附录所有程序代码/head.h#if !defined(head_h)#define head_h#include#include#includeusing namespace std;/*声明stu类*/class stuprivate:char name20;/姓名

22、double math,chinese,english,average,sum;public:stu()/默认构造函数stu(char n20,double ma,double chin,double eng);/声明有参构造函数double getsum();/声明求总分函数double getaver();/声明求平均分函数friend void operate0();/声明有友元函数操作0 数据录入friend void operate1();/声明有友元函数操作1 增加人员friend void operate2();/声明有友元函数操作2 删除人员friend void operat

23、e3();/声明有友元函数操作3 修改数据friend void operate4();/声明有友元函数操作4 按总成绩查询friend void operate5();/声明有友元函数操作5 按语文成绩排名friend void operate6();/声明有友元函数操作6 按数学成绩排名friend void operate7();/声明有友元函数操作7 按英语成绩排名friend void operate8();/声明有友元函数操作8 输出所有学生数据;/*声明函数原型*/void menu();/声明菜单函数void handle_menu();/声明菜单操作函数#endif/stu.

24、cpp/#includehead.h/*定义stu类*/stu:stu(char n20,double ma,double chin,double eng)/定义有参构造函数strcpy(name,n); math=ma; chinese=chin; english=eng;double stu:getsum()/定义求总分函数sum=chinese+english+math;return sum;double stu:getaver()/定义求平均分函数average=getsum()/3;return average;/operate0.cpp/#includehead.h/*操作0数据录

25、入函数定义*/int i=0;/定义全局变量int j=0;/定义全局变量stu *s50;/定义对象数组void operate0()char name20;char c; ofstream *file50; bool flag2=0;double math,chinese,english;docout请输入姓名:name;cout请输入数学成绩:math;cout请输入语文成绩:chinese;cout请输入外语成绩:english;filej=new ofstream(d:document,ios:ate);/通过文件保存学生成绩到d:document*filej姓名name数学成绩ma

26、th语文成绩chinese外语成绩englishendl; j+; si=new stu(name, math, chinese, english); i+; cout数据录入成功,想继续录入吗(y/n)c; flag2=0; do if(c!=y&c!=n) cout指令错误!请重新输入!c; else flag2=1; while(flag2=0); while(c=y); /operate1.cpp/#includehead.h/*操作1增加人员函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern stu *s50;/引用外部变量void operat

27、e1()char name20;char c; ofstream *file50; bool flag2=0; double math,chinese,english;docout请输入您要增加的学生的姓名:name;cout请输入数学成绩:math;cout请输入语文成绩:chinese;cout请输入外语成绩:english;filej=new ofstream(d:document,ios:ate);/通过文件保存学生成绩到d:document*filej姓名name数学成绩math语文成绩chinese外语成绩englishendl; j+; si=new stu(name, math

28、, chinese, english); i+; cout数据录入成功,想继续录入吗(y/n)c; flag2=0; do if(c != y & c != n) cout指令错误!请重新输入!c; else flag2 = 1; while(flag2 = 0); while(c = y); /operate2.cpp/#includehead.h/*操作2删除人员函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern stu *s50;/引用外部变量void operate2()char name20;char c; bool flag3=0;docout

29、请输入您要删除的学生姓名:name;for(int h=0;hname) = 0)flag3 = 1; i-;dosh=sh+1;h+;while(h=i);if(flag3=0)cout您要求删除的对象本来就不存在!请检查输入的正确性!;cout要继续删除吗?(y/n)c;if(c!=y&c!=n)cout指令错误!请重新输入!c;while(c=y);/operate3.cpp/#includehead.h/*操作3修改数据函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern stu *s50;/引用外部变量void operate3()char nam

30、e20;char c; bool flag2=0; /double math,chinese,english;double mat,chin,eng;docout请输入您要修改的学生的姓名:name;for(int h=0;hname)=0)flag2=1; cout请输入新的数学成绩:mat;cout请输入新的语文成绩:chin;cout请输入新的外语成绩:eng;sh-chinese=chin;sh-math=mat;sh-english=eng;cout数据修改成功!;if(flag2=0)cout您要修改的学生本来就不存在!请检查重新输入!endl;cout想继续修改吗(y/n)c;i

31、f(c!=y&c!=n)cout指令错误!请重新输入!c;while(c=y); /operate4.cpp/#includehead.h/*操作4按总分排名函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern stu *s50;/引用外部变量void operate4()/char name20;/char c; bool flag2=0; int t;stu b;cout本系统所有学生排名如下:endl; for(int x=0;xi-1;x+)t=x;for(int y=x+1;ygetsum()getsum()t=y;if(t!=x)b=*sx; *

32、sx=*st; *st=b;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!; for(int k=0;ki;k+)/数据输出coutk+1 姓名: name 语文: chinese 数学:math 外语:english 总分:(*sk).getsum() 平均分:(*sk).getaver()endl;/operate5.cpp/#includehead.h/*操作5按语文成绩排名函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern stu *s50;/引用外部变量void operate5()/char name20;/char c; b

33、ool flag2=0; /double math,chinese,english;int t;stu b;cout本系统所有学生语文排名如下:endl;for(int x=0;xi-1;x+)t=x;for(int y=x+1;ychinesechinese)t=y;if(t!=x)b=*st; *st=*sx; *sx=b;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!;for(int k=0;ki;k+)/数据输出coutk+1 姓名: name 语文: chinese 数学:math 外语:english 总分:(*sk).getsum() 平均分:(*sk).get

34、aver()endl;/operate6.cpp/#includehead.h/*操作6按数学成绩排名函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern stu *s50;/引用外部变量void operate6()/char name20;/char c; bool flag2=0; /double math,chinese,english;int t;stu b;cout本系统所有学生数学排名如下:endl;for(int x=0;xi;x+)t=x;for(int y=x+1;ymathmath)t=y;if(t!=x)b=*st; *st=*sx;

35、 *sx=b;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!;for(int k=0;ki;k+)/数据输出coutk+1 姓名: name 语文: chinese 数学:math 外语:english 总分:(*sk).getsum() 平均分:(*sk).getaver()endl;/void operate7()/#includehead.h/*操作7按英语成绩排名函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern stu *s50;/引用外部变量void operate7()/char name20;/char c; bool f

36、lag2=0; /double math,chinese,english;int t;stu b;cout本系统所有学生英语排名如下:endl;for(int x=0;xi-1;x+)t=x;for(int y=x+1;yenglishenglish)t=y;if(t!=x)b=*st; *st=*sx; *sx=b;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!;for(int k=0;ki;k+)/数据输出coutk+1 姓名: name 语文: chinese 数学:math 外语:english 总分:(*sk).getsum() 平均分:(*sk).getaver(

37、)endl;/operate8.cpp/includehead.h/*操作8输出所有学生的数据函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern stu *s50;/引用外部变量void operate8()char name20;char c; bool flag2=0; cout本系统所有学生数据如下:endl;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!endl;for(int k=0;ki;k+)/数据输出coutk+1 姓名: name 语文: chinese 数学:math 外语:english 总分:(*sk).getsum() 平均分:(*sk).getaver()endl;/学生成绩管理系统.cpp/#includehead.hextern i;/引用外部变量extern stu *s50;/引用外部变量int main()/index();coutendl;coutendl;cout *欢迎进入学生成绩管理系统*endl;handle_menu();for(int x=0;xi;x+)/删除对象 delete sx; cout

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论