学生信息管理系统代码已改Word文档下载推荐.docx
《学生信息管理系统代码已改Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统代码已改Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
![学生信息管理系统代码已改Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-10/8/71ec2448-2779-4153-88b0-635b40f5803b/71ec2448-2779-4153-88b0-635b40f5803b1.gif)
3.1输入模块…………………………………………………(6)
3.2输出模块…………………………………………………(7)
4.总结……………………………………………………………(8)
参考文献………………………………………………………(12)
附录……………………………………………………………(13)
1设计任务书
1.1 题目与要求
本组计划(成员为:
周慧,向静,雷娜,聂佩合作)编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。
具体要求如下:
(1)建立学生信息数据,包括学号、姓名、性别、三科成绩、出生时间、年龄(必须计算得到)。
(2)使用继承的方法构造至少3个类,(即学生类——虚基类,一年级学生和二年级学生类——派生类)使用相应的对象放置10个学生信息。
(3)编写同名display()成员函数,用来输出数组的内容。
(4)按不同类别输出学生信息,比如按性别。
(可选功能)
(5)要求对“<<”和“>>”运算符进行重载。
考虑到输人学号时,也会因不小心引人空格,而且名字中也需要有空格,所以重载“>>’’运算符时,需要满足这个要求。
(6)抽取并计算学生的平均成绩。
(7)按照至少一科成绩进行排序。
(8)检索(查找)指定信息。
(如按姓名检索)
(9)参考界面如下:
*****************************
学生信息管理
*增加学生
*显示全部学生
*计算平均成绩
*删除一个学生
*按年级输出学生信息
*按性别输出学生信息
*按姓名检索学生
*结束程序运行
(10)输出:
相应的学生信息。
根据分工,周慧的主要工作是运算符重载。
根据分工,向静的主要工作是按成绩排序和按性别输出。
根据分工,雷娜的主要工作是计算年龄和平均成绩。
根据分工,聂佩的主要工作是按姓名检索和按学号删除。
l.2 本系统涉及的知识点
类、数组、循环、函数、分支、指针。
利用虚函数由学生类派生出大一学生,大二学生这两个类。
同名的display()函数,用来作为数组的输出。
“>
>
”和“<
<
”运算符的重载,目的是为了避免输人学号时,因不小心引人空格,还有就是名字中也需要有空格。
利用for语句进行按某一要求的排名,修改学生的相关信息,及求取学生的平均成绩。
2功能设计
2.1算法设计
1、本系统需要实现的功能要求:
(1)利用switch语句设计如图1所示的主菜单:
请输入选项编号(0~11)
1—增加一位一年级学生
2—增加一位二年级学生
3—显示所有学生
4—计算一年级学生平均成绩
5-计算二年级学生平均成绩
6—按成绩排序一年级学生的信息
7—按成绩排序二年级学生的信息
8—删除一年级学生的学号
9—删除二年级学生的学号
10-按性别输出
11-按姓名检索
0-结束程序运行
图1学生通讯录系统主菜单
(2)选择6或者7后,调用排序函数,进入函数后利用switch语句实现一个如图2所示的菜单,该菜单中每个选项调用一个函数
图2成绩排序
3、根据所选菜单设计相应的功能函数:
(1)输入函数cin:
利用循环输入的方式,将有关信息存入数组,数组根据实际的人数,采用动态方式建立学生信息。
(2)输出函数display():
循环输出数组中的内容。
(3)求平均分函数average:
利用循环方式求得每个学生三科的平均成绩。
2.2主要模块流程图
图3学生信息管理系统流程图
3.1输入模块
1.函数原形:
voidgetdata(),intgetage(),
intgetnumber(),stringgetname(),doublegetaverage(),
voidmeum(int&
choice)
2.功能:
用来选择菜单和输入相应的学生信息(包括:
学号,姓名,性别,年龄,出生时间,三科成绩,如今年份,平均成绩)
3.变量及类型:
s1[i],s2[i]:
对象数组变量。
4、说明:
执行完输入函数后,会在键盘缓冲区中保存回车键,后面再对字符型变量赋值时,会将缓冲区中的回车键当成数据存入变量中。
5、模块代码及其相关注释
voidgetdata()
{
cout<
"
学号姓名性别出生时间如今年份语文数学英语"
endl;
cin>
number>
name>
sex>
year1>
year2>
Chinese>
Math>
English;
age=int(year2-year1);
}
intgetage()
{age=year2-year1;
returnage;
intgetnumber()
{returnnumber;
stringgetname()
{returnname;
文件代码分析:
当选择完选项后,系统就会调用相应函数,再输入相应的信息。
3.2输出模块
virtualvoiddisplay(),voiddisplay()
用来作为数组的输出,输出学生的信息(包括:
int
i
j
:
循环控制变量。
4.说明:
在进入输出函数后,就会清屏,再在缓冲区域找到相应学生信息管理系统,并输出相应的学生信息。
5、模块代码及其相关注释
virtualvoiddisplay()
{
cout<
学号姓名年龄性别出生时间如今年份语文
数学英语"
number<
"
name<
age<
sex<
year1
year2<
Chinese<
Math<
English<
}
voiddisplay()
学号姓名年龄性别出生时间如今年份语文数学英语"
year1<
<
代码分析:
virtualvoiddisplay()是一个虚函数,每个派生类中都有voiddisplay()函数,当选择完所需的选项后,就会调用相应的voiddisplay()函数
,输出一年级或者二年级学生的信息。
4.总结
1、程序调试情况
图4主菜单
图5增加学生
图6显示所有学生
图7平均成绩
图8成绩排序
图9删除学生
图10按姓名检索
图11按性别输出
2.本组成员在程序设计中感想
雷娜:
这是我们第二次做课程设计,虽然比第一次多了很多的经验,但是不知道是因为题目比上次要难,还是因为我们对C++的掌握没那么透彻,我们需要不停的翻阅课本,或者从网上查找一些我们在书本上找不到的资料,所以感觉花费的时间比一次还要多。
这次课程设计虽然完成的有点艰辛,但是我觉得自己收获的不少知识,通过这次做课程设计,我发现了自己在C++上的一些问题,对类的继承掌握的不够,对运算符的重载也不是怎么理解,还有就是缺乏刻苦专研的精神,总是遇到一点难题就选择退缩,还有点喜欢拖拖拉拉,总是喜欢把今天的事,拖到明天。
通过这次实验让我知道了,编程需要细心,尤其是那么比较复杂的程序,要想理清自己的思路再做,不能想到哪就做到哪,这样反而会弄巧成拙,只有一步一个脚印,踏踏实实,才能更好地完成任务。
聂佩:
通过这次做课程设计,我发现自己很多的不足,对于书本知识掌握的不够好,特别是继承与派生、虚函数以及运算符重载这部分的内容自己理解得还不够透彻,不能熟练应用,总是要通过不断地翻书,问同学,上网搜等方法去编写程序。
而且在这次课程设计中,我发现自己存在严重的畏难情绪,遇到难题就不去做想放弃,没有去试着解决难题就开始打退堂鼓,而且编程不够耐心与细心。
在编程时只是想到什么就写什么,没有全局思维,总是改了就改。
在这一次编程过程中遇到许多问题,同时也让我们学到了很多,认识到自己的不足之处,从而在以后改正并警醒。
周慧:
相比第一次的课程设计,在此次课程设计中,更加体会到程序的严密性,在查漏补缺的过程中,发现很多细节稍微不注意就可能导致程序出现很大的错误。
而且在设计程序当中方法多种,通过我们小组的每个成员的努力结合大家对自己编程部分的认识,共同解决了程序运行的错误问题。
在小组成员的积极配合中,也让我认识到了程序设计语言往往需要团队精神,而且在诸多问题中,我们还可以通过查阅书籍和上网了解,这样才能更快得学到我们所需要的知识点。
向静:
相比第一次做课程设计有了一点经验,但是还是手忙脚乱的,其中也遇到很多的问题。
这次课程设计相比上次来说好多了,上次的课程设计很多方面的只是都是在XX或者问别人才了解,但是这次所涉及的只是都是书上的知识点,如:
继承、虚函数、虚基类等。
不过由于自己对知识点掌握的不牢固,总是需要翻教科书才能继续下去,最后在我们组成员的共同努力下才完成这次设计。
通过做课程设计,让我知道:
我们做事情首先要打好基础,只有打好基础才能进一步巩固,而书上的知识是我们学习的最基本的东西。
参考文献
【1】陈维兴林小茶,《C++面向对象程序设计》(第二版),中国铁道出版社
【2】陈维兴林小茶,《C++面向对象程序设计习题解答与上机指导》(第二版),中国铁道出版社
附录
#include<
iostream>
string>
usingnamespacestd;
classstudent{
public:
virtualvoiddisplay()
<
intnumber,year1,year2,age;
doubleChinese,Math,English,sum,average;
stringname;
stringsex;
friendostream&
operator<
(o