#include<iostream>
using namespace std;
const double pi=3.14;
class container{
protected:
double r;
public:
container(double radius)
{
r=radius;
}
virtual double surface_area()=0;
virtual double volume()=0;
};
class cube:public container{
public:
cube(double radius):container(radius)
{};
double surface_area()
{
return 6.0*r*r;
};
double volume()
{
return r*r*r;
}
void show()
{
cout<<"边长为"<<r<<"的正方体"<<endl;
}
};
class sphere:public container{
public:
sphere(double radius):container(radius)
{};
double surface_area()
{
return 4*pi*r*r;
};
double volume()
{
return pi*r*r*r*4/3;
}
void show()
{
cout<<"半径为"<<r<<"的球体:"<<endl;
}
};
class cylinder:public container{
protected:
double h;
public:
cylinder(double radius,double high):container(radius)
{
h=high;
};
double surface_area()
{
return 2*pi*r*(r+h);
};
double volume()
{
return pi*r*r*h;
}
void show()
{
cout<<"半径为"<<r<<"高为"<<h<<"的圆柱体:"<<endl;
}
};
int main()
{
container *p;
cube z(6.2);
sphere q(6.3);
cylinder y(6.4,6.5);
p=&z;
z.show();
cout<<"表面积为:"<<p->surface_area()<<endl;
cout<<"体积为:"<<p->volume()<<endl;
cout<<"---------------------------"<<endl;
p=&q;
q.show ();
cout<<"表面积为:"<<p->surface_area()<<endl;
cout<<"体积为:"<<p->volume()<<endl;
cout<<"---------------------------"<<endl;
p=&y;
y.show();
cout<<"圆柱体的表面积为:"<<p->surface_area()<<endl;
cout<<"圆柱体的体积为:"<<p->volume()<<endl;
system("pause");
return 0;
}
6.14
最新推荐文章于 2024-06-11 16:52:16 发布