学生信息管理系统(代码已改).doc

上传人:b****2 文档编号:1261392 上传时间:2022-10-19 格式:DOC 页数:25 大小:293.50KB
下载 相关 举报
学生信息管理系统(代码已改).doc_第1页
第1页 / 共25页
学生信息管理系统(代码已改).doc_第2页
第2页 / 共25页
学生信息管理系统(代码已改).doc_第3页
第3页 / 共25页
学生信息管理系统(代码已改).doc_第4页
第4页 / 共25页
学生信息管理系统(代码已改).doc_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

学生信息管理系统(代码已改).doc

《学生信息管理系统(代码已改).doc》由会员分享,可在线阅读,更多相关《学生信息管理系统(代码已改).doc(25页珍藏版)》请在冰豆网上搜索。

学生信息管理系统(代码已改).doc

计算机科学系

C++课程设计

2013 — 2014学年 第一学期

课程名称C++面向对象程序设计

设计题目学生信息管理系统

学生姓名周慧向静雷娜聂佩

学号44413436

专业班级12级计科二班

指导教师刘灵丽

目录

1.设计任务

1.1题目与要求………………………………………………

(1)

1.2本系统涉及的知识点……………………………………

(2)

2.功能设计

2.1算法设计…………………………………………………(3)

2.2主要模块流程图…………………………………………(5)

3.程序代码设计

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)输出:

相应的学生信息。

    

   根据分工,周慧的主要工作是运算符重载。

   根据分工,向静的主要工作是按成绩排序和按性别输出。

   根据分工,雷娜的主要工作是计算年龄和平均成绩。

  根据分工,聂佩的主要工作是按姓名检索和按学号删除。

22

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所示的菜单,该菜单中每个选项调用一个函数 

请选择科目

请输入选项编号(1~3)

1——数学

2——语文

3——英语

图2成绩排序

   

3、根据所选菜单设计相应的功能函数:

(1)输入函数cin:

利用循环输入的方式,将有关信息存入数组,数组根据实际的人数,采用动态方式建立学生信息。

 

(2)输出函数display():

循环输出数组中的内容。

(3)求平均分函数average:

利用循环方式求得每个学生三科的平均成绩。

按成绩排序

显示所有学生

按学号删除2年级学生

按学号删除1年级学生

按姓名检索

按性别输出

2年级平均成绩

按英语成绩排序

按语文成绩排序

按数学成绩排序

1年级平均成绩

增加2年级学生

增加1年级学生

学生信息管理系统

2.2主要模块流程图

图3学生信息管理系统流程图

3.程序代码设计

3.1输入模块

1.函数原形:

voidgetdata(),intgetage(),

intgetnumber(),stringgetname(),doublegetaverage(),

voidmeum(int&choice)

2.功能:

用来选择菜单和输入相应的学生信息(包括:

学号,姓名,性别,年龄,出生时间,三科成绩,如今年份,平均成绩)

3.变量及类型:

s1[i],s2[i]:

对象数组变量。

4、说明:

执行完输入函数后,会在键盘缓冲区中保存回车键,后面再对字符型变量赋值时,会将缓冲区中的回车键当成数据存入变量中。

 

5、模块代码及其相关注释 

voidgetdata()

{

cout<<"学号姓名性别出生时间如今年份语文数学英语"<

cin>>number>>name>>sex>>year1>>year2>>Chinese>>Math>>English;

age=int(year2-year1);

}

intgetage()

{age=year2-year1;returnage;}

intgetnumber()

{returnnumber;}

stringgetname()

{returnname;}

文件代码分析:

当选择完选项后,系统就会调用相应函数,再输入相应的信息。

3.2输出模块

1.函数原形:

virtualvoiddisplay(),voiddisplay()

2.功能:

用来作为数组的输出,输出学生的信息(包括:

学号,姓名,性别,年龄,出生时间,三科成绩,如今年份,平均成绩)

3.变量及类型:

 int i , j :

循环控制变量。

4.说明:

在进入输出函数后,就会清屏,再在缓冲区域找到相应学生信息管理系统,并输出相应的学生信息。

5、模块代码及其相关注释

virtualvoiddisplay()

{

cout<<"学号姓名年龄性别出生时间如今年份语文

数学英语"<

cout<

<<""<

}

voiddisplay()

{

cout<<"学号姓名年龄性别出生时间如今年份语文数学英语"<

cout<

<

}

代码分析:

virtualvoiddisplay()是一个虚函数,每个派生类中都有voiddisplay()函数,当选择完所需的选项后,就会调用相应的voiddisplay()函数

,输出一年级或者二年级学生的信息。

4.总结

1、程序调试情况

图4主菜单

图5增加学生

图6显示所有学生

图7平均成绩

图8成绩排序

图9删除学生

图10按姓名检索

图11按性别输出

2.本组成员在程序设计中感想

雷娜:

这是我们第二次做课程设计,虽然比第一次多了很多的经验,但是不知道是因为题目比上次要难,还是因为我们对C++的掌握没那么透彻,我们需要不停的翻阅课本,或者从网上查找一些我们在书本上找不到的资料,所以感觉花费的时间比一次还要多。

这次课程设计虽然完成的有点艰辛,但是我觉得自己收获的不少知识,通过这次做课程设计,我发现了自己在C++上的一些问题,对类的继承掌握的不够,对运算符的重载也不是怎么理解,还有就是缺乏刻苦专研的精神,总是遇到一点难题就选择退缩,还有点喜欢拖拖拉拉,总是喜欢把今天的事,拖到明天。

通过这次实验让我知道了,编程需要细心,尤其是那么比较复杂的程序,要想理清自己的思路再做,不能想到哪就做到哪,这样反而会弄巧成拙,只有一步一个脚印,踏踏实实,才能更好地完成任务。

聂佩:

通过这次做课程设计,我发现自己很多的不足,对于书本知识掌握的不够好,特别是继承与派生、虚函数以及运算符重载这部分的内容自己理解得还不够透彻,不能熟练应用,总是要通过不断地翻书,问同学,上网搜等方法去编写程序。

而且在这次课程设计中,我发现自己存在严重的畏难情绪,遇到难题就不去做想放弃,没有去试着解决难题就开始打退堂鼓,而且编程不够耐心与细心。

在编程时只是想到什么就写什么,没有全局思维,总是改了就改。

在这一次编程过程中遇到许多问题,同时也让我们学到了很多,认识到自己的不足之处,从而在以后改正并警醒。

周慧:

相比第一次的课程设计,在此次课程设计中,更加体会到程序的严密性,在查漏补缺的过程中,发现很多细节稍微不注意就可能导致程序出现很大的错误。

而且在设计程序当中方法多种,通过我们小组的每个成员的努力结合大家对自己编程部分的认识,共同解决了程序运行的错误问题。

在小组成员的积极配合中,也让我认识到了程序设计语言往往需要团队精神,而且在诸多问题中,我们还可以通过查阅书籍和上网了解,这样才能更快得学到我们所需要的知识点。

向静:

相比第一次做课程设计有了一

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1