1、C+课程设计报告2C+程序设计课程设计说明书题 目学生成绩管理系统学 号姓 名指导教师日 期2013.12.27内蒙古科技大学课程设计任务书课程名称C+面向对象程序设计A课程设计设计题目学生成绩管理系统指导教师时间2013.12.27一、教学要求1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握2. 掌握C+语言编程和程序调试的基本技能3. 利用C+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C+语言解决实际问题的能力二、设计资料及参数用C+设计一个程序,能提供下列功能:(1)录入学生成绩。按照学号,姓名,语文,数学,英语的格式录入学生的成绩。(2)查询成绩。
2、根据学生的学号或姓名查询学生的成绩。(3)修改。通过查询找到相应的学生记录进行修改。(4)统计。计算学生的总分并排序显示输出。统计班级学生的每门课程的平均分和总分的平均分并显示;统计得分小于班级总分的学生并显示;显示不及格学生的名单。三、设计要求及成果根据系统功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计系统的类层次;(3)完成类层次中各个类的描述(包括属性和力一法);(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)提交课程设计报告:完成系统总结报告以及系统使用说明书第1章 需求分析用C+设计
3、一个程序,能提供下列功能:(1)录入学生成绩。按照学号,姓名,语文,数学,英语的格式录入学生的成绩。(2)查询成绩。根据学生的学号或姓名查询学生的成绩。(3)修改。通过查询找到相应的学生记录进行修改。(4)统计。计算学生的总分并排序显示输出。统计班级学生的每门课程的平均分和总分的平均分并显示;统计得分小于班级总分的学生并显示;显示不及格学生的名单。第2章 总体设计1.用结构框图表示各个功能之间的关系。图1 功能关系图2. 将框图中系统的各个功能用文字详细的描述。(1)录入学生信息:通过选择主菜单中的选项,选择该项,将出现录入学生信息的提示,根据提示录入学生成绩及信息。(2)显示学生信息:录入完
4、成输入N,结束录入选择下一项,则显示出已录入学生的信息及各门功课成绩、总分及平均分。(3)查找并修改:查找分为按学号查找和按姓名查找,输入你想要的查找方式进行查找,然后是否要进行修改,选择Y/N,对其进行修改操作。(4)按总分排序:计算总分并按照由高到低的顺序进行排序。(5)显示得分小于班级总分的人:由以上信息中学生的总分与班级总分进行比较,显示出得分小于班级总分的学生。(6)显示不及格学生:显示出得分小于60分的学生。(7)退出:退出系统。第3章 类的设计3.1 学生成绩管理系统类的设计(第一个类)1.画出类图 表1:类关系表类名:class student string name;long
5、 id;数据成员: float Chinese; float math; float English;float sum;float ave;student();void input();void show(); void copy(student a);函数成员: string NAME();long ID();float chi();float mat();float eng();float SUM();float AVE();2.对类的函数成员的说明 不用写出代码,用文字描述 函数的首部 /说明:输入什么参数; /进行什么操作; /返回什么结果;string NAME();:获取私有数据
6、成员name。long ID();:获取私有数据成员id。float chi();:获取私有数据成员Chinese。float mat();:获取私有数据成员math。float eng();:获取私有数据成员English。float SUM();:获取私有数据成员sum。float AVE();:获取私有数据成员ave。student();:是构造函数,对数据进行初始化。void input();:无返回值,无需参数,输入数据。void show();:无返回值,无需参数,输出数据。void copy(student a);:无返回值,参数为一个student类型的参数a,操作为一个自定义
7、的拷贝函数。第4章 详细设计4.1 工程视图说明有几个源代码文件,可以截取工程文件视图表示 图2 工作区文件视图4.2 类图视图每个文件包含哪些类和函数,可以截图说明 图3 类图视图1 图4 类图视图24.3 主程序流程图 Y N4.4 主要算法的流程图 第5章 测试主菜单: 图7 学生成绩管理系统主菜单录入学生成绩: 图8 录入学生成绩查询成绩: 图9 按学号查找 图10 按姓名查找修改成绩: 图11 修改学生成绩按总分排序: 图12 按总分排序显示平均分小于班级总平均分且不及格的学生: 图13 均分小于班级总平均分且不及格的学生第6章 总结这个学生成绩管理系统存在着很多不足之处,由于自己本
8、身编程能力的问题,这个系统可以实现的功能非常有限。只能实现学生管理系统最基本的功能,可以进行简单的输入、输出学生资料,查询和修改学生信息。课程设计不仅让我们巩固了所学的知识,还使得我们学习到了更多平时所忽略的,最重要的是,它磨砺了我们,让我们在大学的下一个阶段能更好的成长。我要将C+学好,在将来能为我的就业加分。附录:程序代码#include #include using namespace std; class student private: string name; long id; float Chinese; float math; float English; float sum;
9、 float ave; public: student(); void input(); void show(); void copy(student a); string NAME()return name; long ID()return id; float chi()return Chinese; float mat()return math; float eng()return English; float SUM()return sum; float AVE()return ave; ; void student:input() coutname; coutid; coutChine
10、se; coutmath; coutEnglish; sum=Chinese+math+English; ave=sum/3; student:student() name=noname; id=0; Chinese=0; math=0; English=0; sum=0; ave=0; void student:show() cout姓名:nameendl学号:idendl语文:Chineseendl 数学:mathendl英语:Englishendl总成绩:sumendl平均分:aveendlendl; void student:copy(student a) name=a.NAME();
11、 id=a.ID(); Chinese=a.chi(); math=a.mat(); English=a.eng(); sum=a.SUM(); ave=a.AVE(); short showmenu() short select; cout*endl; cout 学 生 成 绩 管 理 系 统 endl; cout*endl; cout 1.录入学生成绩 endl; cout 2.查询、修改学生成绩 endl; cout 3.按总分排序 endl; cout 4.班级总分 endl; cout 0.安全退出系统 endl; cout*endl; coutselect; return sele
12、ct; void find(student stu) string k; short i,j; long n; short m; char q=n; cout*n; cout*ttt1.按学号查找tttt*n; cout*ttt2.按姓名查找tttt*n; coutm; if(m=1) coutn; if(n1&n12) cout输入有误!请重新输入:; else break; for(i=0;stui.ID()!=0;i+) if(n=stui.ID() stui.show(); j=i; else if(m=2) coutk; for(i=0;stui.ID()!=0;i+) if(k=s
13、tui.NAME() stui.show(); j=i; else cout输入的选项有误!; coutq; if(q=y|q=Y) stuj.input(); void arrange(student stu) student temp; short i,j; for(i=0;stui.ID()!=0;i+) for(j=i+1;stuj.ID()!=0;j+) if(stui.SUM()stuj.SUM() temp.copy(stui); stui.copy(stuj); stuj.copy(temp); for(i=0;stui.ID()!=0;i+) stui.show(); voi
14、d classave(student stu) float cla=0,a; short i; for(i=0;stui.ID()!=0;i+) cla+=stui.SUM(); a=cla/i; cout班级总分是:aendl; cout不及格的人是:endl; for(i=0;stui.ID()!=0;i+) if(stui.AVE()60) stui.show(); a/=3; cout显示平均分小于班级总平均分的学生:endl; for(i=0;stui.ID()!=0;i+) if(stui.AVE()=a) stui.show(); void main() student stu1
15、00; short i; char temp=Y; short select; for(;select=showmenu();) switch(select) case 1: for(i=0;i100&(temp!=N&temp!=n);i+) stui.input(); cout是否继续(Y/N):temp; break; case 2: find(stu); break; case 3: arrange(stu); break; case 4: classave(stu); break; cout按任意键继续!endl; getchar(); getchar(); system(cls);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1