利用继承与派生类管理学生教师档案.doc_第1页
利用继承与派生类管理学生教师档案.doc_第2页
利用继承与派生类管理学生教师档案.doc_第3页
利用继承与派生类管理学生教师档案.doc_第4页
利用继承与派生类管理学生教师档案.doc_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论