C++程序设计实验四类的继承与派生Word格式文档下载.docx

上传人:b****5 文档编号:20816456 上传时间:2023-01-25 格式:DOCX 页数:14 大小:120.12KB
下载 相关 举报
C++程序设计实验四类的继承与派生Word格式文档下载.docx_第1页
第1页 / 共14页
C++程序设计实验四类的继承与派生Word格式文档下载.docx_第2页
第2页 / 共14页
C++程序设计实验四类的继承与派生Word格式文档下载.docx_第3页
第3页 / 共14页
C++程序设计实验四类的继承与派生Word格式文档下载.docx_第4页
第4页 / 共14页
C++程序设计实验四类的继承与派生Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C++程序设计实验四类的继承与派生Word格式文档下载.docx

《C++程序设计实验四类的继承与派生Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++程序设计实验四类的继承与派生Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

C++程序设计实验四类的继承与派生Word格式文档下载.docx

CDate();

CDate(intx,intn,inte):

x(x),n(n),e(e){}

};

classCPerson{

stringname,sex;

intage;

CPerson();

CPerson(stringname,intage,stringsex):

name(name),age(age),sex(sex){}

voidPrint()

{

cout<

<

name<

"

"

age<

sex<

endl;

}

classCStudent:

virtualpublicCPerson{

public:

stringid;

CDateschool;

intgrade;

CStudent();

CStudent(stringname,intage,stringsex,stringid,CDateschool,intgrade):

CPerson(name,age,sex),id(id),school(school),grade(grade){}

id<

school.x<

-"

school.n<

school.e<

grade<

classCTeacher:

stringduty,depart;

CDatework;

CTeacher();

CTeacher(stringname,intage,stringsex,CDatework,stringduty,stringdepart):

CPerson(name,age,sex),duty(duty),depart(depart),work(work){}

voidPrint()

duty<

depart<

work.x<

work.n<

work.e<

classCGraduate:

publicCStudent{

stringstudy,tutor;

CGraduate();

CGraduate(stringname,intage,stringsex,stringid,CDateschool,intgrade,stringstudy,stringtutor):

CStudent(name,age,sex,id,school,grade),CPerson(name,age,sex),study(study),tutor(tutor){}

study<

tutor<

classCGradOnWork:

publicCGraduate,publicCTeacher{

CGradOnWork();

CGradOnWork(stringname,intage,stringsex,stringduty,stringdepart,CDatework,stringid,CDateschool,intgrade,stringstudy,stringtutor):

CTeacher(name,age,sex,work,duty,depart),CGraduate(name,age,sex,id,school,grade,study,tutor),CPerson(name,age,sex),name(name),age(age),sex(sex){}

intmain()

{

CGradonWorkgradonWork("

tzcer"

"

男"

33,"

15"

2003"

335,"

computer"

tangmin"

jsj"

sxxy"

2002-8"

);

s1.Print();

s1.CTeacher:

:

Print();

s1.CGraduate:

s1.CStudent:

s1.CPerson:

}

8、

cmath>

classPoint

protected:

doublex,y;

Point(){x=0;

y=0;

Point(doublex0,doubley0){x=x0;

y=y0;

}

doubleget_x(){returnx;

doubleget_y(){returny;

friendostream&

operator<

(ostream&

out,Point&

d);

ostream&

operator<

(ostream&

d)

returnout<

Point:

("

<

d.x<

d.y<

)"

endl;

classCircle:

publicPoint

doubler;

Circle(){r=0;

Circle(doubler0):

r(r0){}

voidset_r(doubler1){r=r1;

doubleget_r(){returnr;

doublearea(){return3.14159*r*r;

out,Circle&

r);

out,Circle&

r)

r:

r.get_r()<

endl<

area:

r.area()<

classCylinder:

publicCircle

private:

doubleh;

Cylinder(){h=0;

Cylinder(doubler0,doubleh0):

Circle(r0),h(h0){}

voidset_h(doubleh1){h=h1;

doubleget_h(){returnh;

doublearea(){return2*3.14159*r*h+2*3.14159*r*r;

doublevolume(){returnCircle:

area()*h;

out,Cylinder&

h);

out,Cylinder&

h)

h:

h.get_h()<

h.area()<

volume:

h.volume()<

Pointps(-2,5);

cout<

ps;

Circleo

(2);

o;

Cylinderh(2,4);

h;

system("

pause"

return0;

运行的效果如下:

9、#include<

classbuilding

protected:

stringname;

intfloors;

floatareas;

building(string,int,float);

voidprint();

building:

building(stringq,intm,floats)

name=q;

floors=m;

areas=s;

voidbuilding:

print()

name:

floors:

floors<

areas<

classhouse:

publicbuilding

house(stringq,intm,floats,inti,intj):

building(q,m,s)

rooms=i;

balcony=j;

private:

introoms;

intbalcony;

voidhouse:

areas:

rooms:

rooms<

balcony:

balcony<

classoffice:

office(stringq,intm,floats,inta,intb):

offices=a;

meetingrooms=b;

intoffices;

intmeetingrooms;

voidoffice:

offices:

offices<

meetingrooms:

meetingrooms<

houseq1("

住宅"

8,520,20,17);

officeq2("

办公室"

26,530,5,6);

q1.print();

q2.print();

10、#include<

classcomFinal{

charname[20];

intEnglish,Chinese,Math,Total;

floataverage;

comFinal(char*n,intEng,intChi,intMat);

comFinal(){};

~comFinal(){};

char*getName(){returnname;

intgetEng(){returnEnglish;

intgetChi(){returnChinese;

intgetMat(){returnMath;

voidsetEng(intx){English=x;

voidsetChi(intx){Chinese=x;

voidsetMat(intx){Math=x;

intgetTotal(){returnEnglish+Chinese+Math;

floatgetAverage(){return(float)((English+Chinese+Math)/3);

voidshow();

comFinal:

comFinal(char*n,intEng,intChi,intMat){

English=Eng;

Chinese=Chi;

Math=Mat;

strcpy(name,n);

voidcomFinal:

show(){

cout<

学生姓名:

getName()<

英语成绩:

getEng()<

语文成绩:

getChi()<

数学成绩:

getMat()<

基础分总评:

getTotal()<

基础课平均成绩:

getAverage()<

classaccount:

publiccomFinal{

intaccoun;

intecon;

intmajtotal;

floatmajave;

account(char*n,intEng,intChi,intMat,intacc,inteco);

account(){};

intgetmajtotal(){returnecon+accoun;

floatgetmajave(){returnfloat((accoun+econ)/2);

intgetaccount(){returnaccoun;

intgetecon(){returnaccoun;

voidsetaccount(intx){accoun=x;

voidsetecon(intx){econ=x;

account:

account(char*n,intEng,intChi,intMat,intacc,inteco):

comFinal(n,Eng,Chi,Mat){

econ=eco;

accoun=acc;

voidaccount:

show();

会计学成绩:

accoun<

经济学成绩:

econ<

总分:

getTotal()+accoun+econ<

classchemistry:

intchemistr;

intanaly;

intmajtatal;

chemistry(char*n,intEng,intChi,intMat,intchem,intanal);

chemistry(){};

intgetmajtotal(){returnanaly+chemistr;

floatgetmajave(){returnfloat((chemistr+analy)/2);

intgetche(){returnchemistr;

intgetanl(){returnanaly;

voidsetche(intx){chemistr=x;

voidsetanl(intx){analy=x;

chemistry:

chemistry(char*n,intEng,intChi,intMat,intchem,intanal):

comFinal(n,Eng,Chi,Mat){chemistr=chem;

analy=anal;

voidchemistry:

有机化学成绩:

chemistr<

化学分析成绩:

analy<

getTotal()+chemistr+analy<

accounta1("

cz"

90,80,90,80,90);

chemistryc1("

zc"

80,90,80,90,80);

a1.show();

---------------------------"

c1.setanl(100);

c1.show();

运行的效果如下图所示:

实验心得:

本次实验用了C++函数定义函数和函数重载,以及相关类的知识点,同时得掌握使用debug进行对函数的调试。

相比之前学的C语言来说这个和之前还是有些区别的,接下来应该多花些时间学好该门课程。

教师签名:

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

当前位置:首页 > 高等教育 > 院校资料

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

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