学生成绩管理系统C++编程实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1页共15页《C++程序设计》课程设计报告设计题目:学生成绩管理系统专业:计算机科学与技术(网络工程)班级:学号:姓名:指导老师:日期:2009.05.31第2页共15页目录一、设计任务与要求…………………………………………31.设计内容………………………………………………32.课程设计的要求………………………………………3二、系统分析(需求分析)…………………………………31.需求分析…………………………………………32.系统性能要求……………………………………33.系统的功能分析……………………………………34.系统功能模块……………………………………35.模块框架图…………………………………………3三、系统设计与实现……………………………………41.界面设计…………………………………………42.功能设计与实现………………………………4四、测试结果……………………………………4五、总结…………………………………………5六、参考资料……………………………………5附录:源程序……………………………………5第3页共15页一、设计任务与要求1.设计内容:a.设计四个类;学生类(描述学生基本信息);成绩类:班级类;课程类(描述课程信息:课程编号,科目名称(如高等数学,大学英语等);学生成绩及课程信息用文件保存,每个类一个文件,程序执行时从文件读入;b.能按学期,按班级完成对学生成绩的录入,修改,能按班级统计学生的成绩;求学生的总分及平均分;并能根据学生的平均成绩进行排序,能查询学生成绩,不及格科目及学生名单;能按班级输出学生的成绩单。–设置学生的成绩信息:学生学号、姓名、所选课程名称、平时成绩、期末成绩、平时成绩所占百分比–计算学生总评成绩:总评成绩=平时成绩*平时成绩所占百分比+期末成绩*(1-平时成绩所占百分比)–显示学生的姓名、所选课程名称以及平时成绩、期末成绩和总评成绩信息。分单人显示和以班输出(班成绩单格式输出到文件)–注意,至少一个班,30人三门课2.课程设计的要求:根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序来实现设计课程内容中的全部功能;设计主控模块程序.对给出的程序源代码要给出各部分的详细注释.自己根据能力及需要添加相应功能模块,增强模拟系统功能。包括系统的功能分析、系统的功能模块设计、程序流程图或结构框图、逻辑结构设计,数据库中的表、视图(如果使用)、索引的结构和定义、触发器、存储过程、课程设计体会。二、系统分析(需求分析)1.需求分析:a.能对学生各科成绩进行录入:。b.能对学生的成绩进行增加。c.能对学生的成绩进行删除。d.能对学生的成绩进行修改。e.能对学生的成绩按总成绩,姓名,进行查询。f.能输出学生的所有数据。g.能进行成绩统计h能进行总分查询排名。2.系统性能要求:a.系统安全、可靠;b.功能齐全;c.操作方便、界面友好;d易于维护和扩充。3.系统的功能分析:第4页共15页资料维护:系统维护包括对学生信息的录入操作及数据表中的信息进行浏览。系统功能:可以对数据表中的信息进行浏览。系统查询:可以对学生的信息进行查询。4.系统功能模块学生成绩查询系统有:成绩录入、增加、删除、修改,数据查询,排序显示构成。5.模块框架图三、系统设计与实现1.界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。2.功能设计与实现通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。应用系统主控界面包括记录编辑和记录查询等功能模块。记录编辑功能完成学生成绩记录编辑和记录查询功能。记录查询功能可以对数据各分类的记录进行查询四、测试结果每一个case都能执行,但是有很多的地方都不够完善,例如:在总成绩排序中,只能输出总成绩,不能单独的输出学生的相应的信息;每次进行别的操作之前都要在进行一次数据的录入,不能直接对原有的文件进行读取。五、总结此次c++课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。学生成绩管理系统操作查询成绩统计按总成绩排名录入增加删除修改总成绩查询姓名每个学生的平均成绩各科不及格的人数输出所有学生的成绩第5页共15页六、参考资料C++程序设计谭浩强清华大学出版社附录:源程序#includeiostream#includestring#includefstream#includesstream#includeiomanipusingnamespacestd;classTstu//通过定义一个类来定义数据录入的函数{charname[20];intnumber;floatmath,cpp,english,average,sum;public:Tstu(){};Tstu(charn[20],intnum,floatma,floatcj,floateng);floatgetsum();//得到总分的函数floatgetaver();//得到平均分的函数friendvoidmain();//将主函数定义为友元函数,方便访问类中的成员};Tstu::Tstu(charn[20],intnum,floatma,floatcj,floateng){strcpy(name,n);//得到姓名number=num;//得到学号math=ma;//得到数学成绩cpp=cj;//得到c++成绩english=eng;//得到英语成绩}floatTstu::getsum()//得到总分的函数{sum=cpp+english+math;returnsum;}floatTstu::getaver()//得到平均分的函数{average=getsum()/3;returnaverage;第6页共15页}voidmain(){cout*****************欢迎来到学生成绩查询系统*****************endl;cout请选择您需要的操作!endl;//菜单的输出cout操作:endl;cout(1)数据录入endl;cout(2)增加学生endl;cout(3)删除学生endl;cout(4)修改数据endl;cout查询:endl;cout(5)按总成绩查询endl;cout(6)按姓名查询endl;cout(7)输出所有学生的数据endl;cout成绩统计:endl;cout(8)每个学生的平均成绩endl;cout(9)各科不及格人数endl;cout排名:endl;cout(10)按总分查询排名endl;cout(11)退出endl;cout选择相关操作请输入相对的括号里的阿拉伯数字及字母!endl;intp=0;//全局变量,用于选择菜单时的输入charw;//全局变量,用于在大项中选择是否继续操作Tstu*s[100];//类定义的指针将所录入的数据按类中的形式分别存储ofstream*file[100];inti=0;//全局变量,用于做每个录入数据的下标intj=0;intchris1=0;//用于判断do—while语句do//判断输入是否正确{cinp;if((p=1&&p=11))chris1=1;elsecout指令错误!请重新输入:endl;}while(chris1==0);do{switch(p){case1://数据的录入{charc;//用于在小项中选择是否继续操作charname[20];第7页共15页intnumber;floatmath,cpp,english;do{cout请输入姓名:endl;cinname;cout请输入学号:endl;cinnumber;cout请输入数学成绩:endl;cinmath;cout请输入C++成绩:endl;cincpp;cout请输入英语成绩:endl;cinenglish;fstreamoutfile,infile;//作一个文本文档在文件夹中用于显示所录入的数据outfile.open(f1.txt,ios::out|ios::app);if(!file){coutf1.txtcannotopen.\n;return;}outfilename学号:number数学成绩:mathC++成绩:cpp外语成绩:englishendl;outfile.close();infile.open(f1.txt,ios::in);if(!file)//判断文件是否打开{coutf1.txtcannotopen.\n;return;}charch;while(infile.get(ch))coutch;coutendl;infile.close();j++;s[i]=newTstu(name,number,math,cpp,english);i++;cout数据录入成功,想继续录入吗(y/n)endl;cinc;chris1=0;do{if(c!='y'&&c!='n'){cout指令错误!请重新输入!endl;cinc;}else第8页共15页chris1=1;}while(chris1==0);}while(c=='y');//重复输入break;}case2://增加学生数据{charname[20];intnumber;floatmath,cpp,english;charc;do{cout请输入您要增加的学生的姓名:endl;cinname;cout请输入你要增加的学生的学号:endl;cinnumber;cout请输入数学成绩:endl;cinmath;cout请输入C++成绩:endl;cincpp;cout请输入英语成绩:endl;cinenglish;fstreamoutfile,infile;outfile.open(f1.txt,ios::out|ios::app);if(!file){coutf1.txtcannotopen.\n;return;}outfilename学号:number数学成绩:mathC++成绩:cpp外语成绩:englishendl;outfile.close();infile.open(f1.txt,ios::in);if(!file){coutf1.txtcannotopen.\n;return;}charh;while(infile.get(h))couth;coutendl;infile.close();第9页共15页j++;s[i]=newTstu(name,number,math,cpp,english);i++;cout数据录入成功,想继续录入吗(y/n)endl;cinc;if(c!='y'&&c!='n'){cout指令错误!请重新输入!endl;cinc;}}while(c=='y');break;}case3://删除学生信息{charc;stringxingming,line,str,name;do{ifstreamfin(f

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功