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

上传人:b****2 文档编号:1646441 上传时间:2022-10-23 格式:DOC 页数:24 大小:286KB
下载 相关 举报
西安交大C++程序设计第九章作业.doc_第1页
第1页 / 共24页
西安交大C++程序设计第九章作业.doc_第2页
第2页 / 共24页
西安交大C++程序设计第九章作业.doc_第3页
第3页 / 共24页
西安交大C++程序设计第九章作业.doc_第4页
第4页 / 共24页
西安交大C++程序设计第九章作业.doc_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

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

《西安交大C++程序设计第九章作业.doc》由会员分享,可在线阅读,更多相关《西安交大C++程序设计第九章作业.doc(24页珍藏版)》请在冰豆网上搜索。

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

西安交通大学实验报告

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

系别__________实验日期2014年5月日

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

姓名_________学号__报告退发(订正、重做)

同组人_________________________________教师审批签字

一、实验目的

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

二、实验内容

(一)第一题:

从类Person中派生出一个教师类,新增的属性有:

专业、职称和主讲课程(一门),并为这些属性定义相应的方法。

1.源程序代码:

#include

usingnamespacestd;

classPerson

{

protected:

char*Name;

charSex;

intAge;

public:

Person()

{

Name="csj";

Sex='M';

Age=18;

}

Person(char*name,charsex,intage)

{

Register(name,sex,age);

}

~Person()

{

delete[]Name;

}

voidRegister(char*name,charsex,intage)

{

intm=strlen(name);

Name=newchar[m+1];

strcpy(Name,name);

Sex=sex;;

Age=age;

}

voidprint()

{

cout<<"姓名:

"<

"<

"<

}

};

classTeacher:

publicPerson

{

protected:

char*zhuanye;

char*zhicheng;

char*course;

public:

Teacher();

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

voidRegister(char*,char,int,char*,char*,char*);

~Teacher();

voidprint();

};

Teacher:

:

Teacher()

{

Person:

:

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

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

strcpy(zhicheng,"教授");

strcpy(course,"电路");

}

Teacher:

:

Teacher(char*name,charsex,intage,char*zy,char*zc,char*cor)

{

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

}

voidTeacher:

:

Register(char*name,charsex,intage,char*zy,char*zc,char*cor)

{

Person:

:

Register(name,sex,age);

zhuanye=newchar[strlen(zy)+1];

strcpy(zhuanye,zy);

zhicheng=newchar[strlen(zc)+1];

strcpy(zhicheng,zc);

course=newchar[strlen(cor)+1];

strcpy(course,cor);

}

Teacher:

:

~Teacher()

{

delete[]zhuanye;

delete[]zhicheng;

delete[]course;

}

voidTeacher:

:

print()

{

cout<<"姓名:

"<

"<

"<

"<

"<

}

intmain()

{

Personperson;

person.Register("csj",'M',18);

person.print();

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

teacher.print();

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

teacher.print();

return0;

}

2.实验结果:

(二)第二题:

第二题:

许多研究生既有学生的属性,又有教师的属性。

试通过多重继承说明一个研究生类。

1.源程序代码:

//许多研究生既有学生的属性,又有教师的属性。

试通过多重继承说明一个研究生类。

#include

usingnamespacestd;

classPerson

{

protected:

charName[10]; //姓名

int Age; //年龄

charSex; //性别

public:

Person()

{

strcpy(Name,"人某某");

Age=34;

Sex='m';

}

Person(char*name,intage,charsex)

{

Registerper(name,age,sex);

}

voidRegisterper(char*name,intage,charsex)//设置数据成员

{

strcpy(Name,name);

Age=age;

Sex=(sex=='m'?

'm':

'f');

}

voidprintper() //输出数据成员

{

cout<<"姓名:

"<

"<

"<

}

};

classStudent:

publicPerson

{

protected:

charClassname[20];

charNumber[20];

charZhuanye[20];

public:

Student()

{

Registerper("学生某某",18,'f');

strcpy(Classname,"钱学森");

strcpy(Number,"2130405000");

strcpy(Zhuanye,"电气");

}

Student(char*name,intage,charsex,char*classname,char*number,char*zhuanye)

{

Registerstu(name,age,sex,classname,number,zhuanye);

}

voidRegisterstu(char*name,intage,charsex,char*classname,char*number,char*zhuanye)

{

Registerper(name,age,sex);

strcpy(Classname,classname);

strcpy(Number,number);

strcpy(Zhuanye,zhuanye);

}

voidprintstu()

{

printper();

cout<<"\t班级:

"<

"<

"<

}

};

classTeacher:

publicPerson

{

protected:

charZhicheng[20];

charKeti[20];

charKecheng[20];

public:

Teacher()

{

Registerper("老师某某",45,'m');

strcpy(Zhicheng,"教授");

strcpy(Keti,"新型计算机开发");

strcpy(Kecheng,"计算机基础");

}

Teacher(char*name,intage,charsex,char*zhicheng,char*keti,char*kecheng)

{

Registertea(name,age,sex,zhicheng,keti,kecheng);

}

voidRegistertea(char*name,intage,charsex,char*zhicheng,char*keti,char*kecheng)

{

Registerper(name,age,sex);

strcpy(Zhicheng,zhicheng);

strcpy(Keti,keti);

strcpy(Kecheng,kecheng);

}

voidprinttea()

{

printper();

cout<<"\t职称:

"<

"<

"<

}

};

classGraduate:

publicStudent,publicTeacher

{

public:

Graduate()

{

Registerstu("研究生某某",23,'f',"电气某班","1130506060","电气");

strcpy(Keti,"电力系统研究");

strcpy(Kecheng,"电路");

}

Graduate(char*name,intage,charsex,char*classname,char*number,char*zhuanye,char*keti,char*kecheng)

{

Registergra(name,age,sex,classname,number,zhuanye,keti,kecheng);

}

voidRegistergra(char*name,intage,charsex,char*classname,char*number,char*zhuanye,char*keti,char*kecheng)

{

Registerstu(name,age,sex,classname,number,zhuanye);

strcpy(Keti,keti);

strcpy(Zhuanye,zhuanye);

}

voidprintgra()

{

printstu();

cout<<"\t课题:

"<

"<

}

};

intmain()

{

Personperson;

cou

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1