- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中国地质大学(北京)
C++
课 程 班 别 名 : 0401042
任课教师: 陈春丽(主讲教师)
学院 :信息工程学院
学院 :信息工程学院
专业: 电气工程及其自动化
学生姓名 :xxxxxxxx
学号: xxxxxxxxxxxx
C+银序设计结课报告
内容摘要:
C++吾言是从C语言的基础上发展而来的功能齐全、移植性较好、面向对象的
中级程序设计语言。运用以掌握的C+防面的知识,如类、类的继承、类的组合等。
编写一个简单的学校人员信息管理程序,实现一些简单的浏览、增加、查询输出
到文件和其他一些功能。
关键字:
C++吾言 学校人员信息 类 纯虚函数 调试
正文:
需求分析与概要设计:
. 问题简述 :
学校人员信息管理程序,管理学生和教师的基本信息。程序完成功能:
分类浏览 ???(2) 增加 ???? (3) 查询 ???(4) 输出到文件 ( 5)其他
要求:
定义一个学生类 Student 。 需要存储每个学生的姓名、 学号、 性别等信息。 定义教师类 Teacher,
存储每个教师的编号、姓名、性别、职称等信息。定义抽象类 Person ,保存人员的基本信息,如姓
名、性别等。定义一个班级类 Class ,每个学生在一个班级中学习,每个教师负责多个班级的教学辅
导。
2、定义各类的成员函数:分别实现获取、修改信息等相关操作。
3、通过在基类 Person 建立纯虚函数,实现按姓名输出教师或学生的信息。
4、重载流提取运算符,使能对 Student 类的对象进行输出操作。
5、根据需要,适当添加其他必要的数据成员和成员函数,如构造函数、拷贝构造函数、析构函
数、运算符重载,按学号或姓名排序等。
. 问题分析:
由要求可知,设计一个 C++!序,可以实现学校信息的分类浏览、增加、查
询、传输和其他一些功能。为此,可以将程序依据要求划分为为五个功能模块。
分别对应实现教师和学生信息的浏览、增加、查询、输出到文件和其他功能。为
此,可以通过按功能编写代码来实现。
程序类的说明与实现:
由于信息分为学生、教师和班级,所以分别建立 Student 、 Teacher 两个基
本类,来实现信息的输入,处理和调用,由于学生和教师同处于一个班级,所以
再建立一个 Class 类,由 Student 类和 Teacher 类组合而成。
另外,由于可以从学生学生和教师中抽象出身份证号、姓名、年龄、性别、
地址等共同的特性,为此可以在建立一个 Person 类,作为基类,让 Student 、
Teacher、 Class 三个类作为派生类,继承于此基类。
在 Person 类中,需要定义纯虚拟函数 Accept 实现信息输入,并定义其他一
些信息输出函数,如用于实现输出姓名、性别、地址、年龄等等基本信息的函数。
而在 Student 和 Teacher 中则主要定义一些输出学生和教师特有的信息的函
数。由于 Class 类是由学生类和教师类组合而成的,因此,要多定义一个
Postgraduate 类,实现班级信息的输入输出等功能。
模块分析(带核心源代码) :
. 功能一:增加:
int main() {ofstream outObj(SchoolInforSystem.txt);
Person *ptr; // 定义基类指针
ptr.
while(1) {Found: cout 你想往系统写入信息吗? (Y/N)endl;
char c;
cinc;
if(c==N||c==n) { cout 输入系统退出 endl;
break; // 终止程序。
}
else if(c==Y||c==y){}
else {cout 输入有误,请重新输入。 endl;goto Found;}
. 功能二:分类浏览:
Found1: cout 输入 Student 的信息请输入 1;endl; // 分三类,学
生、教师、班级。
cout 输入 Teacher 的信息请输入 2;endl;
cout 输入 Class 的信息请输入 3;endl;
char cc;cincc;
if(cc==1) {// 注意这里的 1 是字符型数据,而不是整型数据
ptr=new Student; //
new指针。
ptr-Accept();ptr-Display();
outObj.write((char*)ptr,sizeof(Student));
delete ptr;}
else if(cc==2)
{ ptr=new Teacher; //
ptr-Accept();ptr-Display();
outObj.write((char*)ptr,sizeof(Teacher));
delete ptr; }
else if(cc==3){
ptr=
原创力文档


文档评论(0)