实验报告模板实验4多态程序设计Word格式文档下载.docx
- 文档编号:22867514
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:26
- 大小:70.79KB
实验报告模板实验4多态程序设计Word格式文档下载.docx
《实验报告模板实验4多态程序设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验报告模板实验4多态程序设计Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
(1)球体的表面积为:
4πr2,球体的体积4πr3/3;
圆柱表面积为:
2πR(h+R)圆柱体的体积πR2h。
(2)定义相应的对象,编写主函数测试。
6.设计一个时钟类TIME,内含数据成员hour,minute,second表示时间,成员函数set()设置时间数据,show()显示时间数据。
重载运算符++和--(具有返回值),每执行一次++,second自增1,执行一次--,second自减1。
second和minute的值在0~59区间循环(满59后再自增则归0,minute加1;
second为0时再自减则为59,minute减1)。
hour的值在0~23区间循环。
实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)
1.记录程序运行结果
2.记录程序运行结果
3.记录程序运行结果
4.记录程序运行结果
5.记录程序运行结果
6.记录程序运行结果
附录(可包括源程序清单或其它说明)
1.
#include<
iostream>
usingnamespacestd;
classpoint
{
private:
intx,y;
public:
point(int,int);
friendvoidoperator++(point&
);
int);
voiddisplay();
};
point:
:
point(inta=0,intb=0):
x(a),y(b){}
voidpoint:
display()
cout<
<
"
x="
<
x<
'
\t'
y="
y<
endl;
}
voidoperator++(point&
A)
{
++A.x;
++A.y;
A,int)
intmain()
pointA(1,2);
++A;
++A之后:
"
;
A.display();
A++;
A++之后:
return0;
}
2.
classpoint{
point&
pointoperator++(int);
x(a),y(b){}
display()
point&
point:
operator++()
++x;
++y;
return*this;
pointpoint:
operator++(int)
intmain()
3.
classfenshu
intfz,fm;
fenshu(inti=0,intj=0);
voidhuajian();
voidsetData()
{
cout<
输入分子:
endl;
cin>
>
fz;
输入分母:
fm;
}
friendfenshuoperator+(fenshu&
a,fenshu&
b);
friendfenshuoperator-(fenshu&
fenshuoperator*(fenshu&
a);
fenshuoperator/(fenshu&
fenshu&
operator=(fenshu&
voidshow()
huajian();
if(fz%fm==0)
cout<
(fz/fm)<
else
fz<
/"
fm<
fenshu:
fenshu(inti,intj)
fz=i;
fm=j;
voidfenshu:
huajian()
intt;
while(fm==0)
分母不能为零,请重新输入:
setData();
if(fz<
=fm)
t=fz;
else
t=fm;
for(inti=2;
i<
=t;
)
{
if(fz%i==0&
&
fm%i==0)
{
fz=fz/i;
fm=fm/i;
}
i++;
}
fenshuoperator+(fenshu&
b)
fenshutemp;
temp.fz=a.fz*b.fm+b.fz*a.fm;
temp.fm=a.fm*b.fm;
returntemp;
fenshuoperator-(fenshu&
{fenshutemp;
temp.fz=a.fz*b.fm-b.fz*a.fm;
temp.fm=a.fm*b.fm;
returntemp;
fenshufenshu:
operator*(fenshu&
a)
temp.fz=a.fz*fz;
temp.fm=a.fm*fm;
operator/(fenshu&
temp.fz=a.fz*fm;
temp.fm=a.fm*fz;
fenshu&
fz=a.fz;
fm=a.fm;
voidmain()
fenshuA,B,A1,A2,A3,A4,A5;
A.setData();
A.huajian();
A.show();
B.setData();
B.huajian();
B.show();
A1=A+B;
A1.show();
A2=A-B;
A2.show();
A3=A*B;
A3.show();
A4=A/B;
A4.show();
A5=A;
A5.show();
4.
classvehicle
doublespeed;
vehicle(inta):
speed(a){}
virtualvoidRun();
virtualvoidStop();
voidvehicle:
Run()
speed="
speed<
Stop()
speed=1"
classbicycle:
virtualpublicvehicle
bicycle(inta):
vehicle(a)
speed=a;
voidbicycle:
Run()
speed=2"
classmotorcar:
virtualpublicvehicle
motorcar(inta):
voidmotorcar:
speed=3"
classmotorcycle:
publicbicycle,publicmotorcar
voidRun();
voidStop();
motorcycle(inta):
vehicle(a),bicycle(a),motorcar(a)
voidmotorcycle:
Stop()
speed=4"
vehicleA(100),*p;
bicycleAB(90);
motorcarAC(80);
motorcycleABC(70);
A:
A.Run();
A.Stop();
\n'
AB:
AB.Run();
AB.Stop();
AC:
AC.Run();
AC.Stop();
ABC:
ABC.Run();
ABC.Stop();
用指针调用:
p=&
A;
p->
Run();
Stop();
AB;
AC;
ABC;
;
5.
classContainer
virtualdoublearea()=0;
virtualdoublevolume()=0;
virtualvoidshow()=0;
classSphere:
publicContainer
doubler;
Sphere(doublea):
r(a){}
doublearea()
return4*3.14*r*r;
doublevolume()
return(double)4/3*3.14*r*r*r;
球面积为:
area()<
球体积为:
volume()<
classCylinder:
doubler,h;
Cylinder(doublea=0,doubleb=0):
r(a),h(b){}
doublearea()
return2*3.14*r*(h+r);
doublevolume()
return3.14*r*r*h;
圆柱体面积为:
圆柱体体积为:
Container*pr;
SphereA
(1);
pr=&
pr->
show();
CylinderB(1,2);
B;
6.
#include<
classTime
inthour;
intminute;
intsecond;
Time(int=0,int=0,int=0);
~Time(){}
voidsethour(int);
voidsetminute(int);
voidsetsecond(int);
intgethour();
intgetsecond();
intgetminute();
voidset(int=0,int=0,int=0);
voidshow();
Time&
operator++(int);
operator--(int);
Time:
Time(inth,intm,ints)
if(s>
59)
s%=60;
m=m+s/60;
if(m>
m%=60;
h=h+m/60;
if(h>
23)h%=24;
hour=h;
minute=m;
second=s;
voidTime:
sethour(inth)
setminute(intm)
if(minute>
minute%=60;
hour=hour+minute/60;
if(hour>
23)hour%=24;
setsecond(ints)
minute=minute+s/60;
intTime:
gethour()
returnhour;
getsecond()
returnsecond;
getminute()
returnminute;
set(inth,intm,ints)
show()
hour<
minute<
second<
Time&
Time:
operator++(int)
second++;
if(second>
minute=minute+second/60;
second%=60;
operator--(int)
second--;
if(second<
0)
minute--;
second=59;
if(minute<
minute=59;
hour--;
if(hour<
0)hour=0;
Timet;
intx,y,z;
chartemp;
现在初始化计数器(HourMinuteSecond):
cin>
x;
y;
z;
t.set(x,y,z);
现在时间是:
t.show();
do
输入*重新设置计数器;
输入+计数器递加,输入-计数器递减;
输入字母o计数器清零;
输入q退出计数器。
请输入>
temp;
switch(temp)
{
case'
*'
cin>
t.set(x,y,z);
t.show();
break;
+'
t++;
-'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告 模板 程序设计