声明一个车vehicle基类具有MaxSpeedweight等成员变量有RunStop等成员函数Word文件下载.docx
- 文档编号:22765036
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:12
- 大小:73.27KB
声明一个车vehicle基类具有MaxSpeedweight等成员变量有RunStop等成员函数Word文件下载.docx
《声明一个车vehicle基类具有MaxSpeedweight等成员变量有RunStop等成员函数Word文件下载.docx》由会员分享,可在线阅读,更多相关《声明一个车vehicle基类具有MaxSpeedweight等成员变量有RunStop等成员函数Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
cout<
<
"
车已经启动啦"
endl<
endl;
}
virtualvoidStop()
vehicle已经停啦"
}
};
classbicycle:
virtualpublicvehicle
floatHeight;
~bicycle(){}
bicycle(floatm,floatw,floath):
vehicle(m,w),Height(h){}
voidRun()
Theheightofbicycleis:
Height<
voidStop()
bicycle已经停啦"
classmotorcar:
intSeatNum;
~motorcar(){}
motorcar(floatm,floatw,floats):
vehicle(m,w),SeatNum(s){}
Thenumberofmotorcar'
sseatis:
SeatNum<
}
motorcar已经停啦"
classmotorcycle:
publicbicycle,publicmotorcar
{
~motorcycle(){}
motorcycle(floatm,floatw,floath,floats):
vehicle(m,w),bicycle(m,w,h),motorcar(m,w,s){}
MaxSpeed:
MaxSpeed<
weight:
weight<
Theheightis:
Thenumberofseatis:
motorcycle已经停啦"
intmain()
vehiclea(108,53);
bicycleb(180,50,2);
motorcarc(180,80,5);
motorcycled(120,90,1.2,3);
vehicle*p[4]={&
a,&
b,&
c,&
d};
for(inti=0;
i<
4;
i++)
p[i]->
Stop();
p[i]->
Run();
return0;
}
2.定义抽象基类Shape,由它派生出3个派生类:
Circle,Square,Rectangle,Triangle,Trapezoid(梯形)。
用一个函数printArea分别输出以上五者的面积,5个图形的数据在定义对象时给出。
iomanip>
classShape
~Shape(){}
virtualvoidSetdata(float=0,float=0,float=0)=0;
virtualfloatArea()=0;
//求面积、纯虚函数
classTriangle:
publicShape//三角形类
floatW,H;
~Triangle(){}
Triangle(floatw=0,floath=0):
W(w),H(h){}
voidSetdata(floatw=0,floath=0,floatj=0)
{
W=w;
H=h;
floatArea()
returnW*H/2;
classSquare:
publicShape//正方形类
floatS;
~Square(){}
Square(floats=0):
S(s){}
voidSetdata(floats=0,floath=0,floatj=0)
S=s;
returnS*S;
classRectangle:
publicShape//矩形类
floatL;
floatW;
~Rectangle(){}
voidSetdata(floatl=0,floatw=0,floatj=0)
L=l;
Rectangle(floatl=0,floatw=0):
L(l),W(w){}
returnL*W;
classCircle:
publicShape//圆类
floatR;
~Circle(){}
Circle(floatr=0):
R(r){}
voidSetdata(floatr=0,floath=0,floatj=0)
R=r;
}
return3.1415926*R*R;
classTrapezoid:
publicShape//梯形类
floatSD;
floatXD;
floatH;
~Trapezoid(){}
Trapezoid(floatsd=0,floatxd=0,floath=0):
SD(sd),XD(xd),H(h){}
voidSetdata(floatsd=0,floatxd=0,floath=0)
SD=sd;
XD=xd;
return0.5*(SD+XD)*H;
cout<
setiosflags(ios:
:
fixed)<
setprecision
(2);
Trianglesjx;
sjx.Setdata(2,3);
//设置数据
三角形面积为:
sjx.Area()<
Squarezfx(4);
正方形面积为:
zfx.Area()<
Rectanglejx(2,4);
矩形面积为:
jx.Area()<
Circleyuan
(2);
圆面积为:
yuan.Area()<
Trapezoidtx(2.5,3.5,6.5);
tx.Setdata(1,2,3);
梯形面积为:
tx.Area()<
Shape*p[5]={&
sjx,&
zfx,&
jx,&
yuan,&
tx};
floatarea=0;
5;
area+=p[i]->
Area();
总面积为:
area<
}
3.实现计算器程序,要求输入两个数和运算符,得到结果,用简单工厂模式完成。
classOperater
inta,b,result;
charop;
Operater(intA,charOP,intB):
a(A),b(B),op(OP){}
Operater()
a=1,b=1,op='
'
;
virtualintgetResult()=0;
classOperaterAdd:
publicOperater
OperaterAdd(intA,charOP,intB):
Operater(A,OP,B){}
OperaterAdd():
Operater(){}
intgetResult()
{returnresult=a+b;
classOperaterSub:
{public:
OperaterSub(intA,charOP,intB):
OperaterSub():
intgetResult()
returnresult=a-b;
classOperaterMul:
OperaterMul(intA,charOP,intB):
OperaterMul():
{returnresult=a*b;
}};
classOperaterDiv:
OperaterDiv(intA,charOP,intB):
OperaterDiv():
if(b!
=0)
{
result=a/b;
returnresult;
elsecout<
除数不能为0!
classOperaterFactory
Operater*createOperate(charop)
{Operater*oper;
switch(op)
{case'
+'
oper=newOperaterAdd();
break;
case'
-'
oper=newOperaterSub();
*'
oper=newOperaterMul();
/'
oper=newOperaterDiv();
returnoper;
{OperaterFactoryOF;
Operater*oper=OF.createOperate('
);
oper->
getResult()<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 声明 一个 vehicle 具有 MaxSpeedweight 成员 变量 RunStop 函数
链接地址:https://www.bdocx.com/doc/22765036.html