您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > C++学生成绩统计管理系统
信计0901班谭鄱仑1C++程序设计湖南科技学院课程设计报告课程名称:计算机高级语言(C++)课程设计课程设计题目:学生通讯管理系统系:数学与计算科学系专业:信息与计算科学年级、班:信计0801姓名:谭鄱仑学号:200905002109指导教师:牛志毅职称:讲师2010年12月信计0901班谭鄱仑2C++程序设计目录课程实验报告--------------------------------3一、需求分析---------------------------------------------3二、概要设计---------------------------------------------3三、程序实现思路-----------------------------------------7四、设计总结---------------------------------------------7五、参考文献---------------------------------------------7六、源代码-----------------------------------------------8七、运行情况…………………………………………………………16信计0901班谭鄱仑3C++程序设计C++语言程序设计报告一、需求分析用C++编写下面程序学生成绩统计管理系统(*****)要求实现如下功能:①成绩的输入(学号、姓名、英语、数学、C++语言…)。②成绩统计(各科平均成绩、各科成绩“优秀”、“良好”、“中等”、“及格”、“不及格”的人数及其所占比例)。③总成绩统计(学生的总成绩、平均成绩及成绩排名)。④成绩的统计结果显示。⑤学生数据的添加、修改、与删除。⑥学生数据的读取与存储。二、概要设计主要数据定义以及各程序模块的功能:Student类中:classStudent{private:intid;//学号stringname;//姓名doublescore[3];intx;//指示是否存储了数据doubleall;//总成绩intrank;//名次stringdengji;//等级public:Student();//构造函数voidSetStudentID(int);//输入学生学号intStudentID();//返回学生学号voidSetStudentName(stringstr);//输入学生姓名stringStudentName();//返回学生姓名voidSetStudentScore(doubley,doubles,doublec);//输入学生成绩doubleStudentYscore();//返回学生英语成绩doubleStudentSscore();//返回学生数序成绩doubleStudentCscore();//返回学生C++成绩信计0901班谭鄱仑4C++程序设计voidSetStudentX(intn);//给判定学生数据存在与否的X赋值voidGetall();//计算学生总成绩voidSetRank();//给学生名次值加1intRank();//返回学生名次值intStudentX();//返回判定X的值,判定是否修改voidRankClear();//给学生的名次赋值为1voidSetdengji(stringdengji);//输入等级doubleAll();//返回学生总成绩stringStudentDengji();//返回学生等级值};Studentifo类中:classStudentifo{private:intnum;//学生个数Student*stu;//定义指向存储学生类的指针public:Studentifo(intn);//构造函数voidLoadID(intn);//输入学生学号voidLoadName(int,stringname);//输入学生姓名voidLoadScore(int,double,double,double);//输入学生各科成绩voidSetifo();//插入学生数据voidPutifo();//输出所有学生数据voidClear();//清除所有学生数据voidPutID();//输出指定学生数据voidClearID();//删除指定学生数据voidMakeRank();//给所有学生排名voidReSetifo();//修改指定学生数据voidClearRank();//给指定学生的名次值赋为1voidMakeAll();//计算各个学生的总成绩voidPutifoRank();//按名次输出所有学生数据intID(intn);//返回学生学号doubleYscore(int);//返回学生英语成绩信计0901班谭鄱仑5C++程序设计doubleSscore(int);//返回学生数学成绩doubleCscore(int);//返回学生C++成绩doubleStudentAll(intn);//返回学生总成绩intStudentRank(intn);//返回学生名次stringName(int);//返回学生名次intX(int);//指定X值,确定是否有存储数据stringDengji(intn);//返回学生等级voidNumadd();//num值加1voidXfix(int);//将指定学生的X指示值赋为1~Studentifo();//析构函数释放new创建的空间};类外:voidDoMenu(intn,Studentifo*t);//将类里的各个函数组合起来实现各个功能,按指定数字执行voidLoad(Studentifo*S);//从文件中载入学生信息voidSave(Studentifo*S);//将学生信息保存到文件voidShowTip();//显示操作提示voidShowMenu();//显示菜单信计0901班谭鄱仑6C++程序设计主函数的程序流程图NYNYYYNNNN开始23456插入学生数据删除指定学生数据超找指定学生数据输出所有学生综合信息YYN结束清除学生数据78109按名次输出学生信息修改指定学生数据载入数据退出保存输出菜单及提示信息输入功能数字1信计0901班谭鄱仑7C++程序设计三程序实现思路本程序通过Studentifo类开辟一个Student的类数组用已储存学生数据。通过Studentifo类的公有函数和Student的公有函数进行关联,对Student类里的私有学生数据进行操作,达到输入,处理,输出学生数据的功能。同时利用文件输入输出流在项目文件夹中创建一个date.txt文档进行学生数据的保存与读取。四设计总结(1)摆正心态,不心浮气躁刚拿到题目,难免会觉得特别迷茫,无从下手,这时如果心浮气躁则会更加的觉得困难重重。但当我摆正心态,静小心来慢慢思考的时候,一个个的思路不断的的冒出,头脑中的想法远比实践过的多。此时,困难已不是从何下手,而是如何下手会是程序更趋完美。(2)一鼓作气,个个击破一旦开始了编程后,就要一鼓作气的继续下去。选择个个击破,然后将所有的程序在组合起来,很快主程序的雏形就能展现出来,接下来的就只是一点点的修改关联是的小错误了。用不了多久任务即可完成,特有成就感。但是如果断断续续的则会在每次编的时候被冗杂而繁多的定义弄糊涂,从而没有心情继续下去。(3)有目的地修改、完善运行时会出现一些错误,但我发现其实里面的参数并不复杂,只要跟着那个error的提示,一个一个的改下去,其实很简单的。结果事实也是如此,看完书后,只用了一个小时多一点,102个错误全部搞定了。错误几乎为以下三类:1.冒号,分号等符号打错了;2.大小写等造成的对应问题;3.变量的不完全修改。改完以后,在执行时我发现界面不好看,于是我又将主界面略加修改了些。看上去美观了不少。再运行功能,前四个都能顺利运行,但对百分比饼状图我傻眼了。不管我输入数据与否,输入了什么数据,结果都是一样的,相当离谱。我又糊涂了,搞不清是怎么回事。于是,又去问同学,在他们的帮助下,成功解决这个问题,在此真要好好谢谢他们!终于大功告成!欣慰在这次实践中,我不仅弥补了自己在C++课上所落下的内容,尤其是指针那块部分,虽然现在概念搞的还不是很懂,但看见程序是能够理解的。这次C++实践是给我们这一学期来所学知识的一个总复习,总的实践。它让我们把所知道的知识点运用的更好,把不知道的知识点搞得明白了。实践出真知,通过这次实践,我也系统的把课本好好的回顾了下。猛然觉得,C++二级考试也有些把握了。五参考文献谭浩强.C++程序设计.清华大学出版社,2007.5信计0901班谭鄱仑8C++程序设计六源程序main.cpp/*****************************************课程设计题目:学生信息管理系统班级:0901学号:200905002109姓名:谭鄱仑*****************************************/#includestudent.hintmain(){inti=0;charok;Studentifostuifo;Studentifo*ifo=&stuifo;ShowMenu();cout选择对应数字进行操作:;while(i!=9){cini;system(cls);ShowMenu();DoMenu(i,ifo);ShowTip();}if(flag)cout数据已改动,是否保存Y/N;cinok;if(ok=='Y'||ok=='y'){ifo-MakeAll();ifo-ClearRank();ifo-MakeRank();Save(ifo);cout数据已保存...按任意键安全退出;}elsecout已安全退出...按任意键返回;}Student.h#ifndefSTUDENT_H_INCLUDED#defineSTUDENT_H_INCLUDED#includeiostream信计0901班谭鄱仑9C++程序设计#includecstdlib#includestring#includefstream#includesstream#includeiomanipusingnamespacestd;classStudent{private:intid;//学号stringname;//姓名doublescore[3];intx;//指示是否存储了数据doubleall;//总成绩intrank;//名次stringdengji;//等级public:Student();//构造函数voidSetStudentID(int);//输入学生学号intStudentID();//返回学生学号voidSetStudentName(stringstr);//输入学生姓名stringStudentName();//返回学生姓名voidSetStudentScore(doubley,doubles,doublec);//输入学生成绩doubleStudentYscore();//返回学生英语成绩doubleStudentSscore();//返回学生数序成绩doubleStudentCscore();//返回学生C++成绩voidSetStudentX(intn);//给判定学生数据存在与否的X赋值voidGetall();//计算学生总成绩voidSetRank();//给学生名次值加1intRank();//返回学生名次值intStudentX();//返回判定X的值,判定是否修改voidRankClear();//给学生的名次赋值为1voidSetdengji(stringdengji);//输入等级doubleAll();//返回学生总成绩stringStudentDengji();//返回学生等级值};classStudentifo{private:intnum;//学生个数Student*stu;//定义指向存储学生类的
本文标题:C++学生成绩统计管理系统
链接地址:https://www.777doc.com/doc-7029069 .html