1、 面向对象程序设计课程设计报告设计题目 学生成绩管理系统学生姓名 陈卓斌学生班级 信息管理与信息系统学生学号 201411671102指导教师 易学明完成时间: 2015 年 7 月 1 日目录 摘要一、 设计任务与要求 二、系统分析(需求分析)1.需求分析2.系统性能要求3.系统功能模块三、系统设计与实现1.界面设计2.功能设计与实现 四、测试结果五、总结附录:源程序 摘要:本系统主要用于对学生的成绩进行管理。通过本系统,可以将各个学生的成绩记录输入到系统中,便于查阅和相关管理。此外,该系统还能实现对学生成绩记录的显示,查询以及插入或删除学生的成绩记录等功能。一、设计任务与要求编写一个简单的
2、学生成绩管理系统。学生成绩管理系统有若干学生成绩记录组成,每个记录由学号、姓名、性别和成绩四部分组成,姓名不超过 20 个字符, ,成绩为 double 型数据。该系统具有以下功能:(1)程序开始执行时显示如下版权信息和主菜单:要求:设立程序管理学生如下信息:学生学号、姓名、班级,语文、数学、英语成绩。至少要有 10 名以上学生。能够实现根据以下关键字查询:学生姓名 、学号、班级、课程名称。能够实现按照单科成绩、总成绩、平均成绩、学号排序。能够实现学生信息的插入、删除和修改。能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。能够查询每个班级某门课程的优秀率(90 分及以上) 、不及格
3、率,并进行排序。*/二、系统分析(需求分析)1.需求分析a.能对学生各科成绩进行录入: 。 b.能对学生的成绩进行增加。 c.能对学生的成绩进行删除。 d.能对学生的成绩进行修改。 e.能对学生的成绩按学号,姓名,进行查询。f.能输出学生的所有数据。 2.系统性能要求a.系统安全、可靠; b.功能齐全; c.操作方便、界面友好; d 易于维护和扩充。3.系统功能模块学生成绩查询系统有:成绩录入(input)、显示(show)、删除(del)、修改(change),查询(search),排序函数(paixu)显示构成。三、系统设计与实现1.界面设计 :程序运行后会出现一个简捷美观的窗口,便于用户
4、查询数据。 2.功能设计与实现 通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。应用系统主控界面包括记录编辑和记录查询等功能模块。四、测试结果基本能完成所有要求的功能。五、总结此次 c+课程设计,虽然这几天费劲心思花了好多时间去做这个课程设计,挺累的,但每一次完成一个小小的功能都能给我一种无形的力量,让我有一点点的成就感,那种解决了问题之后的快感确实让人兴奋。过程中虽然遇到了不少困难,但是在我的努力下最终顺利的完成了任务,并且学到了好多的经验与知识。以下是我的几点总结:1、要对程序的设计要求有一个比较明确的认识。明确我们要做什么,我们才能对程序更好的认识;2、先把程序整一个框架先做出
5、来,再一个一个功能慢慢调试。一开始我一下子写了整一个程序而没有经过调试,结果导致后面调试的时候非常的麻烦,错漏百出。3、做好注释。一个像成绩管理系统的程序就很多行了,如果没有做好注释,很容易在最后不知道该模块是做什么的。4、加强训练。编程确实是一个需要经验的技能,只有我们多练多学习才能更好的学好这项技能;总而言之,我们应当理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。附录:源程序#include#include#includeusing namespace
6、 std;class studentint num;char name20; /名字char class120; /班级double chinese; /语文成绩double math; /数学成绩double english; /英语成绩double youxiu; /优秀率double bujige; /不及格率double sum; /总成绩double aver1 ; /平均成绩public:void set()coutnum;coutname;coutclass1;coutchinese;coutenglish;coutmath;void show()coutselect;if(se
7、lect=0) break;switch(select)case 1:input(); /调用 input 函数录入数据system(“pause“);break;case 2:show(); /调用 show 函数显示学生信息 system(“pause“);break;case 3:search(); /调用 search 函数查询学生信息system(“pause“);break;case 4:change(); /调用 change 函数修改学生信息system(“pause“);break;case 5:add(); /调用 add 函数添加学生信息system(“pause“);b
8、reak;case 6:paixu(); /调用 add 函数添加学生信息system(“pause“);break;case 7:del(); / 调用 del 函数删除学生信息system(“pause“);break;system(“pause“);default:coutsel;while(sel=Y | sel=y ); void show()couta;switch(a)case 1:char sel;docoutc;for(i=1;isel;while(sel=Y | sel=y ); break;case 2: char sel;docoutb;for(i=1;isel;whi
9、le(sel=Y | sel=y ); break;default:coutd;for(i=1;if;switch(f)case 1:coutsi.num;break;case 2:coutsi.name;break;case 3:coutsi.class1;break;case 4:coutsi.chinese;break;case 5:coutsi.math;break;case 6:coutsi.english;break;default:coutf;e=0;g=1;if(g=1) coutsel;while(sel=Y | sel=y ); void add()char sel;don
10、+;coutsn.num;coutsn.name;coutsn.class1;coutsn.chinese;coutsn.math;coutsn.english;coutsel;while(sel=Y | sel=y ); void paixu()int a;couta;switch(a)case 1:int t=0;for(int i=0;isj+1.num) t=sj.num;sj.num=sj+1.num;sj+1.num=t;coutn-i-1;j+)if(sj.sumsj+1.sum)t=sj.sum; sj.sum=sj+1.sum; sj+1.sum=t; coutn-1-i;j+)if(sj.aver()sj+1.aver()t=sj.aver(); sj.aver()=sj+1.aver(); sj+1.aver()=t; couta;void del()int j,i,k;char c10,sel,y;docoutc;for(i=1;iy;if(y=Y|y=y)for(j=i;jsel;while(sel=Y | sel=y );