利用继承性与派生类管理学生教师档案_第1页
利用继承性与派生类管理学生教师档案_第2页
利用继承性与派生类管理学生教师档案_第3页
利用继承性与派生类管理学生教师档案_第4页
利用继承性与派生类管理学生教师档案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、«利用继承性与派生类管理学生教师档案C+课程设计报告专 业:电子信息工程班 级:2007级 (2)班学 号:2007082061姓 名:陈 苏 远指导教师:常耀辉OO八年六月二七日利用继承性和派生性管理学生教师系统目 录一. 设计要求 .2二. 设计目的 2三. 总体设计和详细设计 2四. 调试与测试 .4五. 源程序清单和执行结果5六. 总结 .6第8页(共7页)一.设计要求利用继承性与派生类来管理学生教师档案:由person (人员)类出发(作为基类),派生出student (学生)及teacher (教师)类;而后又由student (学生)类出发(作为基 类),派生出grad

2、uatestudent (研究生)类。可假定这几个类各自具有的数据成员为: person (人员)类:姓名、性别、年龄;student (学生)类:姓名、性别、年龄、学号、系别; teacher (教师)类:姓名、性别、年龄、职称、担任课程; graduatestudent (研究生)类:姓名、性别、年龄、学号、系别、导师。为简化起见,每 个类可只设立构造函数以及显示类对象数据的成员函数print 。而后编制简单的主函数,说明上述有关的类对象,并对其类成员函数进行简单使用(调用)。二. 设计目的:大的方面是通过完成一些具有一定难度的课程设计题目的编写、调试、运行工作,实现一个小型系统的设计与开

3、发。进一步掌握面向过程和面向对象程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实际相结合。 从而提高自我分析问题、 解决问题的能力。具体是利用继承和派生的方法,完成一个管理学生教师档案的小系统,对已学的C + +知识的加强,特别是对继承和派生等知识的再现和巩固。三. 总体设计和详细设计:由基类person出发,派生出student类和teacher类;而后又由student类出发(再作为基类),派生出graduatestudent类。派生类的构造函数通过初始化表来负责基类的初始化。四个有关类的程序“构架”如下:class Person (public:Person (string n

4、am, char s, int a) (name=nam; sex=s; age=a; void print() ( protected:;构造函数负责显示Person类对象的有关数据/保护成员class Teacher:public Person (public:构造函数保护成员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() ( protecte

5、d:;负责显示构造函数Student类对象的有关数据/保护成员Teacher(string nam,char s,int a,string t,string c) :Person(nam,s,a) (title=t; course=c;void print() (-负责显示Teacher类对象的有关数据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),profe

6、ssor(pro)(初始化表void print() (负责显示 Graduate类对象的有关数据private:私有部分;可使用如下的主函数对所定义的各个类进行使用:int main()(Person persl("Wang-li”,'f,20);persl.print();输出人员有关数据cout<<endl;Student studl("Li-li”,'f,20,2007082061,"English");studl.print();/隔出学生有关数据cout<<endl;Teacher teach(&quo

7、t;Zhang-li",'m',40,"assistant","Math");teach.print();输出教师有关数据cout<<endl;Graduate gradl("Wang-li”,'f,30,20080808,"English”,"yuanlongping");gradl.print();输出研究生有关数据cout<<endl;return 0;各类之间的结构关系如下图所示:四. 调试与测试:1. 调试方法:因为涉及多层基累和派生类问题,所以应

8、采用逐类调试的方法进行局部调试,具体说就是先调试好一个类后,将其掩盖,再进行下个类的调试,直到 程序正常运行为止。2. 测试过程中遇到的主要问题:考虑到多层继承, 误以为会出现二义性, 而实际上本体并不会存在二义性的问题。五. 源程序清单和执行结果:各函数功能说明:#include <iostream>#include <string>using namespace std;/声明基类Personclass Person(public:Person (string nam, char s, int a) (name=nam;sex=s;age=a;void print(

9、)(cout<<"name:"<<name<<endl;cout<<"sex:"<<sex<<endl;cout<<"age:"<<age<<endl;protected:string name;char sex;int age;构造函数/姓名性别/年龄负责显示Person类对象的有关数据保护成员/声明Person的直接派生类Teacherclass Teacher:public Person(public:Teacher(st

10、ring nam,char s,int a,string t,string c):Person(nam,s,a)(title=t;course=c;void print()类对象的有关数据(cout<<"name:"<<name<<endl;cout<<"sex:"<<sex<<endl;cout<<"age:"<<age<<endl;cout<<"title:"<<title<

11、<endl;cout<<"course:"<<course<<endl;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)构造函数构造函数/职称担任课程负责显示Teacher保护成员学号系别负责显示Student类保护成员(number=num;departme

12、nt=depa;void print()对象的有关数据cout<<"name:"<<name<<endl;cout<<"sex:"<<sex<<endl;cout<<"age:"<<age<<endl;cout<<"number:"<<number<<endl;cout<<"department:"<<department<

13、<endl; 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类对象的有关数据cout<<"name:"<<name<<endl;cout<<&qu

14、ot;sex:"<<sex<<endl;cout<<"age:"<<age<<endl;cout<<"number:"<<number<<endl;cout<<"department:"<<department<<endl;cout<<"professor:"<<professor<<endl;private:私有部分string prof

15、essor;导师;/主函数int main()cout<<"I*"<<endl;cout<<"*欢迎您来到学生教师档案查询系统*"<<endl;cout<<"*"<<endl;int a;int i,j;Person persl("Wang-li”,'f,20);Student studl("Li-li”,T,20,2007082061,"English");Teacher teach("Zhang-li”

16、,'m',40,"assistant”,"Math");Graduate gradl("Wang-li”,'f,30,20080808,"English”,"yuanlongping");cout<<endl;loop:cout<<"输入您要查找的对象:"<<endl<<endl<<"1,人员;2,学生;3,教师;4,研究生。"<<endl;(cin>>a;if(a=1)persl.print();else if(a=2)studl.print();else if(a=3)teach.print();else gradl.print();cout<<”请问您还要继续查吗?1.yes 2.no"<<endl;cin>>j;if(j=1)goto loop;else exit(0);return 0;运行结果如下:name:Wang-liagename:Li-1isex:fagenumber:2007082061 departmentEnglishnanie : Zhang-lisex :mag

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论