资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C+程序课程设计报告 成绩查询管理系统C+程序课程设计报告学院:资源与安全工程学院专业班级:采矿1401班课题:学生成绩管理系统姓名:指导教师:设计时间:2015年 7月6日至7月17日目录一、程序设计目的2二、程序功能介绍2三、程序设计21)程序结构22)主函数流程图43)系统功能流程图5四、调试与分析61)程序调试过程72)程序的不足7五、执行结果8六、课程设计总结8附录:源程序代码918一、程序设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程C+程序设计语言的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。(6)熟练掌握C+语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。二、程序功能介绍(1)数据输入:添加学生姓名,系统自动生成学号,并输入学生成绩;(2)查询成绩:通过姓名查询成绩,输入待查学生姓名可输出该学生成绩;通过学号查询,输入待查学生学号,输出该学生成绩;(3)修改成绩:输入需要修改成绩学生姓名,并输入新成绩;(4)输出所有学生成绩:可以将所有学生的姓名,学号,成绩输出;(5)统计及格及优秀人数;(6)储存学生数据;(7)清屏。三、程序设计1、程序结构student类:定义公有成员姓名,学号,成绩,和成绩等级。Function类:(1)定义私有成员stu数组和计数n(2)成员函数: Function ()学号计数器重置 Input()添加学生和成绩并排列成绩等级 QueryByID()按学号查询学生信息 QueryByName()按姓名查询成绩 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(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、系统功能流程图输入统计修改菜单程序查找显示主程序退出初始化程序四、调试与分析1、程序调试过程初始界面输入数据:直接输入或文件输入查询学生信息:按姓名查询或学号查询修改成绩输出所有学生成绩:直接输出或文件输出统计优秀及格人数退出系统清屏2、程序的不足(1)无法按照班级,年级进行分类统计学生信息;(2)只适合统计人数较少的信息,数据太多时不易统计数据;(3)无法对成绩实现升序和降序排列;(4)信息不够完善,当有两个人同名时,我们便无法区分两个人的信息,所以还应该统计除姓名,学号之外的其它信息。五、执行结果1、随时添加学生姓名,系统自动生成学号,并输入学生成绩;2、能够统计不及格、及格、优秀人数,便于管理学生信息;3、能够输出所有学生成绩;4、随时添加学生信息,系统自动生成学号,并输入学生成绩。六、课程设计总结结束了这个尽管不够完美的课程设计报告,我着实有很多感想和体会。首先,虽然学到了课本知识,但是到实际操作时,却不知道从何做起。然后我们上网查资料,问老师,问同学,终于有了思路,然后我们就根据这个思路进行下去。在一个周之后,当们我把源代码修改正确使之能够正常运行时,当意料之中的运行结果出现在眼前的屏幕上时,我们感到很有成就感。然而,我们在测试过程中不断的发现新的问题,不断有新的挑战,但是我们仍然耐心的一遍一遍的修改,一遍一遍的测试,最终能够实现老师布置的所有要求。今天便是答辩的日期,回想起来,这次课程设计已经接近两个周,也许做的不完美,但这里有我们的付出和努力。在这个过程中,学到了很多。首先,要不懂就问,这样可能事半功倍。再者,一个团队的团结协作很重要,一个人可能很难做成功,但是大家团结起来,每个人负责一个版块,便取得了最后的成功。还有就是需要耐心,我们需要将源代码一句一句的修改,一遍一遍的调试,直到结果正确。附录:源程序代码#include #include #include #include using namespace std;class studentpublic:int id;/学号string name;/姓名double chengji;/成绩int lv;/及格和优秀的标志,优秀的话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,系统函数,字符串转数字,如果是字母自动按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;/是否找到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=0)cout没有找到相应的同学,请重新查询.endl;void ModifyScore()/修改成绩string t;int isfind=0;/是否找到coutt;for(int j=0;jn;j+)/
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号