#include "iostream"
#include<string>
using namespace std;
class CSolid
{
public :
virtual double area() const=0;
virtual double Volume() const=0;
};
class CCube:public CSolid
{
public:
double area() const { return 6*L*L;}
double Volume() const{ return L*L*L;}
CCube (double l):L(l){}
private:
double L;
};
class CBall:public CSolid
{
public:
double area () const {return 4*3.14*R*R;};
double Volume() const {return 1.33*3.14*R*R*R;}
CBall (double r):R(r){}
private:
double R;
};
class CCylinder:public CSolid
{
public:
double area() const { return (3.14*D*D*2+2*3.14*D*H);};
double Volume() const{ return 3.14*D*D*H;}
CCylinder (double d , double h ):D(d),H(h){}
private:
double D;
double H;
};
int main( )
{
CSolid *p;
double s,v;
CCube x(30);
cout<<"立方体边长为30"<<endl;
p=&x;
s=p->area( );
v=p->Volume( );
cout<<"表面积:"<<s<<endl;
cout<<"体积:"<<v<<endl;
cout<<endl;
CBall y(4.5);
cout<<"球体半径为4.5"<<endl;
p=&y;
s=p->area( );
v=p->Volume( );
cout<<"表面积:"<<s<<endl;
cout<<"体积:"<<v<<endl;
cout<<endl;
CCylinder z(10,20);
cout<<"圆柱体底面半径、高分别为10, 20"<<endl;
p=&z;
s=p->area( );
v=p->Volume( );
cout<<"表面积:"<<s<<endl;
cout<<"体积:"<<v<<endl;
cout<<endl;
system("pause");
return 0;
}
第十三周任务(三)
最新推荐文章于 2021-12-19 21:47:20 发布