C++课程设计--学生成绩排名系统

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

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

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

资源描述

淮海工学院计算机工程学院课程设计报告设计名称:C++程序设计课程设计姓名:学号:专业班级:系(院):设计时间:设计地点:指导教师评语:签名:年月日成绩:C++程序设计课程设计报告第2页共30页1.课程设计目的本课程设计是网络工程专业重要的实践性环节之一,是在学生学习完《C++程序设计》课程后进行的一次全面的综合练习。本课程设计的目的和任务:(1)巩固和加深学生对C++课程的基本知识的理解和掌握;(2)掌握C++编程和程序调试的基本技能;(3)利用C++进行简单软件设计的基本思路和方法;(4)提高运用C++解决实际问题的能力;(5)掌握书写程序设计说明文档的能力。2.课程设计任务与要求:要求:1)设计题目、设计要求以及系统功能需求分析;2)总体设计:包括模块说明、模块结构图和系统流程图;3)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4)源程序代码及设计成果:完整源程序清单和设计成果;5)总结:调试分析过程描述:包括测试数据、测试输出结果以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等)包括课程设计过程中的学习体会与收获、对C++和本次课程设计的认识等内容.;任务:设计一个学生成绩排名系统,该系统的主要功能如下:1)具备对成绩的管理功能(添加、删除、排序)2)具备对成绩的统计功能(最高分,最低分,平均分,及格率等)3)具备按学号、姓名、或课程名查询成绩的功能。4)学生成绩应该保存在文件中。备注:成绩记录以下信息:班级,学号,姓名,课程名,成绩(百分制)。可以用能表示学生成绩的结构体数组存储数据。C++程序设计课程设计报告第3页共30页3.课程设计说明书(一)需求分析(功能设计)一、模块说明在本次程序设计中我设计了七个个模块,分别是添加学生信息,对学生信息进行排序,删除学生信息,统计学生信息,查找学生信息,保存学生信息,退出系统。二、模块结构图三.系统流程图nn=7n=6n=5n=4n=3n=2paixu()tuichubaocun()search()cal()delet()add()menun=1YYYYYYYNNNNNN添加学生成绩对学生成绩排序删除学生成绩统计学生成绩查询学生成绩保存学生成绩退出系统学生成绩排名系统C++程序设计课程设计报告第4页共30页(二)详细设计(各模块流程图)各功能模块设计思路及流程图:【1】模块一:添加学生信息这一模块首先先输入你要输入的学生人数,然后通过键盘输入学生姓名,学生的班级,学生的学号,学生的高等数学的成绩,大学英语的成绩以及C++的成绩,然后将其读入文件中。流程图:【2】模块二:对学生成绩进行排序这一模块首先通过switch语句选出对学生进行排序的方式,主要方式有按学号进行排序,按高等数学的成绩按从高到低进行排序,按英语成绩按从高到低进行排序,按C++成绩按从高到低进行排序这四种排序方式,选择方式之后,根据是否返回小菜单和主菜单进行1和0的选泽。流程图:输入n=1输入aiaYN不返回主菜单输入学生属性i++c=0输入cYNc=0YNC++程序设计课程设计报告第5页共30页输入i=0j=n-1i++Niajistu[j].numstu[j-1].num输入sS=stu[j];stu[j]=stu[j-1];stu[j-1]=sj++YYY输入i=0j=0stu[j].escorestu[j-1].escore主菜单输入n=2输入bb=1Y输入i=0j=n-1b=2iajistu[j].mscorestu[j].mscorestu[j-1].num输入sS=stu[j];stu[j]=stu[j-1];stu[j-1]=s;j++YYYi++NNb=3Niaji输入sS=stu[j];stu[j]=stu[j-1];stu[j-1]=s;j++YYY输入rr=1r=0NNYNC++程序设计课程设计报告第6页共30页【3】模块三:删除学生信息这个模块通过输入学号找出你要删除的学生,然后通过循环语句将它后面的数一个一个的赋值给前面的数,从而把这个是给替代掉。达到删除的功能。流程图:num=stu[i].numnm输入i=0inj=ii=j+1YNi++主菜单输入numinstu【i-1】=stu【i】Yi++输出信息C++程序设计课程设计报告第7页共30页【4】模块四:统计学生信息这个模块主要通过循环语句先算出各个学生的总成绩以及平均分,并且输出他们的信息,然后采用选择法选出总分最高以及最低的学生,并输出他们的名字。最后通过循环语句和if语句的结合算出各科成绩的及格率。最后返回主菜单。流程图:【5】模块五:查询学生信息这个模块主要是通过三种方式进行学生信息的查询,分别是姓名查询,学号查询,课程名查询;找到学生之后输出学生基本信息,如果查找的学生不在列表中,则重新输入。主菜单输入i=0instu[i].total=stu[i].cscore+stu[i].mscore+stu[i].escore输出stu【i】.total输出stu【i】.total/3输入rstu【i】=60r++;YY输入minmin=stu【0】.total输入i=0inmin=stu[i].total;i++;YYi++r=n=n输出信息Yi++NNstu[i].totalminC++程序设计课程设计报告第8页共30页流程图:主菜单输入aa=1输入name输入iin输出信息YYNYa=2n=stu[i].numn=stu[i].numa=3输入bb=gaodengshuxue输出信息b=daxueyingyuNYNYi++i++输入num输入iin输出信息YYNC++程序设计课程设计报告第9页共30页【6】模块六:保存学生信息这个模块通过使用ACII码的文件的应用,将数据存入到文件中。流程图:【7】模块七:退出系统(三)代码设计(函数主要代码及注释)#includeiostream#includeiomanip#includefstream#includestringusingnamespacestd;intn;structStudent{charname[20];doubleClass;intnum;floatmscore;floatescore;floatcscore;floattotal;};Studentstu[20];主菜单输入信息输入文件C++程序设计课程设计报告第10页共30页intmain(){voidmenu();voidread();read();cout*******************************学生成绩排名系统******************************endl;cout本系统主要完成对学生成绩的管理还有统计的功能,请按照提示进行操作,否则将会出现错误,请慎重操作。endl;cout注意要先实行第一步!endl;menu();return0;}voidmenu()//进行数据操作的选择{voidchoose();cout*********************************主菜单*********************************endl;cout**(1)添加学生成绩**endl;cout******(2)对学生成绩进行排序******endl;cout**********(3)删除学生成绩**********endl;cout**************(4)统计学生成绩**************endl;cout**********(5)查询学生成绩**********endl;cout******(6)保存学生成绩******endl;cout**(7)退出系统**endl;cout****************************************************************************endl;cout请选择你要实现的功能endl;cout你输入的数字是:;choose();}voidadd()//添加学生信息{voidback();voidinput();input();back();}voidinput()C++程序设计课程设计报告第11页共30页{intr=0;cout你要输入的学生个数为:;cinn;ofstreamoutfile(e:\\f1.txt,ios::app);if(!outfile){coutopenerror!endl;exit(1);}for(inti=0;in;i++){cout学生的名字:;cinstu[i].name;cout学生的班级:;cinstu[i].Class;cout学号:;cinstu[i].num;cout高等数学:;cinstu[i].mscore;cout大学英语:;cinstu[i].escore;cout大学语文:;cinstu[i].cscore;r++;if(r==n)break;}outfile.close();}voiddelet()//删除学生信息{voidback();inti,a,j,p;cout你要删除的学生的学号:;cina;C++程序设计课程设计报告第12页共30页for(i=0;in;i++)if(a==stu[i].num){j=i;for(p=j+1;pn;p++)stu[p-1]=stu[p];cout删除成功!!;n=n-1;break;}if(i==n&&a!=stu[i].num){cout你要删除的学生不在列表中endl;delet();}back();}voidpaixu()//对学生信息进行排序{coutA.按照学号进行排序endl;coutB.按照数学成绩从高到低进行排序endl;coutC.按照英语成绩从高到低进行排序endl;coutD.按照语文成绩从高到低进行排序endl;cout请选择进行排序的方式?(用A,B,C,D进行选择):;chara;cina;switch(a){voidnum();voidmscore();voidescore();voidcscore();case'A':num();break;case'B':mscore();break;case'C':escore();break;case'D':cscore();break;C++程序设计课程设计报告第13页共30页}}voidnum()//学号排序{voidback2();inti;Students;cout学生姓名setw(15)学号setw(10)高等数学setw(15)大学英语setw(15)大学语文endl;for(i=0;in;i++){for(intj=n-1;ji;j--){if(stu[j].numstu[j-1].num){s=stu[j];stu[j]=stu[j-1];stu[j-1]=s;}}}for(i=0;in;i++)coutstu[i].namesetw(20)stu[i].numsetw(10)stu[i].mscoresetw(15)stu[i].escoresetw(15)stu[i].cscoreendl;back2();}voidmscore()//数学成绩排序{voidback2();inti;Students;cout学生姓名setw(15)学号setw(10)高等数学setw(15)大学英语setw(15)大学语文endl;for(i=0;in;i++){for(i

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

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

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

×
保存成功