




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计说明书题目:成绩统计系统姓名: 学号:班级:兰州交通大学电信学院软件工程系2015年 7 月10 日课程名课程设计任务书程序设计课程设计(VBC+)题目学生成绩统计系统姓名学号班级设计 任 务成绩统计系统程序功能:(1)要求能够对学生数据进行录入、添加、修改与删除;(2)已知N个学生的M门课程的成绩,求: 课程平均分和方差; 学生总分、平均分和平均分方差; 学生名次;最高分及得最高分的学生和课程。 要求:(1)输入数据存放于文件中,输出数据除了输出到屏幕上,也输出到一个文本 文件中;(2)数据结构采用数组,整体框架采用模块化处理;3)输出数据采用表格形式(不必画表格线)。设计要求程序质
2、量:1 符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合 理。2要求界面友好美观(版权页、登录页 ),功能明确,操作方便。(登录页的用户名:abed,密码:1234)3 代码应适当缩进,并给出必要的注释,以增强程序的可读性。4 程序调试完后需生成可执行文件。课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容及格式参见课程设计要求。指导教师签字课程设计评分表课程设计题目:学生成绩统计系统姓名学号学院专业评价指标指标内涵分值评分选题与设计完成情况选题难度选题难度分为两个等级,A类选题为一级,B类选 题为二级30工作量工作量饱满,工作认真、严谨,遵守纪
3、律,与同学 团结协作、协调能力强,能按时完成设计任务。综合运用 知识综合运用知识能力强,能较系统地运用有关理论与 知识解决实际问题。能够独立查阅文献资料,从事 调查研究;具有收集、整理、加工各种信息及获取 新知识的能力。设计水平与 实际能力能独立开展设计工作,能熟练掌握和运用所学基本 理论、基本知识和基本技能分析解决相关理论和实 际问题,设计方案合理可行,界面友好,符合课题 要求,实现相应功能;可以加以其他功能或修饰, 使程序更加完善、合理;操作方便易行。说 明 书 撰 写写作水平语言表达清晰,报告内容详实,能对本人所做工作 进行详细论述。30文档质量能够按照给定格式排版,页面美观。答JlA亠
4、 辩思路清晰,语言流畅,回答冋题准确。(无此环节则删除此行)30考 勤按时出勤,不迟到早退,以每次点名为准10成 绩评阅时间:2015年7月10 日目录一. 系统概述 5二. 系统分析 52.1程序流程图框架 5三. 系统详细设计 53.1数据结构设计 5(1)类的设计 5(2)系统包含的类库 6(3)各个变量的定义和作用 63.2系统函数的组成、功能、参数说明、相互调用关系 63.3全部窗体 9(1)开始界面,进入系统,显示本系统相关信息 10(2) 输入学生所有信息后,按操作 8,输出学生所有信息。.113.4小组中负责的代码编写 113.5附录 17(1)进入系统,显示本系统相关信息进入
5、菜单界面 19(2)输入4,按照总分进行排名。 21(3) 输入5,按照语文成绩进行排名 22(4)输入6,按照数学成绩进行排名 22(5)输入7,按照英语成绩进行排名 23(6)输入8,输出学生所有信息 23四. 总结 364.1 遇到的困难: 364.2 解决办法: 374.3 心得体会: 37五. 参考文献 45为方便对学生成绩进行高效的管理,编写该程序以提高学生成绩管理效率。使用该程序之后,学校管理者可以通过本系统对学生的成绩,名次,课程平均分等进行查询。也可对学生的成绩进行添加,删改等。通过本系统可以很好的掌握学生成绩的分布,减轻管理人员的负担,也使学生的成绩和信息长时期的保留。二.
6、 系统分析2.1程序流程图框架学生成绩管理系统操作厂1TIV录增删修入加除改数人人数据员员据排名TT按 总 分 排 名语 文 成 绩 排 名数 学 成 绩 排 名英 语 成 绩 排 名三. 系统详细设计3.1数据结构设计(1 )类的设计表3-1 Stu类成员列表Stu类char n ame20;double math;double chin ese;double en glish;double average;double sum;double getsum();double getaver();(2 )系统包含的类库#in clude#in clude#in clude输入输出流String
7、 类文件输入/输出操作(3 )各个变量的定义和作用char n ame20;学生姓名double math;数学成绩double chin ese;语文成绩double en glish;英语成绩double average;平均分double sum;总分Stu *s50;对象数组记录学生成绩3.2系统函数的组成、功能、参数说明、相互调用关系主函数main()调用菜单操作函数 handle_menu()实现菜单的输出和操作,调用index()打印首页。以及删除动态对象。菜单操作函数void handle_menu()这是一个无参的函数,通过调用菜单函数me nu()实现菜单的输出,利用 do
8、-while()语句和switch()语句实现各函数的调用,系统根据输入的字符选项来调用相应的函数,进行相应的操作。菜单函数void menu()这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的一大功能,根据每个功能前面的序号进行选择。打印首页函数void index()这是一个无参函数,主要功能是打印本系统的相关信息。默认构造函数Stu: Stu()这是Stu类中的一个默认构造函数,实现对象的初始化。有参构造函数 Stu: Stu(char n20,double ma,double chi n,double eng)这个函数的功能主要是对对象的数据成员赋值。求总分函数
9、double Stu:getsum()这是一个无参函数,主要功能是将每个对象的语文、数学、英语三科成绩求和,返回总分sum。求平均分函数 double Stu:getaver() 这是一个无参函数,调用double Stu:getsum()平均分,返回平均分average操作0数据录入函数 void operateO()这是一个无参函数,是Stu类的一个友元函数,该函数可将用户输入的学生的信息保存 到文件d:document,输入完成后会提示用户是否要继续录入。操作1增加人员函数void operate1()这是一个无参函数,是Stu类的一个友元函数,该函数可以增加学生人数,提示用户输 入的学
10、生的信息,并保存到文件d:docume nt,输入完成后会提示用户是否要继续录入。操作2删除人员函数 void operate2()这是一个无参函数,是Stu类的一个友元函数,进入后系统会提示用户输入需要删除学 生的姓名,然后查找该学生,删除该学生数据,并将其后指针往前移动一位,最后提示用户 是否继续删除。操作3修改数据函数 void operate3()这是一个无参函数,是Stu类的一个友元函数,进入后系统会提示用户输入需要修改学 生的姓名,该函数的功能是修改学生的成绩,防止了录入数据时的错误,保证了系统的完备性。操作4按总分排名函数 void operate4()这是一个无参函数,是Stu
11、类的一个友元函数,进入后系统会提示用户输入需要查询的 总分,然后输出所有该分数的学生的成绩,并提示用户是否需要继续查询。操作5按语文成绩排名函数 void operate8()这是一个无参函数,是Stu类的一个友元函数,进入后系统将按照语文成绩从高到低自 动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。操作6按数学成绩排名函数 void operate9()这是一个无参函数,是Stu类的一个友元函数,进入后系统将按照数学成绩从高到低自 动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。操作7按英语成绩排名函数 void operatey()这是一个无参函数
12、,是Stu类的一个友元函数,进入后系统将按照英语成绩从高到低自 动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。操作8输出所有学生的数据函数void operate6()这是一个无参函数,是Stu类的一个友元函数,进入后系统将自动输出该系统下所有学 生的成绩,但并不排序,而是按照录入是的顺序输出,输出之后提示用户是否需要进行其它 操作。3.3程序流程图(2)按总分排名函数定义(2)输入学生所有信息后,按操作8,输出学生所有信息。3.4运行流程(1 )开始界面,进入系统,显示本系统相关信息 D:keADebu gkef.exeB您想洼续迸行其祂操作吗M y eI青选择您需要的
13、虑作!对的% m增 fcg:壬兌骑13歩、数号蟲字符!1盂千空十” 集魏魏? -I 9 9 0 吗 8 8 9 LF 1= 学三W-行 有进 所续 系姓姓姓悲 1 I II 尔XJ285276278959292,66fc7W 选择相关操作请输戈 ;3.4小组中负责的代码编写head.h#if !defi ned(HEAD_H)#defi ne HEAD_H#in clude#in clude#in cludeusing n amespace std;/*声明Stu类*/class Stuprivate:char name20;/ 姓名double math,ch in ese,e nglish
14、,average,sum;public:Stu()/默认构造函数/声明有参构造函数Stu(char n 20,double ma,double chin, double en g); double getsum();/声明求总分函数0数据录入1增加人员2删除人员3修改数据4按总成绩查询5按语文成绩排名6按数学成绩排名7按英语成绩排名8输出所有学生数据double getaver();friend void operate。; /friend void operate1(); /friend void operate2(); /friend void operate3(); / frie nd
15、void operate4(); / friend void operate5(); / frie nd void operate6(); / friend void operate7(); / friend void operate8(); / ;/*声明函数原型*/声明求平均分函数声明有友元函数操作声明有友元函数操作声明有友元函数操作声明有友元函数操作声明有友元函数操作声明有友元函数操作声明有友元函数操作声明有友元函数操作声明有友元函数操作void menu();/声明菜单函数void ha ndle_me nu(); /声明菜单操作函数#en dif/stu.cpp/#i ncludeh
16、ead.h/*定义Stu类*/定义有参构造函数Stu:Stu(char n 20,double ma,double chin, double eng) strcpy( name, n);math=ma;chin ese=chi n;en glish=e ng;double Stu:getsum()/定义求总分函数sum=ch in ese+e nglish+math;return sum;double Stu:getaver()/定义求平均分函数average=getsum()/3;retur n average;operate8.cpp/in cludehead.h/*操作8输出所有学生的数
17、据函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern Stu *s50;/引用外部变量void operate8()char n ame20;char c;int flag2=0;cout本系统所有学生数据如下:endl;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!endl;for(int k=O;ki;k+)/ 数据输出数学:平均分:coutk+1 姓名:name 语文:chinesemath 外语:e nglish 总分:(*sk).getsum()(*sk).getaver()e ndl;/学生成绩管理系统.cpp#i nclud
18、ehead.hextern i; /引用外部变量extern Stu *s50;/引用外部变量int mai n()/in dex();coute ndl;coute ndl;cout*欢迎进入学生成绩管理系统*e ndl;han dle_me nu();for(int x=O;xi;x+)/ 删除对象delete sx;coutdelete all members! p;if(p=0&p=8)flag2=1;elsecout指令错误!请重新输入:endl;while(flag2=0);switch(p)case O:operate0(); / break;case 1:operate1();
19、 / break;case 2:operate2(); / break;case 3:operate3(); / break;case 4:operate4(); / break;case 5:operate5(); / break;case 6:operate6(); / break;case 7:operate7(); / break;case 8:操作0数据录入操作1增加人员操作2删除人员操作3修改数据操作4按总分排名操作5按语文成绩排名操作6按数学成绩排名操作7按英语成绩排名operate8();break;cout(0)cout(1)coutcoutcoutcoutcoutcoutc
20、out(8)coute ndl;cout请选择您需要的操作!e ndl;数据录入endl;增加人员endl;删除人员endl;修改数据endl; 按总分排名endl;按语文成绩排名endl;按数学成绩排名endl;按英语成绩排名endl; 输出学生所有信息endl;选择相关操作请输入相对的括号里的字符!cout您想继续进行其他操作吗?(y/n) w;if(w!=y&w!= n)cout指令错误!请重新输入! endl;elseflag4=1;while(flag4=0);if(w=y)han dle_me nu();void me nu() /定义菜单函数coute ndl;coute ndl
21、;coute ndlD:kefDebugkef.exe8 67 72 2五g吾吾H倉忌总入员蛊專总语数茧归012345678 ta-9 9陋9 9 9I=x:s!Jn如囂数?4r69 0 9 p-排GO 9 GO作学三华荐 95 93,666792淸选择您霊夢的操作!囱3名名冷眉28527827fi入员成星盼于単肿 密專总蜃央炸 si 0 1 2 3 4 5 6? c c ( ( ( c ( c c1-yff语语语A/A7A/9孚础9 97女名排1 -A1 變文寺 凌五呈口五 I IE 11 学三华進 K8a 断続 摯名名樂 孫姓姓姓悲 査1 M 3你心t : : ; n 于 数数数? f:吗
22、 8- ? 8 乍-制(9) 输 入 7按 照 英语 成绩进 行排 名D:keA Deb u g7c0 12 3 4 5 6V_的_对:tm黒输 *K*+ +* n lts于 y 如数姝数?、0 1234 5 678作 操 关 相 f 二、 选n営心总9797丽五口五口王口1 -L 1 T .1 1Kr %h9 0 99 9 9新有学生簪如下I:o 瞬施翳进春匍矗作吗抚;1附录所有程序代码/head.h#if !defi ned(HEAD_H)#defi ne HEAD_H#in clude#in clude#in cludeusing n amespace std;/*声明Stu类*/cla
23、ss Stuprivate:char name20;/ 姓名double math,ch in ese,e nglish,average,sum;public:Stu()/默认构造函数Stu(char n 20,double ma,double chin, double en g);/声明有参构造函数double getsum();/声明求总分函数double getaver();/声明求平均分函数friend void operate。; /声明有友兀函数操作0数据录入friend void operate1(); /声明有友兀函数操作1增加人员friend void operate2();
24、 /声明有友兀函数操作2删除人员friend void operate3(); /声明有友兀函数操作3修改数据frie nd void operate4(); /声明有友兀函数操作4按总成绩查询friend void operate5(); /声明有友兀函数操作5按语文成绩排名frie nd void operate6(); /声明有友兀函数操作6按数学成绩排名friend void operate7(); /声明有友兀函数操作7按英语成绩排名friend void operate8(); /声明有友兀函数操作8输出所有学生数据;/*声明函数原型*/void menu();/声明菜单函数voi
25、d ha ndle_me nu(); /声明菜单操作函数#en dif/stu.cpp/#i ncludehead.h/* *定义Stu类*Stu:Stu(char n 20,double ma,double chin, double eng) strcpy( name, n);math=ma;chin ese=chi n;en glish=e ng;double Stu:getsum()/定义求总分函数sum=ch in ese+e nglish+math;return sum;double Stu:getaver()/定义求平均分函数average=getsum()/3;retur n a
26、verage;/operateO.cpp/#i ncludehead.h/*操作0数据录入函数定义*/int i=0;/定义全局变量int j=0;/定义全局变量Stu *s50;/定义对象数组void operate0()char n ame20;char c;ofstream *file50;bool flag2=0;double math,ch in ese,e nglish;docout请输入姓名:endl;cinn ame;cout请输入数学成绩: math;cout请输入语文成绩: ch in ese;cout请输入外语成绩:endl; cinen glish;/定义有参构造函数/
27、通过文件保存学生成绩filej=new ofstream(d:docume nt,ios:ate); 到d:docume nt*filej 姓名name数学成绩math语文成绩chinese外语成 绩e nglishe ndl;j+;si=new Stu(n ame, math, chin ese, en glish);i+;cout数据录入成功,想继续录入吗(y/n) c;flag2=0;doif(c!=y&c!= n)cout指令错误!请重新输入! c;elseflag2=1;while(flag2=0);while(c=y);operate1.cpp/#i ncludehead.h/*操
28、作1增加人员函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern Stu *s50;/引用外部变量void operate1()char n ame20;char c;ofstream *file50;bool flag2=0;double math,ch in ese,e nglish;docout请输入您要增加的学生的姓名:endl;cinn ame;cout请输入数学成绩: math;cout请输入语文成绩: ch in ese;cout请输入外语成绩:endl;cinen glish;filej=new ofstream(d:document,ios
29、:ate);/ 通过文件保存学生成绩到d:docume nt*filej 姓名name数学成绩math语文成绩chinese外语成 绩e nglishe ndl;j+;si=new Stu(n ame, math, chin ese, en glish);i+;cout数据录入成功,想继续录入吗(y/n) c;flag2=0;doif(c != y & c != n)cout指令错误!请重新输入! c;elseflag2 = 1;while(flag2 = 0);while(c = y);operate2.cpp#i ncludehead.h/*操作2删除人员函数定义*/extern i;/引
30、用外部变量extern j;/引用外部变量extern Stu *s50;/引用外部变量void operate2()char n ame20;char c;bool flag3=0;docout请输入您要删除的学生姓名:endl;cinn ame;for(i nt h=O;hn ame) = 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.cp
31、p/#i ncludehead.h/*操作3修改数据函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern Stu *s50;/引用外部变量void operate3()char n ame20;char c;bool flag2=0;/double math,ch in ese,e nglish;double mat,ch in,eng;docout请输入您要修改的学生的姓名:endl;cinn ame;for(i nt h=0;h name)=O)flag2=1;cout请输入新的数学成绩: mat;cout请输入新的语文成绩: chi n;cout请输入
32、新的外语成绩:ch in ese=chi n;sh-math=mat;sh-e nglish=e ng;cout数据修改成功!;if(flag2=0)e ndl;cout您要修改的学生本来就不存在!请检查重新输入!cout想继续修改吗(y/n) c;if(c!=y&c!= n)cout指令错误!请重新输入! c;while(c=y);operate4.cpp#i ncludehead.h/*操作4按总分排名函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern Stu *s50;/引用外部变量void operate4()/char n ame20;/char
33、 c;bool flag2=0;int t;Stu b;cout本系统所有学生排名如下:endl;for(i nt x=0;xi-1;x+)t=x;for(i nt y=x+1;ygetsum()getsum()t=y;if(t!=x)b=*sx;*sx=*st;*st=b;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!;for(int k=O;ki;k+)/ 数据输出数学:平均分:coutk+1 姓名:name 语文:chinese math 外语:e nglish总分:(*sk).getsum()(*sk).getaver()e ndl;operate5.cpp#i nc
34、ludehead.h/*操作5按语文成绩排名函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern Stu *s50;/引用外部变量void operate5()/char n ame20;/char c;bool flag2=0;/double math,ch in ese,e nglish;int t;Stu b;cout本系统所有学生语文排名如下:endl;for(i nt x=0;xi-1;x+)t=x;for(i nt y=x+1;ychi nesech in ese)t=y;if(t!=x)b=*st;*st=*sx;*sx=b;if(i=0)co
35、ut管理系统中没有录入数据或者数据已经被删除!;for(int k=O;ki;k+)/ 数据输出数学:平均分:coutk+1 姓名:name语文:chinesemath 外语:e nglish总分:(*sk).getsum()(*sk).getaver()e ndl;operate6.cpp#i ncludehead.h/*操作6按数学成绩排名函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern Stu *s50;/引用外部变量void operate6()/char n ame20;/char c;bool flag2=0;/double math,ch
36、in ese,e nglish;int t;Stu b;cout本系统所有学生数学排名如下:endl;for(i nt x=O;xi;x+)t=x;for(i nt y=x+1;ymathmath)t=y;if(t!=x)b=*st;*st=*sx;*sx=b;if(i=0)cout管理系统中没有录入数据或者数据已经被删除!;for(int k=O;ki;k+)/ 数据输出数学:平均分:coutk+1 姓名:name语文:chinesemath 外语:e nglish 总分:(*sk).getsum() (*sk).getaver()e ndl;/void operate7()#i nclud
37、ehead.h/*操作7按英语成绩排名函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern Stu *s50;/引用外部变量void operate7()/char n ame20;/char c;bool flag2=0;/double math,ch in ese,e nglish;int t;Stu b;cout本系统所有学生英语排名如下:endl;for(i nt x=0;xi-1;x+)t=x;for(i nt y=x+1;ye nglishe nglish)t=y;if(t!=x)b=*st;*st=*sx;*sx=b;if(i=0)cout管理
38、系统中没有录入数据或者数据已经被删除!;for(int k=O;ki;k+)/ 数据输出数学:平均分:coutk+1 姓名:name语文:chinesemath 外语:e nglish总分:(*sk).getsum()(*sk).getaver()e ndl;operate8.cpp/in cludehead.h/*操作8输出所有学生的数据函数定义*/extern i;/引用外部变量extern j;/引用外部变量extern Stu *s50;/引用外部变量void operate8()char n ame20;char c;bool flag2=0;cout本系统所有学生数据如下:endl;if(i=O)cout管理系统中没有录入数据或者数据已经被删除!endl;for(int k=O;ki;k+)/ 数据输出coutk+1 姓名:name 语文:chinese数学:math 外语:e nglish 总分:(*sk).getsum() 平均分: (*sk).getaver()e ndl;II学生成绩管理系统.cpp#i ncludehead.hextern i; II引用外部变量extern Stu *s50;II引用外部变量int mai n()/in dex();coute ndl;coute ndl;cout*欢迎进入学生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 游泳救生员资格考试的多元文化试题及答案
- 游泳救生员老年人救助技巧试题及答案
- 2024年模具设计师资格认证必要试题及答案
- 2024年足球裁判员考试的实践性试题
- 2024年农作物繁育员需要掌握的商业知识试题及答案
- 裁判员如何科学管理场上时间试题及答案
- 裁判员的学术背景与实务经验的试题与答案
- 模具设计的基础知识与技能试题及答案
- 安装拉布车棚合同协议书(2篇)
- 足球裁判员如何评估自身执法效果试题及答案
- 二年级数学生活中的推理-完整版PPT
- 《环境生态学导论(第二版)》课件第二章 生物与环境
- 车床、钻床安全风险辨识清单
- (完整版)保温工艺课件
- BLM(含样例)(培训调研)课件(PPT 121页)
- T∕CVIA 73-2019 视觉疲劳测试与评价方法 第2部分:量表评价方法
- 小学美术课件-第12课太空旅行-冀美版(16张PPT)ppt课件
- 美国房屋租赁合同完整版(中英文)
- ISO9001质量管理体系文件
- [《像艺术家一样思考》等]像艺术家一样思考pdf
- 盲审后论文修改情况审核表
评论
0/150
提交评论