C++程序课程设计报告学生成绩管理系统.doc

上传人:文库蛋蛋多 文档编号:2384397 上传时间:2023-02-17 格式:DOC 页数:18 大小:223KB
返回 下载 相关 举报
C++程序课程设计报告学生成绩管理系统.doc_第1页
第1页 / 共18页
C++程序课程设计报告学生成绩管理系统.doc_第2页
第2页 / 共18页
C++程序课程设计报告学生成绩管理系统.doc_第3页
第3页 / 共18页
C++程序课程设计报告学生成绩管理系统.doc_第4页
第4页 / 共18页
C++程序课程设计报告学生成绩管理系统.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《C++程序课程设计报告学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《C++程序课程设计报告学生成绩管理系统.doc(18页珍藏版)》请在三一办公上搜索。

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;coutstun.name;coutchengjifilter;stun.chengji=atoi(chengjifilter);/atoi,系统函数,字符串转数字,如

10、果是字母自动按0处理cout该同学姓名为:stun.name 成绩为: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.name,成绩为:stui.chengjiendl;isfind=1;if(isfind=0)cout没有找到相应的同学,请重新查询.endl;void QueryByName()/按姓名查询成绩string t;int isfind=0;/是否找到coutt;for(int j=0;jn;j+)/开始查找if(stuj.name=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(stuj.name=t)/修改cout找到姓名为t的同学,学号为:stuj.id,成绩为:stuj.chengjiendl;cout请输入新的姓名:;cinstuj.name;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.name 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.idstun.namestun.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.name 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文件格式为: 姓名成绩,中间空一个格,每

18、行一个学生信息.endl;couttmp;f.loadin(tmp);/执行导入break;break;case 2:welcome2();cinchoose1;switch(choose1)case 1: f.QueryByID();break;case 2: f.QueryByName();break;break;case 3:f.ModifyScore();break;case 4:welcome4();cinchoose1;switch(choose1)case 1:f.output();break;case 2:char tmp50;couttmp;f.saveout(tmp);break;case 5:f.tongji();break;case 6:return 0;break;case 0:system(cls);break;/清除屏幕指令,可以上网查到 return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号