c++类的继承与派生实验报告.docx
《c++类的继承与派生实验报告.docx》由会员分享,可在线阅读,更多相关《c++类的继承与派生实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
c++类的继承与派生实验报告
c++类的继承与派生--实验报告
算
法
描
述
及
实
验
步
骤
1 首先定义一个基类person
2 派生类student和teacher
3 实现客户信息的手动输入
4 实现客户输出信息的需求
5 实现客户的循环利用
6 首先定义一个基类circle
7 派生类cylinder和cone
8 构造函数及调用有关函数
9 定义求体积及面积的函数
调
试
过
程
及
实
验
结
果
调试过程中出现较少的语法错误,主要是链接以及友元的使用不熟练等
实验一的调试结果:
学生及教师的信息输入:
学生及教师信息的输出:
(有清屏的实现)
实验二的调试结果:
总
结
1)仔细学习C++语法;
2)实验前预先编写好自己的程序;
3)注意对C++中英文单词的记忆与书写;
4)注意标点符号均为英文式的;
5)注意空格的位置;
6)注意一句话结束时,是以分号结束;
7)注意主函数只有一个;
8)注意流的符号;
9)注意类的使用方法;
10)注意类的继承与派生的
11)注意构造函数的使用;
12)注意头文件的关联;
13)注意循环的使用
(对实验结果进行分析,实验心得体会及改进意见)
附
录
附
录
附
录
附
录
实验的源程序:
实验一:
person1.h
classperson
{
private:
charnumber[20];
charname[20];
public:
voidset();
voiddisplay();
};
classstudent:
publicperson
{
private:
charclassname[20];
doublescore;
public:
voidset1();
voiddisplay1();
};
classteacher:
publicperson
{
private:
charoccupation[20];
chardepartment[20];
public:
voidset2();
voiddisplay2();
};
实验一:
person1.cpp
#include"person1.h"
#include
#include
#include
usingnamespacestd;
voidperson:
:
set()
{
cout<<"请输入编号number:
\n";
cin>>number;
cout<<"请输入姓名name:
\n";
cin>>name;
}
voidperson:
:
display()
{
cout<<"编号:
"<"<}
voidstudent:
:
set1()
{
set();
cout<<"请输入学生的班级名classname:
\n";
cin>>classname;
cout<<"请输入学生的成绩score:
\n";
cin>>score;
}
voidstudent:
:
display1()
{
display();
cout<<"学生的班级名:
"<"<}
voidteacher:
:
set2()
{
set();
cout<<"请输入教师的职业名:
\n";
cin>>occupation;
cout<<"请输入教师的部门:
\n";
cin>>department;
}
voidteacher:
:
display2()
{
display();
cout<<"教师的职业名:
"<"<}
实验一:
person.cpp
#include"person1.h"
#include
#include
#definemax1000
#include
usingnamespacestd;
intmain()
{
system("color1b");
chara,d;
intb;
intc;
studentstud[max];
teacherteac[max];
while
(1)
{
cout<<"请问你是否需要输入学生信息?
(y/n)\n";
cin>>a;
if(a=='y'||a=='Y')
{
cout<<"请问你要输入几个学生的信息(n不大于1000人)";
cin>>b;
for(inti=0;i
{
cout<<"请输入第"<
stud[i].set1();
}
}
cout<<"请问你是否需要输入教师信息?
(y/n)\n";
cin>>a;
if(a=='y'||a=='Y')
{
cout<<"请问你要输入几个(n)教师的信息(n不大于1000人)";
cin>>c;
for(inti=0;i{
cout<<"请输入第"<
\n";
teac[i].set2();
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
}
}
system("cls");
cout<<"请问你是否查看全部信息?
(y/n)\n";
cin>>a;
if(a=='y'||a=='Y')
{
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
for(inti=0;i
{
cout<<"输出第"<
\n";
stud[i].display1();
}
for(i=0;i{
cout<<"输出第"<
\n";
teac[i].display2();
}
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
}
cout<<"请问你是否继续重新返回操作?
(y/n)\n";
cin>>d;
if(d=='n'||d=='N')break;
}
return0;
}
实验二:
circle1.h
classcircle
{
protected:
doubleradius;
public:
circle(doubler);
virtual~circle();
};
classglobe:
publiccircle
{
public:
globe(doubler):
circle(r)
{
radius=r;
}
voidarea();
voidvolume();
voiddisplay();
};
classcylinder:
publiccircle
{
private:
doubleheight;
public:
cylinder(doubler,doubleh):
circle(r)
{
height=h;
}
voidarea1();
voidvolume1();
voiddisplay1();
};
classcone:
publiccircle
{
private:
doubleheight;
public:
cone(doubler,doubleh):
circle(r)
{
height=h;
}
voidarea2();
voidvolume2();
voiddisplay2();
};
实验二:
circle1.cpp
#definepi3.1415926//定义π
#include"circle1.h"
#include
#include
usingnamespacestd;
circle:
:
circle(doubler)
{
radius=r;
}
circle:
:
~circle()
{
}
voidglobe:
:
area()
{
cout<<"则球的表面积:
"<}
voidglobe:
:
volume()
{
cout<<"则球的体积:
"<<(4*pi*radius*radius*radius)/3<}
voidglobe:
:
display()
{
cout<<"球的半径:
"<area();
volume();
}
voidcylinder:
:
area1()
{
cout<<"则圆柱的面积:
"<<2*pi*radius*radius+2*pi*radius*height<}
voidcylinder:
:
volume1()
{
cout<<"则圆柱的体积:
"<}
voidcylinder:
:
display1()
{
cout<<"圆柱的半径:
"<"<area1();
volume1();
}
voidcone:
:
area2()
{
cout<<"则圆锥体的面积:
"<}
voidcone:
:
volume2()
{
cout<<"则圆锥体的体积:
"<<(pi*radius*radius*height)/3;
}
voidcone:
:
display2()
{
cout<<"圆锥体的半径:
"<"<area2();
volume2();
cout<}
实验二:
circle.cpp
#include"circle1.h"
#include
usingnamespacestd;
intmain()
{
globegl
(2);//球
gl.display();
cylindercy(2,3);//圆柱体
cy.display1();
coneco(2,3);//圆锥体
co.display2();
return0;
}
(源程序清单等)