西安交大C++程序设计第九章作业

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安交通大学实验报告

课程__计算机程序设计__实验名称__继承__第 1 页共页

系别____ ______ 实验日期 2014 年 5 月日

专业班级__ ___组别_____________ 实验报告日期 2014 年月日

姓名___ ______学号_ _ 报告退发 ( 订正、重做 ) 同组人_________________________________ 教师审批签字

一、实验目的

熟练继承的用法,进一步训练类的编程,并练习不同继承方式下对基类的成员的访问的控制。

二、实验内容

(一)第一题:从类Person中派生出一个教师类,新增的属性有:专业、职称和主讲课程(一门),并为这些属性定义相应的方法。

1.源程序代码:

#include

using namespace std;

class Person

{

protected:

char *Name;

char Sex;

int Age;

public:

Person()

{

Name="csj";

Sex='M';

Age=18;

}

Person(char *name,char sex,int age)

{

Register(name,sex,age);

}

~Person()

{

delete []Name;

}

void Register(char *name,char sex,int age)

{

int m=strlen(name);

Name=new char[m+1];

strcpy(Name,name);

Sex=sex;;

Age=age;

}

void print()

{

cout<<"姓名:"<

}

};

class Teacher:public Person

{

protected:

char *zhuanye;

char *zhicheng;

char *course;

public:

Teacher();

Teacher(char*,char,int,char*,char*,char*);

void Register(char*,char,int,char*,char*,char*);

~Teacher();

void print();

};

Teacher::Teacher()

{

Person::Register("罗先觉",'M',61);

strcpy(zhuanye,"电气工程及其自动化");

strcpy(zhicheng,"教授");

strcpy(course,"电路");

}

Teacher::Teacher(char *name,char sex,int age,char *zy,char *zc,char *cor)

{

Register(name,sex,age,zy,zc,cor);

}

void Teacher::Register(char *name,char sex,int age,char *zy,char

*zc,char *cor)

{

Person::Register(name,sex,age);

zhuanye=new char[strlen(zy)+1];

strcpy(zhuanye,zy);

zhicheng=new char[strlen(zc)+1];

strcpy(zhicheng,zc);

course=new char[strlen(cor)+1];

strcpy(course,cor);

}

Teacher::~Teacher()

{

delete []zhuanye;

delete []zhicheng;

delete []course;

}

void Teacher::print()

{

cout<<"姓名:"<

}

int main()

{

Person person;

("csj",'M',18);

();

Teacher teacher("lll",'M',56,"math","jiaoshou","gaoshu");

();

("某某",'M',58,"数学","教授","高等数学");

();

return 0;

}

2.实验结果:

(二)第二题:第二题:许多研究生既有学生的属性,又有教师的属性。试通过多重继承说明一个研究生类。

1.源程序代码:

验结果:

(三)第三题:修改例9-5,从Point类中派生出一个Line类。Line 类增加一个数据成员EndPoint计算线的长度。试比较一下与直接使用Point类来构造Line类的不同之处。

1.源程序代码:(用了三个文件)

验结果:

相关文档
最新文档