《学生成绩管理系统设计与实现11.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统设计与实现11.docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、河南工程学院高级程序设计语言课程设计成果报告学生成绩管理系统设计与实现int n=0;for (;:)(switch (menu ()case 1:输入学生资料coutsetw(15) 输入学生资料endl;n=Input(stu,n);break;case 2:输出所有学生资料coutsetw(15) 输出所有学生资料endl;Display (stu, n);break;case 3:按姓名排序coutsetw(15) 按姓名排序”endl;Sort (stu, n);coutsetw(15),z ,z;system(pause);break;case 4:插入学生资料coutsetw(1
2、5)”插入学生资料endl;n=Insert (stu, n);coutsetw(15)z,;system (pause);break;case 5:删除学生资料coutsetw(15)删除学生资料endl;coutsetw(15) 输入他(她)的姓名:”;n=Delete (stu,n);coutsetw(15),z ;system(pause);break;case 6:查找学生coutsetw(15) 查找学生endl;Query (stu, n);coutsetw(15)/z ;system(pause);break;case 7:修改学生资料coutsetw(15) 修改学生资料en
3、dl;coutsetw(15) 输入你要修改的学生的姓名:;n=Xiugai(stu, n);system (zzpause,z);break;case 8:从文件中读入数据coutsetw(15) 从文件中读入数据endl;n=AddfromText(stu, n);break;case 9:将所有资料写入文件coutsetw(15)将所有资料写入文件endl;WritetoText (stu,n);coutsetw(15)p;if(p=l&p-12)chrisl=l;elsecout!输入错误,请重新输入:endl;while(chrisl=O);do switch(p)(2)这里是各个操
4、作的具体编译:其中数据录入、数据删除、按总成绩查 询、按平均分查询、按姓名查询都是以文件的方式读入,其他的按总成绩排序和 不及格人数的输出case 1:/数据录入char c; 用于在小项中选择是否继续操作char name 30;定义各个数据int number;float math, cpp, Chinese;float pingshicj;float zpcj;上面是数据成员的定义,接下来是具体操作的编译:docout请输入姓名name;cout 请输入学号number;coutmath;cout请输入 c+成绩cpp;cout请输入语文成绩chinese;11 cout请输入平时成绩p
5、ingshicj;(3)以下是查询操作的编写首先为按总分查询,以指针来调用类中数据,其他的查询操作都是以相同的 方式设计完成,因代码篇幅过多这里不一一列出case 5:按总分查询int j=0;float SUM;char c;int flag;if (i=0)(cout。数据库中没有数据,请输入后再操endl;break;do flag=0;cout请输入你要查询的学生的总成绩:endl;cinSUM;for (int j=0;jgetsum()=SUM)flag=l;cout你要查询的学生是: (*s j). nameendl;cout该生的信息为:,endl;cout学号: (*s j)
6、. num数学分数: (*dj). math“c+分数:(*dj). cpp语文分数: (*dj). chinese平时成绩:(*f j). pingshicjendl;if (f lag=0) cout对不起!您要查询的学生不存在! z/endl;cout*是否继续查?(y/n):;12 cinc;if (c!= y &c!二n)(cout指令错误!请重新输入! c;;while(c= y,);break;按平均分查询操作的设计,您可以方便的查询到你所希望的平均分的学生输 出所以学生数据操作case 6:输出所有学生数据cout“所有学生数据如下:,endl;ifstream file;fi
7、le. open(?fl. txt, ios: in);coutfile. rdbuf();file, close();break;统计学生的平时成绩,以一个if语句判断系统内是否有数据,如果没有数 据需要重新输入Case7 统计每个学生的平均成绩(if (i=0)(cout”系统中没有输入数据,请先输入数据!,endl;break;for(int m=0;mi;m+)13cout (*s m). name学号: (*s m). number总 (*f m)分:getsumO平均分:(*f m). getaver () “平时成绩: (*f j). pingshicjendl;break;统计
8、不及格人数,以if语句判断是否大于60分Case8 :统计各学科不及格人数if (i-0)cout”系统中没有输入数据,请先输入数据! “endl ;break; int m, n, k, j ; m=0; n=0; k=0;for(j=0;jmathcppchinese60)k+;cout数学不及格人数为:z/mendl; coutc+不及格人数为:z/nendl;cout”语文不及格人数为:,kendl;break;14第4章系统调试运行首先进行模块测试,在这个系统中,我将我的几个模块作为一个单独的实体 来测试,从而保证每个模块作为一个单元能正确运行。进而进行子系统测试,子 系统测试是把经
9、过单元测试的模块放在一起形成一个子系统来测试。模块相互间 的协行系统测试,系统测试是把经过测试的子系统装配成一个完整的系统来测 试,在这个过程中我发现设计和编码的一些错误,并改正。进入主界面,首先可以看到,主界面共有11个操作选项,11个小选项又分 为4个大的选项:操作、查询、成绩统计和排名,当用户看完操作选项以后是一 条温馨的提示:选择操作请选择相应的阿拉伯数字。如图4-1所示。用户选择的是数字“1”,接下来就是输入学生姓名等信息了。4-1登陆界面图15输入完学生信息以后界面显示的信息,可以看到,当输入完成时系统会自动显示出学生信息,如图4-2所示。隹择相关操作请输入相对的括号里的阿拉伯数字
10、及字母!量输入姓名:wan g请输入学号;2222请输入数学成绩:78请输入C-成绩:89请输入英语成绩:89wang学号:2222数学成绩:78成绩:89外语成绩:89数据录入成功,想继续录入吗。儿4-2学生数据的录入图选择删除操作,可以发现当完成删除操作后都会提醒您是否要继续,如图 4一3。C:Prograa FilesMicrosoft Visual StudioMyProjectslDebugl. exe* |XXXXXXXXXXXXXXXX炉芯迎来到,学,生成左音造i询系XXXXXXXXXXXXXXXXX 请选择您需要的操作! “数据塞入 2增加学生C删除学生 4修改数据 5)按总成
11、绩查询6按姓名查询 7)输出所有单生的数据成缄纺计: 8鞋个学生的平均成绩9各科不及格人数排名: 10)技总分查询排名11退田选择相关操作请输入相对的括号里的阿拉伯数字及字母!3请输入您要删除的学生的姓名:wan g数据删除成功,想继续删除吗0/n)4-3学生数据的删除图16题目学生成绩管理系统设计与实现考核工程考核内容得分平时考核(30分)出勤情况、态度、效率;知识掌握情况、 基本操作技能、知识应用能力、获取知识能力系统设计(20分)分析系统的功能模块编程调试(20分)实现系统的各个功能模块,并完成调试回答下列问题(15分)回答老师针对课程设计提出的问题课程设计报告撰写(10分)严格按照规范
12、要求完成课程设计报告源代码(5分)按照规范要求完成课程设计源代码的排版总评成绩指导教师评语:日期:数据的修改操作,您可以发现当完成删除操作后都会提醒您是否要继续,如图4-4所不。请输入您要修改的学生的姓名:wang请输入修改学生姓名及其新学号,数学,C+和英语成绩:wang 2222 78 89 99hs继续修改吗y/n):4-4学生数据的修改图执行按总成绩查询操作,需要先输入总成绩,如图4-5所示。请输入您要查询的学生的总成绩:256您要查询的学生是:wang该生的信息为:学芳2222数学分数48 分数:89英语分数89_是否名牝续杳?Documents and Sett ingsXfill
13、. Users、桌 E|Word 2003lnk”4-5按总成绩查询图执行按学生姓名操作,需要先输入学生姓名,如图4-6所示。请输入要查询的名字:wang您真查询的学生是:wan g该生的信息是:学号:2222数学分数:78c分数:89英语分数:89您想继续查询吗?4-6按姓名查询图每个学生平均成绩的输出,如图4-7所示。8wang 学号:2222 总分:256 均分:853333 您想继续进行其他操作吗? =4-7每个学生的平均成绩图各科不及格人数的输出如图4-8所示。4-8各科不及格的人数图17系统的退出,如图4-9所示。c C:PrograM Fileslicrosoft Visual
14、StudioMyProjectslDebugl. exe*Mang,据删除成功,想继续删除吗y/n) r您想继续进行其他操作吗?F/n:y迎 到学生成纬系、充 XMMXXMMXXMMXXMMXX情选择您需要的操作!牌作:向姓据茅入 2增加学生 3涮除学生 4)修筱数据悟;询.工卷总成绩查询 6)按姓名查询 7)输出所有军生的数据岐绩统计:的群生生的平均成绩(9)各科不及格人数腓名:的。技总分查询排名31退出快择相关操作请输入相对的括号里的阿拉伯数字及字母!您想继续进行其他操作吗?y/n:.4-9退出图18课程设计体会通过这次的实训我深刻的体会到了要想把程序做好要有清晰的思路有较强 的语言组织能
15、力,一丝的马虎否那么会前功尽弃。程序的检查和系统的调用程序写 完后并不能保证它一定能运行,所以要对它进行调试发现其中的弊端并作出相应 的修改以完善程序的目的。经过努力,课程设计基本完成了。通过本次实训,我 对所学的C+语言知识有同学请教,借助网络等等。实验过程中也走了很多的弯 路,由于在开始设计的时候思路不时很清晰,对于一些问题不能很好的提出解决 问题的方法,在设计过程中,代码总是重复的修改,在很多问题上,代码并不时 最优的。相信在以后的学习中,随着知识的增多,问题会逐渐得到解决。在课程 设计的实践中,学到很多有用的知识,也积累了不少珍贵的经验。我相信本次的 课程设计会使我以后再各种方面都有很
16、大的提高。19参考文献1谭浩强.C+面向对象程序设计.清华大学出版社谭浩强.C+面向对象程序设计习题上机指导.清华大学出版社3 Kenneth C.Louden.编译原理及实践.机械工业出版社(美)PJDeitel(美),C+大学教程.电子工业出版社Herbert Schildt.C+编译艺术.清华大学出版社6 Al Stevens Clayton Walnum(美).标准C+宝典.电子工业出版社20第1章 系统设计的概述和目的11.1系统设计的目的11. 2系统设计的任务1第2章 系统实现思路21.1 系统需求分析22. 2系统功能分析23. 3系统性能要求3第3章系统详细设计43.1模块设
17、计与分析43. 2主函数设计54. 3特色算法分析6第4章 系统调试运行15课程设计体会19参考文献20系统设计的概述和目的在计算机领域中,任何好的创意和设计最终都需要通过高水平的程序设计实 现,因此学习程序设计是计算机及相关专业学生必备的基本技能之一。1.1系统设计的目的C+课程设计是计算机应用技术专业的重要实践性环节之一,是学生学习该 课程后的一次全面综合训练。通过本课程设计的实践,更进一步总结C+课程学 习中的的数据类型、程序结构、数组、函数、指针、结构体等基本概念,掌握其 使用方法。掌握面向对象程序设计中有关类、对象、继承、重载、多态性、输入 输出流类体系、文件操作的基本概念,初步学会
18、用类与对象这种面向对象的程序 设计方法编写应用程序。培养使用面向对象的程序设计方法编写计算机程序的能 力。同时,也锻炼学生的团队分工、协作能力,让同学们在实践的过程中,提高 发现问题、分析问题、解决问题的能力。学会团结互助,共同合作,培养良好的 团队精神。1. 2系统设计的任务(1)设计四个类,包括学生类(描述学生基本信息)、成绩类、班级类、 课程类(描述课程信息:课程编号,科目名称,如高等数学,大学英语等);(2)学生成绩及课程信息用文件保存,程序执行时从文件读入;(3)能按学期、按班级完成对学生成绩的录入、修改,能按班级统计学生 的成绩;(4)求学生的总分及平均分,并能根据学生的平均成绩进
19、行排序,能查询 学生成绩,不及格科目及学生名单;能按班级输出学生的成绩单。设置学生的成绩信息:学生学号、姓名、所选课程名称、平时成绩、期 末成绩、平时成绩所占百分比计算学生总评成绩:总评成绩:平时成绩*平时成绩所占百分比+期末成绩 * (1-平时成绩所占百分比)显示学生的姓名、所选课程名称以及平时成绩、期末成绩和总评成绩信 息。分单人显示和以班输出(班成绩单格式输出到文件)注意:至少应包含一个班、30人、三门课第2章 系统实现思路系统主要根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以 方便对成绩的各项管理操作。2.1系统需求分析学生成绩管理系统可以用来管理规模较大的成绩信息,对学生
20、的成绩信息进 行维护和统计。系统的目标用户为老师或其他需要统计各种信息的人员。系统可 以极大的减少用户的工作量,为用户节省更多的时间,让用户在几秒钟内获得各 种统计信息,在第一时间对学生成绩有全面的了解。系统给用户提供了简单而实 用的功能,如图2-1所示。1. X学生成 绩管理 J系统作操作操2-1模块框架图2系统功能分析根据课程设计题目的要求,以及我们小组成员的讨论,最终确定此程序有以下功能:1、资料维护:系统维护包括对各个学生姓名、成绩、学号的录入操作,对数据表中的信息 进行浏览。2、成绩查询:可以对学生成绩进行详细查询。3、排列显示:包括统计学生排名成绩等。(1)能够实现学生学号、姓名、
21、成绩的录入(2)能够实现对学生信息的浏览、查找、删除(3)能够实现对学生信息按学号顺序显示,成绩排名(4)能够对各科成绩统计情况输出3系统性能要求根据学生成绩管理系统的标准,以及考虑到用户的需求,所以我们在编写系 统程序时注意其实用性如下:(1)系统平安、可靠(2)功能齐全(3)操作方便(4)易于维护和扩充第3章系统详细设计要开发学生成绩管理信息系统,首先需要进行需求分析和总体设计,分析系 统的使用对象和用户需求,设计系统的体系结构,决定使用的开发工具和后台数 据库,规划工程开发进程。3.1模块设计与分析(1)输入学生资料模块主要功能用来对学生的成绩进行收集和输入。在学生信息保存在系统中的前
22、提下,成绩录入需要输入学生资料,比方班级,学号,姓名。在准确输入学生资 料后,就可以对该学生的各科成绩进行录入。该学生各科成绩输入成功后,系统 会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生 成绩的话就输入n,再输入n之后,系统返回到主菜单。(2)输出学生资料模块主要功能用来对学生的成绩进行输出。在系统已经录入了学生资料成绩的前 提下,使用该功能可以显示所有学生的信息,资料等等。具体包括学生的班级, 学号,姓名和各科成绩。在查看学生的资料,成绩各方面的信息后,按任意键就 可以返回到主菜单。(3)按学生姓名进行排列模块主要功能是用来对学生的资料按姓名进行排序。在系统保存学
23、生资料,成绩 的前提下,使用此功能可以对学生的资料按姓名进行排序,这样就方便查找姓氏 相同或是相近的同学的资料。(4)添加学生资料模块主要功能是用来添加学生资料,成绩。如果系统有保存学生资料的情况下, 想录入学生成绩的话,就不用添加学生资料这模块。如果系统没有保存该学生信 息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的 操作。(5)按姓名查找,删除该学生资料模块主要功能是用来删除学生资料。在系统保存学生资料的前提下,想删除某学 生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。由于学 生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统
24、更加优化。(6)查找并显示学生资料模块主要功能是用来查找学生资料。在系统保存了某学生资料的前提下,想要查 找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩 等信息。(7)按姓名查找,修改学生资料模块主要功能是用来修改学生资料。在系统保存了某学生资料的前提下,想要查 找该学生资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信 息,这样就可以修改该学生的资料,成绩等信息。(8)从文件中读入数据模块主要功能是用来从文件中读入学生数据。由于一些资料可以用Word文档或 Excel表格输入,故在此模块中增加了导入数据的功能。这样就方便很多,不用 把学生资料一个一个添加,
25、节省了很多时间精力。(9)储存学生资料并退出系统模块主要功能是用来储存学生资料。在对系统进行一系列操作,比方添加、删除、 修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操 作。2. 2主函数设计在main ()函数中主要是通过switch (menu () v选择判断来调用相关功 能模块。系统的运行是在一个永真的循环里进行的,只有在主界面并选择“退出 本系统”时,才会跳出永真循环,并退出程序。主函数在程序中起核心作用,本 程序的主函数主要完成了界面的设计、调用成绩类的函数计算总成绩、平均成绩 和总评成绩,然后是定义指针方便后面调用类的数据成员,还定义了全局变量用 于输入数
26、据的下标。(1)首先是介绍界面设计和选择操作的设计:void main()(cout欢迎进入学生成绩管理系统5zzendl;cout请选择你需要的操作!endl;cout操作:Vendl;cout/z (1)数据录入endl;cout/z (2)增加学生endl;cout,/ (3)删除学生”endl;cout (4)修改数据endl;cout查询:endl;cout,/ (5)按总成绩查询endl;cout/z (6)按平均分查询endl;cout/z按姓名查询endl;cout,/ (8)输出所以学生的数据“endl;cout成绩统计endl;cout (9)每个学生的平均成绩Gendl;
27、cout(10)各科不及格人数*endl;cout排名 endl;cout/,(11)按总分查询排名endl;cout(12)退出endl;这里是查询的主页面的界面设计,页面输出以后都会显示这些操作选项供用 户选择,到达了简洁明了的效果。3. 3特色算法分析功能:定义菜单函数,通过输出函数显示系统功能。利用switch语句实现 多分支选择结构。1 .算法思路:switch语句的执行流程是:首先计算switch后面圆括号中表 达式的值,然后用此值依次与各个case的常量表达式比拟,假设圆括号中表达式的 值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇 break语句就退出switch语句。代码:void main()主函数调用。