您好,欢迎访问三七文档
1目录学生成绩管理系统.........................................21.需求分析............................................22概要设计............................................23详细设计............................................33.1.信息录入功能..................................33.2.增加功能......................................53.3.删除功能......................................73.4.修改功能......................................83.5.查询各个学生平均分...........................103.6.信息浏览功能.................................114该设计所用的技术....................................115课程设计总结.......................................126参考文献...........................................127全部代码...........................................132学生成绩管理系统1.需求分析学校的学生成绩信息管理是学校管理中的一项重要任务,以往的手工操作已经不能适应现在办公的需要.为了摆脱繁琐的劳动,提高工作效率,利用计算机进行信息处理成为必然.开发功能完善及安全可靠的管理系统可以大大提高学校资源的利用率,及时,准确地获取需要的信息,充分发挥人员的工作潜力。因此,不难想象,正是咨询业的迅速发展使得人们从过去的手工劳动中得以解脱.同时,编写一套完善的学生成绩管理系统的任务就显得尤为重要。软件开发的意图为便于学校的管理,方便查看有关学校及学生的情况。如教务处对学生成绩的修改、删除、查找、添加等。2概要设计设计一个学生成绩管理系统,使之能完成以下功能:1.信息录入功能2.信息查询功能3.信息删除功能4.信息修改功能5.信息浏览功能6.查询各个学生平均分7.各科不及格人数8.各学生按总分排名使用的关于学生信息的信息表2-1学生表名称标识符类型备注索引IndexInt自加1学号IDInt唯一性姓名NameString不唯一数学成绩MDouble非空英语成绩EDouble非空C++成绩CDouble非空总分SumDouble非空平均分AvgFloat非空33详细设计学生成绩管理系统的界面如下:3.1.信息录入功能界面如下:代码如下4case1://数据的录入{charc;//用于在小项中选择是否继续操作charname[20];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')5{cout指令错误!请重新输入!endl;cinc;}elsechris1=1;}while(chris1==0);}while(c=='y');//重复输入break;}3.2.增加功能界面如下:代码如下:case2://增加学生数据{charname[20];intnumber;floatmath,cpp,english;charc;do{cout请输入您要增加的学生的姓名:endl;cinname;6cout请输入你要增加的学生的学号: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();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;}73.3.删除功能界面如下:代码如下:case3://删除学生信息{charc;stringxingming,line,str,name;do{ifstreamfin(f1.txt);fstreamoutfile(f2.txt,ios::trunc|ios::out);//作一个文本文档在文件夹中用于显示所录入的数据cout请输入您要删除的学生的姓名:endl;cinxingming;while(!fin.eof()){getline(fin,line);istringstreamstream(line);name=line.substr(0,line.find(,0));//找到名字,判断是否相等if(name!=xingming)outfilelineendl;}outfile.close();fin.close();fstreamf(f1.txt,ios::trunc|ios::out);ifstreamoutf(f2.txt);8foutf.rdbuf();outf.close();f.close();cout数据删除成功,想继续删除吗(y/n)endl;cinc;if(c!='y'&&c!='n'){cout指令错误!请重新输入!endl;cinc;}}while(c=='y');break;}3.4.修改功能界面如下:代码如下:case4://修改数据{stringsname,line,str,name;intnu;floateng,ma,com;intflag;charc;if(i==0){9cout系统中没有输入数据,请先输入数据!endl;break;}do{flag=0;cout请输入您要修改的学生的姓名:;cinname;fstreamfin(f1.txt,ios::in);ofstreamoutfile(f.txt,ios::trunc|ios::out);coutendl;while(!fin.eof())//在文件中查找{getline(fin,line);istringstreamstream(line);sname=line.substr(0,line.find(,0));if(name!=sname){outfilelineendl;}elseflag=1;}fin.close();if(flag=1){cout请输入修改学生姓名及其新学号,数学,c++和英语成绩:;cinnamenumacomeng;coutendl;outfilename学号:nu数学成绩:maC++成绩:com外语成绩:engendl;outfile.close();fstreamoutf(f1.txt,ios::trunc|ios::out);fstreaminf(f.txt,ios::in);outfinf.rdbuf()endl;outf.close();inf.close();}if(flag=0)cout对不起,您要修改的学生不存在!请查证后输入!endl;cout想继续修改吗(y/n):;cinc;coutendl;if(c!='y'&&c!='n'){10cout指令错误!请重新输入!endl;cinc;}}while(c=='y');break;}3.5.查询各个学生平均分界面如下:代码如下:case8://统计每个学生的平均成绩{if(i==0){cout系统中没有输入数据,请先输入数据!endl;break;}for(intm=0;mi;m++){cout(*s[m]).name学号:(*s[m]).number总分:(*s[m]).getsum()均分:(*s[m]).getaver()endl;}break;}113.6.信息浏览功能界面如下:代码如下:case7://输出所有学生数据{cout所有学生数据如下:endl;ifstreamfile;file.open(f1.txt,ios::in);coutfile.rdbuf();file.close();break;}4该设计所用的技术使用c++面向对象语言开发,代码中使用了for,while,if,switch等循环判断语句,主函数依次调用外围函数,各个函数之间使用数组首地址传递,各个模块之间坚持高内聚低耦合的原则,最大程度上改善本软件的健壮性和可修改性。125课程设计总结课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下
本文标题:c++课程设计
链接地址:https://www.777doc.com/doc-4973793 .html