C++程序课程设计报告学生成绩管理系统_第1页
C++程序课程设计报告学生成绩管理系统_第2页
C++程序课程设计报告学生成绩管理系统_第3页
C++程序课程设计报告学生成绩管理系统_第4页
C++程序课程设计报告学生成绩管理系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、c+程序课程设计报告学院:资源与安全工程学院专业班级:采矿1401班课题:学生成绩管理系统姓名:指导教师:设计时间:2015年 7月6日至7月17日目录一、程序设计目的2二、程序功能介绍2三、程序设计21)程序结构22)主函数流程图43)系统功能流程图5四、调试与分析61)程序调试过程72)程序的不足7五、执行结果8六、课程设计总结8附录:源程序代码9一、程序设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学

2、专业课程c+程序设计语言的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用c+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。(6)熟练掌握c+语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。二、程序功能介绍(1)数据输入:添加学生姓名,系统自动生

3、成学号,并输入学生成绩;(2)查询成绩:通过姓名查询成绩,输入待查学生姓名可输出该学生成绩;通过学号查询,输入待查学生学号,输出该学生成绩;(3)修改成绩:输入需要修改成绩学生姓名,并输入新成绩;(4)输出所有学生成绩:可以将所有学生的姓名,学号,成绩输出;(5)统计及格及优秀人数;(6)储存学生数据;(7)清屏。三、程序设计1、程序结构student类:定义公有成员姓名,学号,成绩,和成绩等级。function类:(1)定义私有成员stu数组和计数n(2)成员函数: function ()学号计数器重置 input()添加学生和成绩并排列成绩等级 querybyid()按学号查询学生信息 q

4、uerybyname()按姓名查询成绩 modifyscore()修改成绩 output()输出所有学生成绩 tongji()统计及格和优秀人士 loadin(char *filename)导入学生成绩 saveout(char *filename)导出到stu.txt文件void welcome()界面函数void welcome1()输入子界面函数void welcome2()查询子界面函数void welcome4()输出子界面函数int main()主函数2、主函数流程图!(cinxuanze)yn开始cin.clear()cin.sync()welcome()主界面yhiswith(

5、choose)case2f.loadin(tmp)nyhiswitch(xuanze1)case1case1f.input()yhincase2yhif.querybyid()case2switch(xuanze1)yhinf.querybynname()case1case3nyhif.modifyscore()yhicase2f.saveout(tmp)nyhicase4switch(xuanze1)nyhireturn 0nyhiyhiyhinsystem(cls)case0case6return 0case1f.output()f.tongji()case5nnbreak3、系统功能流程

6、图输入统计修改菜单程序查找显示主程序退出初始化程序四、调试与分析1、程序调试过程初始界面输入数据:直接输入或文件输入查询学生信息:按姓名查询或学号查询修改成绩输出所有学生成绩:直接输出或文件输出统计优秀及格人数退出系统清屏2、程序的不足(1)无法按照班级,年级进行分类统计学生信息;(2)只适合统计人数较少的信息,数据太多时不易统计数据;(3)无法对成绩实现升序和降序排列;(4)信息不够完善,当有两个人同名时,我们便无法区分两个人的信息,所以还应该统计除姓名,学号之外的其它信息。五、执行结果1、随时添加学生姓名,系统自动生成学号,并输入学生成绩;2、能够统计不及格、及格、优秀人数,便于管理学生信

7、息;3、能够输出所有学生成绩;4、随时添加学生信息,系统自动生成学号,并输入学生成绩。六、课程设计总结结束了这个尽管不够完美的课程设计报告,我着实有很多感想和体会。首先,虽然学到了课本知识,但是到实际操作时,却不知道从何做起。然后我们上网查资料,问老师,问同学,终于有了思路,然后我们就根据这个思路进行下去。在一个周之后,当们我把源代码修改正确使之能够正常运行时,当意料之中的运行结果出现在眼前的屏幕上时,我们感到很有成就感。然而,我们在测试过程中不断的发现新的问题,不断有新的挑战,但是我们仍然耐心的一遍一遍的修改,一遍一遍的测试,最终能够实现老师布置的所有要求。今天便是答辩的日期,回想起来,这次

8、课程设计已经接近两个周,也许做的不完美,但这里有我们的付出和努力。在这个过程中,学到了很多。首先,要不懂就问,这样可能事半功倍。再者,一个团队的团结协作很重要,一个人可能很难做成功,但是大家团结起来,每个人负责一个版块,便取得了最后的成功。还有就是需要耐心,我们需要将源代码一句一句的修改,一遍一遍的调试,直到结果正确。附录:源程序代码#include #include #include #include using namespace std;class studentpublic:int id;/学号string name;/姓名double chengji;/成绩int lv;/及格和优秀

9、的标志,优秀的话lv=1,及格的话lv=2,不及格的话lv=3;class function /功能类private:student stu1000;/存放学生的类数组int n;/计数器public: function()n=0;/学号计数器重置void input()/添加学生和成绩char c;while(1)char chengjifilter40;/输入的数字转成字符串,检查是否合法cout正在添加学生信息.endl;;coutchengjifilter;stun.chengji=atoi(chengjifilter);/atoi,系统函数,字符串转数字,如

10、果是字母自动按0处理cout该同学姓名为: 成绩为:stun.chengjiendl;cout系统自动分配学号,该同学的学号为:n+1=80 & stun.chengji=60 & stun.chengji80)stun.lv=2;else if(stun.chengji=0)stun.lv=3;elsestun.lv=4;/出现4就说明成绩出错了n+;cout该同学成绩输入完毕,还需要继续输入吗?(y/n)c;if(c=y |c=y)continue;elsebreak; void querybyid()/按学号查询学生信息int t; int isfind=0;/是否找到

11、coutt; for(int i=0;in;i+)if(stui.id=t) /查找cout找到学号为t的同学,姓名为:,成绩为:stui.chengjiendl;isfind=1;if(isfind=0)cout没有找到相应的同学,请重新查询.endl;void querybyname()/按姓名查询成绩string t;int isfind=0;/是否找到coutt;for(int j=0;jn;j+)/开始查找if(=t)cout找到姓名为t的同学,学号为:stuj.id,成绩为:stuj.chengjiendl;isfind=1;if(isfind=

12、0)cout没有找到相应的同学,请重新查询.endl;void modifyscore()/修改成绩string t;int isfind=0;/是否找到coutt;for(int j=0;jn;j+)/开始查找if(=t)/修改cout找到姓名为t的同学,学号为:stuj.id,成绩为:stuj.chengjiendl;cout请输入新的姓名:;;coutstuj.chengji;if(stuj.chengji=80 & stuj.chengji=60 & stuj.chengji80)stuj.lv=2;else if(stuj.chengji=0

13、)stuj.lv=3;elsestuj.lv=4;isfind=1;if(isfind=0)cout没有找到相应的同学,请重新查询.endl;void output()/输出所有学生成绩cout共有n名学生.endl;/下标从0开始,所以要加1cout学号姓名成绩endl;for(int i=0;in;i+)cout stui.id stui.chengjiendl;void tongji()/统计及格和优秀人士int jige=0,youxiu=0,bujige=0;/统计for(int i=0;in;i+)if(stui.lv=1)youxiu+;else if(stu

14、i.lv=2)jige+;else if(stui.lv=3)bujige+;cout统计结果:endl;cout优秀人数:youxiu 及格人数:jige 不及格人数:bujigeendl;void loadin(char *filename)/导入学生成绩的函数,参数为导入的文件名称ifstream in;/文件输入流in.open(filename);/打开if(in.fail()=1)/如果打开失败coutfilename文件打开失败!stun.chengji; /按行读入学生信息stun.id=n+1;/判断该学生属于哪一段if(stun.chengj

15、i=80 & stun.chengji=60 & stun.chengji80)stun.lv=2;else if(stun.chengji=0)stun.lv=3;elsestun.lv=4;/出现4就说明成绩出错了in.get();/吃掉导入文件的最后一个回车符,否则会多读取一行无效信息if(in.peek()=n)break;n+;cout导入成功!endl;in.close();void saveout(char *filename)/导出到stu.txt文件ofstream out;out.open(filename,ios:trunc);/trunc:覆盖方式写入文件for(int

16、 i=0;in;i+)/导出outstui.id stui.chengjiendl;cout导出文件成功endl;void welcome()/界面函数 cout*endl;cout 学生成绩管理系统 endl;cout*endl;cout*1-输入数据*endl;cout*2-查询学生信息*endl;cout*3-修改成绩*endl;cout*4-输出所有学生成绩*endl;cout*5-统计及格和优秀人数*endl;cout*6-退出系统*endl;cout*0-清屏*endl;void welcome1()/输入子界面cout*1-直接输入*endl;cout*2-文

17、件输入*endl;void welcome2()/查询子界面cout*1-按学号查询*endl;cout*2-按姓名查询*endl;void welcome4()/输出cout*1-直接输出*endl;cout*2-文件输出*choose)cin.clear();cin.sync();welcome(); switch(choose) case 1:welcome1();cinchoose1;switch(choose1)case 1:f.input();break;case 2:char tmp50;cout-注意-endl;cout请保证导入的txt文件格式为: 姓名成绩,中间空一个格,每行一个学生信息.endl;couttmp;f.loadin(tmp);/执行导入break;break;case 2:welcome2();cinchoose1;switch(choose1)case 1: f.querybyid();break;c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论