已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用继承性和派生性管理学生教师系统利用继承性与派生类管理学生教师档案C+课程设计报告专 业: 电子信息工程 班 级: 2007级 (2)班 学 号: 2007082061 姓 名: 陈 苏 远 指导教师: 常 耀 辉 二OO八年六月二七日目 录一. 设计要求. 2二. 设计目的. 2三. 总体设计和详细设计. 2四. 调试与测试.4五. 源程序清单和执行结果. 5六. 总结. 6一.设计要求利用继承性与派生类来管理学生教师档案:由person(人员)类出发(作为基类),派生出student(学生)及teacher(教师)类;而后又由student(学生)类出发(作为基类),派生出graduateStudent(研究生)类。可假定这几个类各自具有的数据成员为:person(人员)类: 姓名、性别、年龄;student(学生)类:姓名、性别、年龄、学号、系别;teacher(教师)类:姓名、性别、年龄、职称、担任课程;graduateStudent(研究生)类:姓名、性别、年龄、学号、系别、导师。为简化起见,每个类可只设立构造函数以及显示类对象数据的成员函数print。而后编制简单的主函数,说明上述有关的类对象,并对其类成员函数进行简单使用(调用)。二. 设计目的:大的方面是通过完成一些具有一定难度的课程设计题目的编写、调试、运行工作,实现一个小型系统的设计与开发。进一步掌握面向过程和面向对象程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实际相结合。从而提高自我分析问题、解决问题的能力。具体是利用继承和派生的方法,完成一个管理学生教师档案的小系统,对已学的知识的加强,特别是对继承和派生等知识的再现和巩固。三. 总体设计和详细设计:由基类person出发,派生出student类和teacher类;而后又由student类出发(再作为基类),派生出graduateStudent类。派生类的构造函数通过初始化表来负责基类的初始化。四个有关类的程序“构架”如下:class Person public: Person (string nam, char s, int a) /构造函数name=nam; sex=s; age=a; void print() /负责显示Person类对象的有关数据protected: /保护成员 ;class Teacher:public Person public: Teacher(string nam,char s,int a,string t,string c) :Person(nam,s,a) /构造函数 title=t; course=c; void print() /负责显示Teacher类对象的有关数据protected: /保护成员 ;class Student:public Person public: Student (string nam,char s,int a,int num,string depa) /构造函数 :Person(nam,s,a) number=num; department=depa; void print() /负责显示Student类对象的有关数据 protected: /保护成员 ;class Graduate:public Student public: Graduate(string nam,char s,int a,int num,string depa,string pro) /构造函数 :Student(nam,s,a,num,depa),professor(pro) /初始化表void print() /负责显示Graduate类对象的有关数据 private: /私有部分 ;可使用如下的主函数对所定义的各个类进行使用:int main() Person persl(Wang-li,f,20);persl.print(); /输出人员有关数据coutendl;Student studl(Li-li,f,20,2007082061,English);studl.print(); /输出学生有关数据 coutendl;Teacher teach(Zhang-li,m,40,assistant,Math);teach.print(); /输出教师有关数据 coutendl;Graduate gradl(Wang-li,f,30,20080808,English,yuanlongping);gradl.print(); /输出研究生有关数据 coutendl;return 0;各类之间的结构关系如下图所示:四. 调试与测试:1. 调试方法:因为涉及多层基累和派生类问题,所以应采用逐类调试的方法进行局部调试,具体说就是先调试好一个类后,将其掩盖,再进行下个类的调试,直到程序正常运行为止。2. 测试过程中遇到的主要问题:考虑到多层继承,误以为会出现二义性,而实际上本体并不会存在二义性的问题。五. 源程序清单和执行结果:各函数功能说明: #include #include using namespace std;/声明基类Personclass Person public: Person (string nam, char s, int a) /构造函数name=nam; /姓名sex=s; /性别 age=a; /年龄 void print() /负责显示Person类对象的有关数据 coutname:nameendl; coutsex:sexendl; coutage:ageendl; protected: /保护成员 string name; char sex; int age;/声明Person的直接派生类Teacherclass Teacher:public Person public: Teacher(string nam,char s,int a,string t,string c) /构造函数:Person(nam,s,a) title=t; /职称course=c; /担任课程 void print() /负责显示Teacher类对象的有关数据coutname:nameendl; coutsex:sexendl; coutage:ageendl; couttitle:titleendl; coutcourse:courseendl; protected: /保护成员 string title; string course;/声明Person的直接派生类Studentclass Student:public Person public: Student (string nam,char s,int a,int num,string depa) /构造函数 :Person(nam,s,a) number=num; /学号 department=depa; /系别 void print() /负责显示Student类对象的有关数据 coutname:nameendl; coutsex:sexendl; coutage:ageendl; coutnumber:numberendl; coutdepartment:departmentendl; protected: /保护成员 int number; string department;class Graduate:public Student public: Graduate(string nam,char s,int a,int num,string depa,string pro) /构造函数 :Student(nam,s,a,num,depa),professor(pro) /初始化表 void print() /负责显示Graduate类对象的有关数据 coutname:nameendl; coutsex:sexendl; coutage:ageendl; coutnumber:numberendl; coutdepartment:departmentendl; coutprofessor:professorendl; private: /私有部分 string professor; /导师;/主函数int main() cout*endl; cout*欢迎您来到学生教师档案查询系统*endl; cout*endl;int a;int i,j;Person persl(Wang-li,f,20);Student studl(Li-li,f,20,2007082061,English);Teacher teach(Zhang-li,m,40,assistant,Math);Graduate gradl(Wang-li,f,30,20080808,English,yuanlongping);coutendl;loop:cout输入您要查找的对象:endlendl1,人员;2,学生;3,教师;4,研究生。a;if(a=1)persl.print();else if(a=2)studl.print();else if(a=3)teach.print();else gradl.print();cou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商贸城店面经营权转让合同(2024年版)3篇
- 2024年科研用器械试用合同3篇
- 2024年版二手车位买卖合同的环保评估服务合同2篇
- 2024年标准版:股东间股权转让合同2篇
- 2024年赡养费支付义务协议2篇
- 2024年智能汽车技术购销合同2篇
- 2024年人力资源服务合同标的:服务内容、服务期限、服务人员资质2篇
- 2024年林地养殖特许经营权协议2篇
- 北师大版二年级数学上册《复习》(大单元教学设计)
- 2024年版:农村机井建设与维护承包合同模板
- 专题04故障电路2023年中考一模分类汇编(上海)
- 【大单元教学】湘教版地理八上第四章《中国的主要产业》第三节 单元整体核心素养教学设计
- 2024年江苏省中考英语试卷十一套合卷附答案
- 患者发生消化道大出血的应急演练
- 人工智能(AI)行业的消费市场分析
- 医疗废物暂存间消毒制度
- 二十四节气之冬至节气主题班会课件
- 2024-2030年中国瑶族药浴行业前景调研与投资价值评估分析报告
- 2024至2030年中国越野轮胎起重机行业发展预测及投资策略报告
- 高性能NAS典型创新应用报告 2024
- 中国光芯片行业市场发展态势及投资前景研判报告
评论
0/150
提交评论