《学生成绩管理系统设计与实现48.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统设计与实现48.docx(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、河南工程学院高级程序设计语言课程设计成果报告学生成绩管理系统设计与实现第3章系统详细设计3.1类的设计类是程序不可缺少的局部,在本程序中设计了 3个类,分别为学生类、课程 类和成绩类,类中定义了各个数据成员,以构造函数的方式给数据成员赋初值, 下面是对3个类介绍:首先是student类studenty/A /numname numbery 7 v图3-1 Student类类图class student定义一个学生类 char name 30;定义姓名数组int num;/定义学号 int number;public:student ();声明无参的构造函数student (char n30,
2、int num) ;/声明有参的构造函数friend void main();将主函数声明为类的友元函数,方便访问类中数据 );表3-1 student类说明表(2)接着是subjic类名称属性说明num数据成员说明学生学号name数据成员说明学生名字number数据成员定义的数据成员subjic)mathmathAcppChinesey v7 图3-2 Subjic类类图class subjic定义一个课程类public:float math, cpp, Chinese;定义数据成员 friend void main();subjic() ;subjic (float ma, float c
3、j,float ch););表3-2subjic类说明表名称属性说明Math数据成员说明学生数学成绩Cpp数据成员说明学生C+成绩Chinese数据成员说明学生语文成绩(3)最后是result类result图3-3 Result类类图class result定义一个成绩类,计算平均分,总成绩和平时成绩float average, sum, pingshicj, zpcj, math, cpp, Chinese;定义数据成员 float getaver();声明计算平均分的函数 float getsumO ;声明计算总分的函数 float www();计算总评成绩的函数 friend void
4、main() ;表3-3Result类说明表名称属性说明average数据成员学生平均分sum数据成员学生总成绩pingshicj数据成员平时成绩zpcj数据成员总评成绩math数据成员学生数学成绩cpp数据成员学生C+成绩Chinese数据成员学生语文成绩3. 2主函数设计主函数在程序中起核心作用,本程序的主函数主要完成了界面的设计、调用 成绩类的函数计算总成绩、平均成绩和总评成绩,然后是定义指针方便后面调用类的数据成员,还定义了全局变量用于输入数据的下标。(1)首先是介绍界面设计和选择操作的设计:void main ()cout欢迎进入学生成绩管理系统endl;cout请选择你需要的操作!
5、endl;cout操作:,endl;cout/z (1)数据录入endl;cout/z (2)增加学生endl;cout,/ (3)删除学生“endl;cout (4)修改数据endl;cout查询:,endl;coutz/ (5)按总成绩查询endl;cout (6)按平均分查询endl;cout/z(7)按姓名查询endl;cout (8)输出所以学生的数据*endl;cout成绩统计endl;coutz,(9)每个学生的平均成绩endl;cout(10)各科不及格人数endl;cout排名endl;cout (11)按总分查询排名“endl;cout (12)退出“endl;这里是查询的
6、主页面的界面设计,页面输出以后都会显示这些操作选项供用户选 择,到达了简洁明了的效果。下面是操作选项的选择下标的设计,设计全局变量可以很好的控制下标的选 择,而且定义的指向各个类的指针可以方便后面操作程序的编写。cout选择操作请选择相应操作前的阿拉伯数字! p;if (p=1&P二12)chrisl=l;elsecout ! !输入错误,请重新输入:endl; while (chrisl-0);doswitch (p)(2)这里是各个操作的具体编译:其中数据录入、数据删除、按总成绩查 询、按平均分查询、按姓名查询都是以文件的方式读入,其他的按总成绩排序和 不及格人数的输出case 1:数据录
7、入char c; 用于在小项中选择是否继续操作char name 30;定义各个数据int number;float math, cpp, Chinese;float pingshicj;float zpcj;上面是数据成员的定义,接下来是具体操作的编译:do11 cout请输入姓名name;cout”请输入学号“number;coutmath;cout请输入 c+成绩cpp;cout”请输入语文成绩”endl;cinchinese;cout请输入平时成绩pingshicj;(3)以下是查询操作的编写首先为按总分查询,以指针来调用类中数据,其他的查询操作都是以相同的 方式设计完成,因代码篇幅过
8、多这里不一一列出case 5 :按总分查询int j=0;float SUM;char c;int flag;if (i=0)(cout数据库中没有数据,请输入后再操作z/endl;break;doflag=0;cout请输入你要查询的学生的总成绩:endl;cinSUM;for (int j=0;jgetsum()=SUM)12flag=l;cout你要查询的学生是:“ (*s j). nameendl;cout”该生的信息为:,zendl;cout学号:(*sj). num数学分数:math“c+分数:(*dj). cpp“语文分数:“(*dj). chinese平时成绩:(*f j).
9、pingshicjendl;)if (flag=0)cout”对不起!您要查询的学生不存在! c;if (c!= y &c!= n)(cout指令错误!请重新输入! c;;while(c= y);break;该程序除了总分查询外,还可以按平均分查询,按平均分查询操作的设计, 使您可以方便的查询到你所希望的平均分的学生,接下来是输出操作:(4)输出所有学生数据操作case 8:输出所有学生数据(cout”所有学生数据如下:endl;ifstream file;file, open (fl. txt, ios: in);coutfile. rdbuf ();13 file, close();bre
10、ak;)(5 )统计学生的平均成绩,以一个if语句判断系统内是否有数据,如果没有 数据需要重新输入case 9:统计每个学生的平均成绩(if (i=0)(cout系统中没有输入数据,请先输入数据!,endl; break;for(int m=0;mi;m+)cout (*sm). name学号(*sm). number。总分:(*f m). getsumO平均分:(*f m). getaver () “平时成绩:(*f ). pingshicjendl;break;(6 )统计不及格人数,以if语句判断是否大于60分case 10:统计各学科不及格人数(if (i0)cout系统中没有输入数据
11、,请先输入数据!“endl; break;14int m, n, k, j ; m=0; n=0; k=0;for(j=0;jmathcppchinese60) k+;cout数学不及格人数为:z/niendl;cout(c+不及格人数为:z/nendl;cout语文不及格人数为:,kendl;break;15第4章系统调试运行4. 1调试结果程序调试是非常重要的工作,调试需要耐心,调试可以发现程序的缺乏,便 于我们改进程序,让程序更完美,下面是我调试时的一些结果:图4T是进入主界面,我们首先可以看到,主界面共有12个操作选项,12 个小选项又分为4个大的选项:操作、查询、成绩统计和排名,当您
12、看完操作选 项以后是一条温馨的提示:选择相关操作请输入相对括号里的阿拉伯数字及字 母。我选择的是数字“1”,接下来就是输入学生姓名等信息了。图4-1 数据录入图4-2是输入完学生信息以后界面显示的信息,可以看到,当输入完成时系 统会自动显示出学生信息:16题目学生成绩管理系统设计与实现考核工程考核内容得分平时考核(30分)出勤情况、态度、效率;知识掌握情况、 基本操作技能、知识应用能力、获取知识能力系统设计(20分)分析系统的功能模块编程调试(20分)实现系统的各个功能模块,并完成调试回答下列问题(15分)回答老师针对课程设计提出的问题课程设计报告撰写(10分)严格按照规范要求完成课程设计报告
13、源代码(5分)按照规范要求完成课程设计源代码的排版总评成绩指导教师评语:日期:辍分查询排名选择相关操作请输入相对的括号里的阿拉伯数字及字母!1请输入姓名:荐输入学号:号输入数学成绩:100请输入C成绩:100请输入英语成绩:100学号:5数学成绩00 C成绩:工00外语成绩:100|数据录入成功,想继续录入吗( y/n)图4-2 数据录入成绩统计:图4-3是增加学生数据的操作,看图的最后一行,提示输入要增加的学生的姓名:9党学生配F均盛绩外各科不及粘人数排名填单分查询排名32退出选择相关操作请输入相对的括号里的阿拉伯数字及字母! 2请输入您要增加的学生的姓名: d请输入你要增加的学生的学号:2
14、0请输入数学成绩:50请输入C1成绩:50请输入英语成绩: 50F鹤号华教烹座霸I。c+w:i00 /卜迨盛责。0 k字号:20数字虚责:50 C成绩:50夕卜语成绩:50数据录入成功,想继续录入吗( y/n)檐输入您要增加的学生的姓名:图4-3增加数据17图4-4是选择删除操作,您可以发现当完成删除操作后都会提醒您是否要继续:C:Use0AdministatorDesktopDebug学生成绩售三统谓遒择您需要的操作!操与42)增(3)删除学生4)修改数据僵询:7二按平均分查询8)输正笳有学生的数据成缄统江图4-4 删除数据图4-5 数据修改图4-5执行修改学生信息的操作,当您选择此操作时,
15、系统会提醒您先输入信息:图4-6是执行按总成绩查询操作,需要先输入总成绩:18C:UsersAdministratorDesktopDebug 学绫音发?.exe您想继续进行其他操作吗? y/n:yXXXXXXXXXXXXXXXX x 沛卬 至11 生 幺春 旬 系正存面|择您需要的操作!3)删除学生置询:5指总殖填查询6)按姓名查询有学生的数据期田均或绩7按平埼分查询 8朝上历9海个学 斗0各科二 腓名厂”工序总分查询排名“2退出选择相关操作请输入相对的括号里的阿拉伯数字及字母!储输入您要查询的学生的总成绩:图4-6成绩查询图4-7输出了所以学生的数据C:User5Administrator
16、DesktopDebug学生成线管理系统程序.exe觥择您需要的操作!3删除学生 数据霜舞的数据 11超总分查询排名12退出选择相关操作请输入相对的括号里的阿拉伯数字及字母!8所有、学生数据如下:d号号:20教空座塞50 C一感雷50外语座塞50k字号:20数学成绩:60 C.成绩:60夕卜语成绩:60您想继续进行其他操作吗? y/n):图4-7学生数据输出图4-8是每个学生的平均成绩输出19图4-8平均成绩输出图4-9是不及格人数的显示图4-9最后一个,图4-10是按总成绩的排名不及格人数统计20图4-10 总成绩排序经过以上测试,每一个case都能执行,但是有很多的地方都不够完善,例 如:
17、在总成绩排序中,只能输出总成绩,不能单独的输出学生的相应的信息;每 次进行别的操作之前都要在进行一次数据的录入,不能直接对原有的文件进行读 取。4. 2系统缺陷在总成绩排序中,只能输出总成绩,不能单独的输出学生的相应的信息;每 次进行别的操作之前都要在进行一次数据的录入,不能直接对原有的文件进行读 取。4.3总结通过本次设计,了解了很多类的作用,也增加了设计的灵感,这个成绩管理 系统存在着很多缺乏之处,由于自己本身编程能力的问题,这个系统可以实现的 功能非常有限。只能实现学生管理系统最基本的功能,可以进行简单的输入、输 出学生资料,查询和修改学生信息,能直接从文件中读入数据,能对系统所作的 修
18、改、操作进行保存等。而且在每个模块也有缺乏的地方,比方在输入学生资料 时,对每个信息项没有严格的规定,不可以输入中文字符。同时有些模块还不能 实现本应该有的功能,这有待以后努力,争能够实现该有的功能。214. 4课程设计体会通过这次设计,我有了更多的灵感,也找到了一些学习的技巧,耐心也得到 了很大的锻炼,特别是在调试程序时,每一个错你都要认真的去看,每一个细节 都要注意,不然在调试时都有可能出错。这次的程序还不是很成功,开始两天都 没有思路,但到后面两天有思路了,感觉时间又有点紧,所以做得有些仓促。以 后这方面还得提高,做更好的准备。参考文献C+面向对象程序设计谭浩强清华大学出版社C+程序设计
19、试验指导钱能清华大学出版社C语言程序设计教程张永中国永州水电出版社C+程序设计钱能清华大学出版社C程序设计谭浩强清华大学出版社C+语言程序设计实训教程曾辉等机械工业出版社22第1章系统设计目的11.1 课程设计要求 11. 2课程设计任务2第2章 系统实现思路32. 1需求分析32. 2系统性能要求33. 3系统功能模块44. 4模块设计与分析4第3章系统详细设计54.1 类的设计65. 2主函数设计9第4章系统调试运行166. 1调试结果167. 2系统缺陷218. 3总结219. 4课程设计体会22参考文献22第1章系统设计目的1.1课程设计要求在计算机领域中,任何好的创意和设计最终都需要
20、通过高水平的程序设计实 现,因此学习程序设计是计算机及相关专业学生必备的基本技能之一。为了使学 生更好的学习和掌握这一基本技能,必须系统而全面地的安排程序设计课程设 计,目的是通过具体的课程设计,不仅使学生能够进一步理解程序设计的基本概 念,掌握基本的程序设计方法,培养良好的程序设计风格,同时还可以借助程序 设计技巧的训练,培养学生抽象思维、逻辑思维及统筹规划的能力。要求通过查阅与设计课题有关的文献资料,并自学与其相关内容,掌握 Visual C+6.0集成开发环境的使用,每人独立完成课程设计全部内容,具体要 求如下:1、对系统进行功能模块分析、控制模块分析正确2、系统设计要能尽力完成题目所要
21、求的功能。3、编程简练,可用,尽可能的使系统的功能更加完善和全面4、说明书、流程图要清楚。1. 2课程设计任务(1)设计四个类,包括学生类(描述学生基本信息)、成绩类、班级类、 课程类(描述课程信息:课程编号,科目名称,如高等数学,大学英语等);(2)学生成绩及课程信息用文件保存,程序执行时从文件读入;(3)能按学期、按班级完成对学生成绩的录入、修改,能按班级统计学生 的成绩;(4)求学生的总分及平均分,并能根据学生的平均成绩进行排序,能查询 学生成绩,不及格科目及学生名单,能按班级输出学生的成绩单。设置学生的成绩信息:学生学号、姓名、所选课程名称、平时成绩、期 末成绩、平时成绩所占百分比计算
22、学生总评成绩:总评成绩:平时成绩*平时成绩所占百分比+期末成绩 *(1-平时成绩所占百分比)1显示学生的姓名、所选课程名称以及平时成绩、期末成绩和总评成绩信 息。分单人显示和以班输出(班成绩单格式输出到文件)注意:至少应包含一个班、30人、三门课第2章 系统实现思路1 .1需求分析学生成绩管理系统主要提供成绩查询,方便管理的网上的信息查阅平台,学 生可以通过该系统查阅与自己相关信息。教师可以通过成绩管理系统查阅学生成 绩信息等相关操作。系统管理员可以实现以上的所有功能,还有对学生的添加、 删除、修改。2 . 2系统性能要求按照课程设计任务书中的要求,我编写了此程序,该程序的功能如下:(1)能对
23、学生各科成绩进行录入。(2)能对学生的成绩进行增加。(3)能对学生的成绩进行删除。(4 )能对学生的成绩进行修改。(5 )能对学生的成绩按总成绩、平均分、姓名进行查询。(6 )能输出学生的所有数据。(7)能输出每个学生的平均成绩。(8)能统计不及格人数。(9 )能进行成绩统计。(10)能进行总分查询排名。(11)系统平安、可靠。(12)功能齐全。(13)操作方便、界面友好。(14)易于维护和扩充。2. 3系统功能模块系统主要根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以 方便对成绩的各项管理操作,“学生成绩管理系统”包括12个模块:输入学生 资料,输出学生资料,学生成绩按顺序排列,
24、按姓名、总分、平均分查找,添加 学生资料,删除该学生资料,修改该学生资料,查找并显示学生资料,显示学生 平均分,显示各科不及格人数,从文件中读入数据,储存学生资料并退出系统。 这十二个模块既相互联系又相互独立。系统首先为3个类:学生类、课程类、成绩类;接下来就是主函数,主函数 中包括界面显示、各个功能的代码编写。1 .4系统框架图学生成绩查询系统分为:操作局部(成绩录入、输出、增加、删除、修改), 查询局部(按总成绩查询、按姓名查询、按平均分查询),还有总成绩输出,平 均分输出,平时成绩的输出,不及格人数的统计输出,按总成绩排序后的输出, 程序界面简洁明了,功能分工明确,下面是系统的框架图,这
25、样可以更直接的了 解程序的功能。图2-1系统框架2 . 4模块设计与分析输入学生资料模块:主要功能用来对学生的成绩进行录入和输入。在学生信息保存在系统中的前 提下,成绩录入需要输入学生资料,比方学号,姓名。在准确输入学生资料后, 就可以对该学生的各科成绩进行录入。该学生各科成绩输入成功后,系统会提示 是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的 话就输入n,再输入n之后,系统返回到主菜单。输出学生资料模块:主要功能用来对学生的成绩进行输出O在系统已经录入了学生资料成绩的前 提下,使用该功能可以显示所有学生的信息,资料等等。具体包括学生的学号, 姓名和各科成绩。在查看学
26、生的资料,成绩各方面的信息后,按任意键就可以返 回到主菜单。(3)按学生姓名进行排列模块主要功能是用来对学生的资料按姓名进行排序。在系统保存学生资料,成绩 的前提下,使用此功能可以对学生的资料按姓名进行排序,这样就方便查找姓氏 相同或是相近的同学的资料。(4)添加学生资料模块主要功能是用来添加学生资料,成绩。如果系统有保存学生资料的情况下, 想录入学生成绩的话,就不用添加学生资料这模块。如果系统没有保存该学生信 息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的 操作。(5)按姓名查找,删除该学生资料模块主要功能是用来删除学生资料。在系统保存学生资料的前提下,想删除某学 生
27、的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。由于学 生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统 更加优化。(6)查找并显示学生资料模块主要功能是用来查找学生资料。在系统保存了某学生资料的前提下,想要查 找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩 等信息。(7)按姓名查找,修改学生资料模块5主要功能是用来修改学生资料。在系统保存了某学生资料的前提下,想要查 找该学生资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信 息,这样就可以修改该学生的资料,成绩等信息。(8)从文件中读入数据模块主要功能是用来从文件中读入学生数据。由于一些资料可以用Word文档或 Excel表格输入,故在此模块中增加了导入数据的功能。这样就方便很多,不用 把学生资料一个一个添加,节省了很多时间精力。(9)储存学生资料并退出系统模块主要功能是用来储存学生资料。在对系统进行一系列操作,比方添加、删除、 修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操 作。