ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:229.22KB ,
资源ID:16690135      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16690135.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++学生信息管理系统设计报告Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++学生信息管理系统设计报告Word文件下载.docx

1、endl; coutco; if(co=code)goto lab2; elseif(s=4)cout已登录三次,请退出! return 0;elsegoto lab1; 2.在输入事先设定的密码,经检查正确,就到了主菜单界面,如下列图;功能选择通过管理员输入数字,使用switch语句来判断接收,从而能够进入各个子菜单。图2.1 主菜单图lab2:system(ttt*欢送使用学生信息管理系统*1.录入信息2.显示全部学生3.计算平均成绩4.删除一个学生5.按年级输出学生信息6.按性别输出学生信息7.按XX检索学生8.按总分排序9.完毕程序运行endl coutgetin;switch(get

2、in)注:lab2是一个标签,能通过之后的goto lab2从各级子菜单快速地跳转回来。3.case1是录入信息菜单,pi是存储学生信息的数组对象,同样通过switch语句判断选择,可以不限次地分别录入一、二年级的学生信息,完成后自动保存并返回主菜单。这里用类类型的指针变量指向已存在的最后一个记录,追加到最后一个记录后面,然后通过指针指向对象的成员函数set()从键盘上输入信息,用new开辟一段空间以存放该类型的对象,而统计创立的对象个数的变量i那么进展自加运算,最后指针指回头结点。增加学生信息,界面如下:case 1:/录入信息lab3:1.录入一年级生信息2.录入二年级生信息3.返回上一级

3、菜单请输入您的选择:c1;switch(c1)case 1:pi=new Student1;pi-set();i+;goto lab3;case 2:pi=new Student2; default:goto lab2;break;图2.2 录入信息2图5case2为显示信息菜单,先通过for循环语句并利用类指针,从类数组第一个对象开场调用display()来显示,直到全部学生显示完毕,最后指针指回头结点,停顿操作并返回主菜单。/显示全部信息学生信息n学号 XX 性别(male/female) 语文 英语 数学 年nfor(j=0;jdisplay();nn输入任意数字返回主菜单:c2;swi

4、tch(c2)case 3:default: goto lab2图2.3 信息显示图6case3计算平均成绩,输入需查询学生的学号,在for循环中用if语句及指针来搜寻与之匹配的信息,如果存在那么通过函数getsum()取总成绩,再计算出平均成绩并用指针pj-display()输出,否那么给出错误提示信息并返回主菜单返回主菜单后。/计算平均成绩lab4:ttt*计算平均成绩*请输入学生学号: int xh;xh; for(j=0;if(pj-getnum()=xh) double sum,ave; sum=pj-getsum(); ave=sum/3;学号 XX 语文 英语 数学 平均成绩pj

5、-getnum() getname()getch()geten()getma()avegetnum()=xuehao) for(int del=j;deldel+)pdel=pdel+1; i-; n成功删除!nc3;switch(c3) goto lab2;图2.5 删除信息1图8case5是按年级输出学生,管理员选择所需年级后,用指针变量pj定位在年级号id所匹配的第一个对象处,接着执行display函数显示信息,j+后继续查找,用ji保证指针不超出围i作为变量统计学生录入个数。case 5:/按年级输出学生信息ttt*按年级输出学生信息* 1.按一年级生输出学生信息2.按二年级生输出学生

6、信息请输入您的选择:c5;switch(c5)学号 XX 性别 语文 英语 数学 年龄getid()=1) cout switch(c5) case 1: coutgetname()=xingm存放输入XX的变量查找配对的对象,如果if语句返回真值那么执行display函数,接着switch接收任何数字返回主菜单,最后指针指向头结点。case 7:请输入学生的XX:xingm;getname()=xingm) pj-c7; switch(c7) case 1:11case8按总分升序排序,使用for循环用指针变量pci指向对象的成员函数getsum()取总分,将第一个对象依次和其他对象的比拟,

7、假设前者总分大于后者,那么通过两个中间变量htp和ztp把二者的学号与总分对换,以此类推直到排序完成。接着用haoj、zongj输出信息。case 8:/按总分排序 int ci;for(ci=0;cigetnum();zongci=pci-for(n=0;nn+)for(m=n+1;mzongm) htp=haom;haom=haon;haon=htp;ztp=zongm;zongm=zongn;zongn=ztp; ttt*按总分排序* 学生学号 总分nhaojzongjc8; switch(c8)图2.8 总分排序图12case9退出程序,用system(cls)清屏,break语句跳出

8、。至此整个程序运行即switch语句完毕。最后,由于main函数定义为int型,要记得加上return 0语句。而程序中使用了输入输出流iostream、string类型等,头文件应该包括:#includestringfstreamconio.hwindows.husing namespace std;这其中每个case后要加上break语句以便终止switch语句的执行,另外在一些经常需要跳转到的地方如主菜单处设为标签lab,之后使用goto语句即可跳转至此处。3.各模块功能及主要模块的流程图3.1 各模块功能 1.整个程序中构造了一个学生基类,它应该包括学生的共有属性,而两个年级学生作为派

9、生类,可以从基类中继承共有的成员,并在此根底上增加了年级的特性。其中学生基类中的函数如表1:表3.1 基类模块表Studentgetid()取年级号,用于识别一二年级set()在派生类中调用,录入信息display()在派生类中调用,显示信息getnum()取学号getname()取XXgetsum()取成绩总分getsex()取性别getch()取语文成绩geten()取英语成绩getma()取数学成绩getborth()取出生时间该程序采用的是类类型来处理学生的所有根本信息。通过对设计要求的分析构造基类Student,信息中应包含的学号、XX、性别等就作为数据成员,而派生类一二年级学生继承

10、了基类的一些属性,如XX、学号等,但由于所处的年级不同,需要增加id号来识别年级。而且它应该根据选择自动生成,不需要人为的录入。所以getid()、set()、display()三个函数分别加上关键字virtual,使其成为纯虚函数,留待派生类定义调用同名函数却能实现不同的功能,这就表达了C+的多态性,既用不着重载函数,也能通过指针去调用派生类对象中的成员函数。另外增加构造函数Student(),并对其数据成员进展赋初值,但id不用赋值,留待派生类分别进展定义。而其余的8个函数那么是用来取对象的数据。class Studentpublic:int id;/一二年级识别int num;strin

11、g name;string sex;double ch,en,ma;/成绩int borth;int age; Student(); virtual int getid()=0; virtual void set()=0;/纯虚函数,在派生类中调用 virtual void display()=0;int getnum();/取学号string getname();/取XX double getsum();/取总成绩 string getsex();/取性别 double getch();/取各科成绩 double geten(); double getma(); int getborth()

12、;Student:Student()/基类构造num=0; name=No name ch=0;en=0;ma=0; borth=1900;int Student:getnum()/取学号return num;string Student:return name;return sex;double Student:return ch+en+ma;return ch;return en;return ma;return borth;2.而在派生类中我分别定义了五个函数,主要是要表达录入、显示功能和重载,模块如表3.2:表3.2 学生1类模块表Student1取id=1,为一年级学生 set()录

13、入一年级学生信息显示一年级学生信息ostream& operator(istream&一年级学生类中重载输入符表3.3 学生2类模块表Student2取id=2,为二年级学生录入二年级学生信息 display()显示二年级学生信息,Student2&二年级学生类中重载输出符二年级学生类中重载输入符两个派生类需采用公用派生,这样便于调用基类中的函数,以及为当中的重载输入输出符的友元函数做准备。前三个函数分别调用了基类中的纯虚函数,并加以定义。首先在派生类的构造函数Student1()中定义id为1,二年级类Student2的为2,通过函数getid()取值;其次函数set()、display()

14、实现了录入和显示的功能。后两个函数是对输入输出符的重载作为友元函数,这是因为在输入信息时,会不小心引入或者需要有空格,重载就是要允许空格的存在,添加记录时使用。Student1代码如下:class Student1:public Student /一年级学生类/一年级生识别Student1();/Student1构造int getid();void set();void display();friend ostream&friend istream&void Student1:set() /录入信息函数输入一年级生信息n学号 XX 性别(male/female) 语文 英语 数学 出生年nnu

15、mnamesex chenmaborth;Student1:Student1()/Student1构造id=1;int Student1:return id;display()/显示信息n一年级生:idnumnamesexchenma2009-borth/一年级生类中重载输入输出符 out, Student1& stu)outstu.idstu.numstu.namestu.sexstu.chstu.enstu.mastu.agestu.numstu.namestu.sexstu.chstu.enstu.mastu.borth; return in;3.2 主要流程图1程序运行,管理员进入登录界面,需输入密码。后台通过其密码与数据库中的比拟,通过验证前方可进入主菜单界面,否那么重新输入,共有三次时机,之后完毕程序。流程图如下所示:2当从主菜单中选择要进展的操作后,分别进入子界面,比方录入信息界面,操作流程图如下所示:4.软件调试分析4.1 错误分析整个的代码编写和程序运行的过程中,我遇到了很多困难,一开场会心烦气躁,不想往下写。但在调试解决了一个个错误之后,我学习到很多东西。主要出现的错误如下:1起初对派生类的概念没有搞

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

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