小型成绩查询系统课程设计报告.docx
《小型成绩查询系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《小型成绩查询系统课程设计报告.docx(9页珍藏版)》请在冰豆网上搜索。
小型成绩查询系统课程设计报告
中南大学
C++课程设计报告
课程名称:
小型学生成绩管理系统
学院:
信息科学与工程学院
专业:
电气信息类
班级:
1206班
姓名:
高峰
指导老师:
王磊
设计日期:
2013年6月24日至2013年7月4日
目录
一.目的与要求
二.设计内容
三.设计过程(含部分代码)
4.测试结果及展示
五.总结及感悟
六.参考资料
1.目的与要求
通过本课程设计的实践,全面总结C++课程学习中的的数据类型、程序结构、数组、函数、指针、结构体、链表等基本概念,掌握其使用方法。
掌握面向对象程序设计中有关类、对象、继承、重载、多态性、输入输出流类体系、文件操作的基本概念,初步学会用类与对象这种面向对象的程序设计方法编写应用程序。
培养使用面向对象的程序设计方法编写计算机程序的能力。
通过设计一个《学生成绩统计管理》,进一步熟悉C++中类的概念、类的封装、继承的实现方式。
了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与VisualC++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。
程序设计是一门实践性很强的课程,必须十分重视实践环节。
许多实际的知识不是靠听课和看书学到的,而是通过长时间的实践积累的。
2.设计内容
(二)小型学生成绩管理系统
1、需要处理的基础数据
✧学生基本信息:
如班级、学号、姓名、性别、年龄、宿舍号码、电话号码等。
✧学生选修课程的基本信息:
课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。
2、系统的基本功能
✧数据的录入:
如录入学生的基本信息,以及该学生选修课程的基本信息;
✧数据的修改:
如修改指定学号、或者指定姓名的学生信息,或者修改其选修课程信息;
✧数据的插入:
插入某个学生信息;
✧数据的查询:
如按学号查询、按姓名查询等;
✧数据的删除:
如删除指定学号、或者指定姓名的学生及其选修课程信息;
✧平均成绩的计算:
计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出学生信息;
✧列出不及格学生清单(学号、姓名、不及格的课程和成绩)。
✧考虑用文件把数据保存起来(可选)。
三.设计思想
✧为满足课程设计,我把此设计分成两个类,一个是学生信息类,它包含了班级、学号、姓名、性别、年龄、宿舍号码、电话号码等。
另一个类是课程信息类,它包含了课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。
而且,在学生类中引用了课程信息类。
也可以说,课程信息类是学生类的一个子类。
除此之外,为了实现管理系统的功能,还构造了许多的函数,例如,录入学生信息函数(voidInput(Stustud[]))、插入学生信息函数(voidInsert(Stustud[]))、修改学生信息函数(voidModify(Stustud[]))、查找学生信息函数(voidLookup(Stustud[]))等等(函数在以后的分析中将详细解释)
类展示:
学生类:
各个函数的解释说明:
.功能函数:
Input(Stustud[])
输入学生信息
Statistic(Stustud[])
学生信息输出
Lookup(Stustud[])
查找学生信息
Modify(Stustud[])
修改学生信息
Delete(Stustud[])
删除学生信息
Output(Stustud[])
输出全部信息
Sort(Stustud[])
对学生进行排序
Insert(Stustud[])
插入学生信息
Showfail(Stustud[])
查找不及格学生
Write(Stustud[])
文件写入函数
Read(Stustud[])
文件读取函数
voidmenu()
菜单函数,以供选择
以上每一个函数的形参都是一个类对象,因为是共有类的友元函数,故可以访问类的数据成员。
四.调试结果及展示
菜单函数,给出9个选择,每一个选择对应至少一个函数进行相应的目的执行。
学生信息的录入,选修课数目可以随意选择。
而且学生数目也可随着自己的选择而定。
统计数据,显示录入学生的信息与他的选修课的信息,并包含了不及格学生的清单表。
这里统计函数中用一个if语句,一起将不及格学生的清单打印出来。
if(stud[i].averageScore<60.0)
{
cout<<"不及格学生清单:
"<for(inti=0;i{
stud[i].printInfo();//学生信息打印函数。
}
}
查找函数,可以按学号或者姓名查找。
而且修改选择,与查找基本上是一样的。
下面一个是删除函数,先用一个判断去查找学生信息,然后将它删掉。
增加函数,无非是一个增加的设置,也可以说就是一个简单的录入函数。
最后加了一个判断的选择,与是否保存一样的功能。
while(s!
='n'&&s!
='N')
{
stud[size].setStudInfo();
size++;
cout<<"=====>提示:
插入成功!
"<cout<<"是否继续输入(y/n)"<cin>>s;
}
5.总结及感悟
这两周的C++课程设计,时间上说长不长,说短也不短,却让我学到了很多,第一点就是:
C++很难,似乎是学不完的,你觉得自己了解一点,是总会发现还有很多自己所不懂的东西,还有很多自己所没探知的领域,很多知识运用到实践中很有一定的难度,看着自己和同学的程序运行结果,突然发现C++真的很神奇,居然能运行出那么漂亮的系统,看着运行结果。
在我们上机调试程序的过程中,我遇到了很多的问题,说实话这次课程设计自己感觉真的好难,自己设计是总是觉得没有头绪,无从下手,幸亏有老师和同学们的帮助。
看到同学认真看程序的样子,还有修改程序时的熟练,我很羡慕他,我想,我也要将C++学好,在将来能为我的就业加分。
在这期末考试前期,学院给我们安排的课程设计周,总让我们觉的有些为难我们,这样一个复杂困难而又繁琐的作业,似乎弄得我们既没有时间也没有心情复习,我曾一度地抱怨过学院,在完成它之后,我发现我错了,课程设计不仅让我们巩固了所学的知识,还使得我们学习到了更多平时所忽略的,最重要的是,它磨砺了我们,让我们在大学的下一个阶段能更好的成长。
六.参考资料
1.c++从入门到精通李伟明侯春多编著清华大学出版社
2.c++程序设计教程钱能编著清华大学出版社
3.c++程序设计刘娜娜迟立颖张光妲陈淑鑫刘恩军张景林北京航空大学出版社