《学生成绩管理系统设计与实现27.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统设计与实现27.docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、河南工程学院高级程序设计语言课程设计成果报告学生成绩管理系统设计与实现infile, close();j+;si=new Chengji (number, name, math, cpp, english, mathp,cppp, englishp, baif, mathz, cppz, engz);将数据录入文件i+;coutc;chrisl=0;doif (c!=y&c!二n) cout指令错误!请重新输入!c;)elsechrisl=l;while(chrisl=0);(2)增加功能与录入功能程序操作与代码大体相同参考录入功能。(3)删除功能用对文件的操作,判断所需删除的数据与数据库中的
2、数据是否相同,利用文 件流操作删除对应数据。程序代码char c;string xingming, line, str, name;doifstream fin(f1.txt);fstream outfile (/zf2. txt, ios: : trunc| ios: :out) ; /仓建文件 2cout请输入您要删除的学生的姓名:“endl;cinxingming;while(!fin. eof ()while(!fin. eof ()执行判断并删除数据getline(fin, line);istringstream stream(line);name=line. substr (0,
3、line. find( , 0);if (name!=xingming)outfilelineendl;)outfile. close();fin. close ();fstream f(fl. txt,ios:trunc|ios:out);ifstream outf(f2.txt);foutf. rdbuf ();outf. close ();f. close ();coutc;)(4)修改功能参考录入功能,利用对文件的操作到达对数据的修改功能。(5)按总成绩查询用if语句调用getsum ()判断输入的总分数与数据库中的总分数是否有 相同的,并执行输出文件操作。程序代码int j=0;fl
4、oat SUM;char c;int flag;if(i-o)根据前面的叠加判断文件中是否有数据cout系统中没有输入数据,请先输入数据!endl;break;Do输入查找的成绩利用函数查找符合条件的数据(flag=0;cout(请输入您要查询的学生的总成绩: Oendl;cinSUM;for(int j=0;jgetsum () =SUM)将符合的数据输出flag=l;cout”您要查询的学生是:nameendl;cout”该生的信息为:endl;cout 学号: (*sj).num 数学分数:(*sj). math*(*sj). baif+(*sj), mathp*(1-(*sj). ba
5、i f) C+分数“(*sj). cpp*(*sj). baif+(*sj). cppp*(1-(*sj). baif)英语分数“(*sj). english*. baif+(*sj). englishp*(1-(*sj ).baif)endl;)if(flag=0)错误操作返回继续cout“对不起!您要查询的学生不存在! endl;cout“是否继续查? (y/n);”;cinc;(6)按姓名查询程序代码与按总分功能类似,区别在于这个功能中利用指针访问类中成员, 并进行判断。(7)输出所有数据通过翻开文件,对文件中的所有数据进行输出。程序代码cout”所有学生数据如下:”endl;ifstr
6、eam file;file, open (fl. txt, ios: : in);以输入方式翻开文件coutfile. rdbuf ();以输出文件的所有数据file, close();(8)输出学生的平均分利用指针访问Chengji类中的成员,调用getaver ()函数求得平均分并执 行输出操作。程序代码if(i=0) (cout系统中没有输入数据,请先输入数据! “endl;break;)for (int m=0;mi;m+) cout (*s m). name/,学号(*s m). num 总分 z, (*s Em). getsum () ,z 均分(*sm). getaver ()
7、endl;(9)查询不及格人数调用get函数求得三科平均成绩,并统计不及格人数,并输出查询结果。 程序代码if(i=0) (cout”系统中没有输入数据,请先输入数据! endl;break;10int m, n, k, j;m=0;n=0;k=0;for(j=0;jgetshu () getcpp()geteng() 60)k+;)cout数学不及格人数为:coutc+不及格人数为:nendl;cout英语不及格人数为:kendl;)(10)总成绩排名通过for函数寻找最大值并进行交换,交换得最大值与最大值对应名字。程序代码if (i=0)cout系统中没有输入数据,请先输入数据!Oendl
8、;break;)int h, g, n;int j=0;float a100, temp;string k100, tempi;for (g=0;gi;g+)aj = (*sg). getsumO ;11kj = (*sg). name;j+;for (h=0;hi;h+)for (n=0;nan+l)temp=an;交换得到最大值an=an+l;an+l=temp;templ=kn;交换名字kn=kn+l;kn+l=templ;)for (n=l;n=i;n+)(coutknsetw(5)anendl;3.系统流程图系统中综合类与功能,程序的运行框架图,包含主界面显示、选择操作、具 体的系统
9、主函数操作,选择1-11对应相对的操作,系统自动执行操作,并返回 主函数。流程图如下列图所示:12开始图3-2程序流程图13第4章系统调试运行4.1系统运行主界面新建文件夹课程设计,并在文件夹中设立相应的工程,新建程序文件命 名为成绩,编写程序代码,并调试运行。系统调试运行输出主界面见图4-1图4-1系统主界面4. 2录入功能需要输入学生的相关信息,并保存到fl.txt中,如4-214图4-2录入功能界面4. 3删除功能输入删除名字,程序自动寻找与名字相符数据并删除,如图4-3图4-3删除界面4. 4查询功能15分为按总成绩查询和按姓名查询两种方式:如图4-4图4-4查询界面4. 5查询不及格
10、人数调用get函数求三科平均成绩并统计不及格人数并输出查询结果。如图4-5图4-5不及格人数界面16题目学生成绩管理系统设计与实现考核工程考核内容得分平时考核(30分)出勤情况、态度、效率;知识掌握情况、 基本操作技能、知识应用能力、获取知识能力系统设计(20分)分析系统的功能模块编程调试(20分)实现系统的各个功能模块,并完成调试回答下列问题(15分)回答老师针对课程设计提出的问题课程设计报告撰写(10分)严格按照规范要求完成课程设计报告源代码(5分)按照规范要求完成课程设计源代码的排版总评成绩指导教师评语:日期:课程设计体会针对这次课程设计,我个人认为是一次非常珍贵的机会,是一次可以让我们
11、 所学的理论知识与实训相结合的机会。通过这次作业的完成,我的知识得到很大 的更新,从中学到了很多东西。我认为学习就是一个不断完善的过程,发现自己 的知识缺陷,以便在以后的学习和工作中弥补自己的缺乏之处,从而不断的完善 自我。为期一周的C+课程设计就这样画上了句号,在这说短不短,说长不长的一 周中,我获得了知识,学到了研究的坚持与韧性,虽然是通过和同学、室友的交 流与合作完成了这份作业,但还是对自己有了新的认识,实在是一次难得的机遇 与经历。参考文献1谭浩强.C+面向对象程序设计(第二版).清华大学出版社2谭浩强.C+面向对象程序设计题解与上机指导.清华大学出版社3 LippmanBarbara
12、.C+ Primer.人民邮电出版社_4 Bjarne Stroustrup. The C+ Programming Language.机械工业出 版社5C+语言的设计和演化,机械工业出版社6 :WWW. csdn. net/17第1章系统设计目的11.1 课程设计目的11.2 课程设计内容11. 3课程设计的要求1第2章 系统实现思路21.1 需求分析22. 2系统性能要求2第3章系统详细设计32.1 系统功能模块32.2 模块框架图33. 3系统实现4第4章 系统调试运行144. 1系统运行主界面145. 2录入功能144. 3删除功能154. 4查询功能154. 5查询不及格人数16课程
13、设计体会17参考文献17第1章系统设计目的1.1 课程设计目的在计算机领域中,任何好的创意和设计最终都需要通过高水平的程序设计实 现,因此学习程序设计是计算机及相关专业学生必备的基本技能之一。为了使学 生更好的学习和掌握这一基本技能,必须系统而全面地的安排程序设计课程设 计,目的是通过具体的课程设计,不仅使学生能够进一步理解程序设计的基本概 念,掌握基本的程序设计方法,培养良好的程序设计风格,同时还可以借助程序 设计技巧的训练,培养学生抽象思维、逻辑思维及统筹规划的能力。1.2 课程设计内容(1)设计四个类,包括学生类(描述学生基本信息);成绩类;班级类;课 程类(描述课程信息:课程编号,科目
14、名称,如高等数学,大学英语等);(2)学生成绩及课程信息用文件保存,程序执行时从文件读入;(3)能按学期,按班级完成对学生成绩的录入、修改,能按班级统计学生的 成绩;(4)求学生的总分及平均分,并能根据学生的平均成绩进行排序,能查询学 生成绩,不及格科目及学生名单;能按班级输出学生的成绩单。-设置学生的成绩信息:学生学号、姓名、所选课程名称、平时成绩、期 末成绩、平时成绩所占百分比-计算学生总评成绩:总评成绩=平时成绩*平时成绩所占百分比+期末成绩 * (1-平时成绩所占百分比)-显示学生的姓名、所选课程名称以及平时成绩、期末成绩和总评成绩信 息。分单人显示和以班输出(班成绩单格式输出到文件)
15、-注意,至少应包含一个班、30人、三门课1. 3课程设计的要求根据C+课程所学的概念、理论和方法,按照C+程序设计的基本步骤,设 计出一个适当规模的程序来实现设计课程内容中的全部功能;设计主控模块程 序.对给出的程序源代码要给出各局部的详细注释.自己根据能力及需要添加相 应功能模块,增强模拟系统功能。包括系统的功能分析、系统的功能模块设计、 程序流程图或结构框图、逻辑结构设计,数据库中的表、视图(如果使用)、索 引的结构和定义、触发器、存储过程、课程设计体会。第2章系统实现思路2.1需求分析学生成绩查询系统在生活中运用广泛,因此需要多种程序对它进行管理。该 系统应该能存储学生的个人信息与考试成
16、绩。系统管理者能够利用系统进行信息 录入、修改、查询、删除、按照姓名、总分进行查询,能输出所有的学生的成绩。 1.系统类设计(1)学生类用于存放基本个人信息;(2)课程类用于存放课程信息;(3)班级类用于分类班级;(4)成绩类用于存放成绩。2.功能分析(1)能对学生各科成绩进行录入;(2)能对学生的成绩进行增加;(3)能对学生的成绩进行删除;(4)能对学生的成绩进行修改;(5)能对学生的成绩按总成绩,姓名,进行查询;(6)能输出学生的所有数据;(7)能进行成绩统计;(8)能进行总分查询排名。2. 2系统性能要求于管理者而言,该系统需要方便的操作,友好的界面。于学生而言,成绩等 属于个人信息,因
17、此要求系统有一定的平安性,能够保护学生的基本信息。而随 扩充和修改。因此系统性能要求如下:(1)系统平安可靠;(2)功能齐全;(3)操作方便、界面友好;(4)易于维护和扩充。第3章系统详细设计3.1 系统功能模块学生成绩查询系统有:成绩录入、数据增加、修改、数据查询,排序显示 构成。3.2 模块框架图1 .程序中包含类与主函数,类构成了程序的数据管理与存放区。在主函数中 包括多种功能。以类为依托构成程序框架,在主函数中实现每一个功能。类与功 能共同构成程序框架。课程举成绩举图37 模块框架图2.程序用到的头文件以及自己定义的函数#include(1)头文件输入输出流函数#include 文件操
18、作函数#include字符串函数#include#include(2)自己定义的函数float getsum();综合成绩float getshu();数学总评成绩float getcppO ;c 总评成绩float geteng();英语总评成绩float getaver ();总平均成绩3. 3系统实现1 .界面设计程序运行后会出现一个间接地窗口,便于用户查询数据。主函数用循环体以及switch语句实现功能选择。主界面展示* *近1 求i 至 U杳询系乡* *请选择需要的操作!(1)数据录入(2)增加学生(3)删除学生(4)修改数据查询:(5)按总成绩查询(6)按姓名查询(7)输出所有学生
19、的数据成绩统计:(8)每个学生的平均成绩(9)各个学科不及格人数排名:(10)按总分查询排名(11)退出2 .具体功能设计通过主窗体调用其他窗体,实现其它功能。(1)录入功能使用cin输入流输入学生的相关信息,并创立文件,将所输入的数据存 入到文件中。程序代码do(coutname;cout请输入学号number;cout请输入数学成绩math;cout请输入 c+成绩cpp;coutenglish;cout*请输入数学平时成绩Oendl;cinmathp;cout请输入c+平时成绩cppp;cout请输入英语平时成绩englishp;cout”请输入成绩百分比baif;fstream out
20、file, infile;outfile. open (z/f 1. txt, ios: :out | ios: :app) ;/翻开文件cout/zf 1. txt can not open. n/z;return ;outf ilename/z 学号:/numberendl;outfile数学成绩:setw(2) mathsetw(20)(数学平时成绩:setw(2) mathpsetw (20) 数总成绩:/zsetw(2) math*baif+mathp* (1-baif) endl;outf ile外语成绩:setw(2)englishsetw(20)外语平时成绩:setw(2) e
21、ngl ishpsetw (20) 外总成绩:/zsetw(2) english*baif+englishp*(l-baif) endl;outf ilec+成绩:/setw(2)cppsetw(20) c+平时成绩:/zsetw(2)cpppsetw(20)c 总成绩:/zsetw(2) cpp*baif+cppp* (l-baif) endl;outf ile总成绩:math*baif+niathp*(1-baif)+cpp*baif+cppp*(1-baif)+english*baif+e nglishp*(1-baif) endl;outfile. close();infile, open(f1. txt,ios:in);if (!file)coutzzf 1. txt can not open. nz/;return ;char ch;while (infile, get(ch)coutch;coutendl;