C++程序课程设计报告学院:资源与安全工程学院专业班级:采矿1401班课题:学生成绩管理系统姓名:张勇指导教师:杨念哥设计时间:2015年7月6日至7月17日目录一、程序设计目的...................................................................2二、程序功能介绍...................................................................2三、程序设计...........................................................................21)程序结构..........................................................................22)主函数流程图..................................................................43)系统功能流程图..............................................................5四、调试与分析.......................................................................61)程序调试过程..................................................................72)程序的不足......................................................................7五、执行结果...........................................................................8六、课程设计总结...................................................................8附录:源程序代码.....................................................................9C++程序课程设计报告成绩查询管理系统2一、程序设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《C++程序设计语言》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。(6)熟练掌握C++语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。二、程序功能介绍(1)数据输入:添加学生姓名,系统自动生成学号,并输入学生成绩;(2)查询成绩:通过姓名查询成绩,输入待查学生姓名可输出该学生成绩;通过学号查询,输入待查学生学号,输出该学生成绩;(3)修改成绩:输入需要修改成绩学生姓名,并输入新成绩;(4)输出所有学生成绩:可以将所有学生的姓名,学号,成绩输出;(5)统计及格及优秀人数;(6)储存学生数据;(7)清屏。三、程序设计1、程序结构student类:定义公有成员姓名,学号,成绩,和成绩等级。Function类:(1)定义私有成员stu数组和计数nC++程序课程设计报告成绩查询管理系统3(2)成员函数:Function()学号计数器重置Input()添加学生和成绩并排列成绩等级QueryByID()按学号查询学生信息QueryByName()按姓名查询成绩ModifyScore()修改成绩Output()输出所有学生成绩Tongji()统计及格和优秀人士loadin(char*filename)导入学生成绩saveout(char*filename)导出到stu.txt文件voidwelcome()界面函数voidwelcome1()输入子界面函数voidwelcome2()查询子界面函数voidwelcome4()输出子界面函数intmain()主函数2、主函数流程图C++程序课程设计报告成绩查询管理系统4开始主界面Case1Swith(choose)Switch(xuanze1)Case1Case2f.loadin(tmp)f.input()Case2Case3Case4Case5Case6Case0Switch(xuanze1)f.ModifyScore()Case1Case2f.QueryByID()f.QueryByNname()Switch(xuanze1)Case1f.output()Case2F.saveout(tmp)f.tongji()return0system(cls)return0!(cinxuanze)Cin.clear()Cin.sync()Welcome()NYYYYYhYYNNNNNNNNNYYYYNYbreakYC++程序课程设计报告成绩查询管理系统53、系统功能流程图主程序菜单程序初始化程序统计输入退出查找修改显示C++程序课程设计报告成绩查询管理系统6四、调试与分析1、程序调试过程○1初始界面○2输入数据:直接输入或文件输入○3查询学生信息:按姓名查询或学号查询C++程序课程设计报告成绩查询管理系统7○4修改成绩○5输出所有学生成绩:直接输出或文件输出○6统计优秀及格人数○7退出系统○8清屏2、程序的不足C++程序课程设计报告成绩查询管理系统8(1)无法按照班级,年级进行分类统计学生信息;(2)只适合统计人数较少的信息,数据太多时不易统计数据;(3)无法对成绩实现升序和降序排列;(4)信息不够完善,当有两个人同名时,我们便无法区分两个人的信息,所以还应该统计除姓名,学号之外的其它信息。五、执行结果1、随时添加学生姓名,系统自动生成学号,并输入学生成绩;2、能够统计不及格、及格、优秀人数,便于管理学生信息;3、能够输出所有学生成绩;4、随时添加学生信息,系统自动生成学号,并输入学生成绩。六、课程设计总结结束了这个尽管不够完美的课程设计报告,我着实有很多感想和体会。首先,虽然学到了课本知识,但是到实际操作时,却不知道从何做起。然后我们上网查资料,问老师,问同学,终于有了思路,然后我们就根据这个思路进行下去。在一个周之后,当们我把源代码修改正确使之能够正常运行时,当意料之中的运行结果出现在眼前的屏幕上时,我们感到很有成就感。然而,我们在测试过程中不断的发现新的问题,不断有新的挑战,但是我们仍然耐心的一遍一遍的修改,一遍一遍的测试,最终能够实现老师布置的所有要求。今天便是答辩的日期,回想起来,这次课程设计已经接近两个周,也许做的不完美,但这里有我们的付出和努力。在这个过程中,学到了很多。首先,要不懂就问,这样可能事半功倍。再者,一个团队的团结协作很重要,一个人可能很难做成功,但是大家团结起来,每个人负责一个版块,便取得了最后的成功。还有就是需要耐心,我们需要将源代码一句一句的修改,一遍一遍的调试,直到结果正确。C++程序课程设计报告成绩查询管理系统9附录:源程序代码#includeiostream#includestring#includefstream#includestdlib.husingnamespacestd;classstudent{public:intid;//学号stringname;//姓名doublechengji;//成绩intlv;//及格和优秀的标志,优秀的话lv=1,及格的话lv=2,不及格的话lv=3};classFunction//功能类{private:studentstu[1000];//存放学生的类数组intn;//计数器public:Function(){n=0;//学号计数器重置}voidinput()//添加学生和成绩{charc;while(1){charchengjifilter[40];//输入的数字转成字符串,检查是否合法cout正在添加学生信息...endl;cout请输入学生姓名:;cinstu[n].name;cout请输入学生成绩:;cinchengjifilter;stu[n].chengji=atoi(chengjifilter);//atoi,系统函数,字符串转数字,如果是字母自动按0处理cout该同学姓名为:stu[n].name成绩为:stu[n].chengjiendl;C++程序课程设计报告成绩查询管理系统10cout系统自动分配学号,该同学的学号为:n+1endl;stu[n].id=n+1;if(stu[n].chengji=80&&stu[n].chengji=100)stu[n].lv=1;elseif(stu[n].chengji=60&&stu[n].chengji80)stu[n].lv=2;elseif(stu[n].chengji60&&stu[n].chengji=0)stu[n].lv=3;elsestu[n].lv=4;//出现4就说明成绩出错了n++;cout该同学成绩输入完毕,还需要继续输入吗?(y/n)endl;cinc;if(c=='Y'||c=='y')continue;elsebreak;}}voidQueryByID()//按学号查询学生信息{intt;intisfind=0;//是否找到cout请输入要查找的学号:;cint;for(inti=0;in;i++){if(stu[i].id==t)//查找{cout找到学号为t的同学,姓名为:stu[i].name,成绩为:stu[i].chengjiendl;isfind=1;}}if(isfind==0){cout没有找到相应的同学,请重新查询.endl;C++程序课程设计报告成绩查询管理系统11}}voidQueryByName()//按姓名查询成绩{stringt;intisfind=0;//是否找到cout请输入要查找的姓名:;cint;for(intj=0;jn;j++)//开始查找{if(stu[j].name==t){cout找到姓名为t的同学,学号为:stu[j].id,成绩为:stu[j].chengjiendl;isfind=1;}}if(isfind==0){cout没有找到相应的同学,请重新查询.endl;}}voidModifyScore()//修改成绩{stringt;intisfind=0;//是否找到cout请输入要修改的学生姓名:;cint;for(intj=0;jn;j++)//开始查找{if(stu[j].name==t)//修改{cout找到姓名为t的同学,学号为:stu[j].id,成绩为:stu[j].chengjiendl;cout请输入新的姓名:;cinstu[j].name;cout请输入新的成绩:;cinstu[j].chengji;if(stu[j].chengji=80&&stu[j].chengji=100)C++程序课程设计报告成绩查询管理系统12s