#include <iostream>
using namespace std;
class container
{
protected:
double radius;
public:
container(double radius1)
{radius=radius1;}
virtual double surface_area()=0;
virtual double volume()=0;
};
class cube :public container
{
public:
cube(double radius1):container(radius1)
{}
double surface_area()
{
cout<<"正方形的长为:"<<radius<<endl;
cout<<"正方形的表面积为:"<<6*radius*radius<<endl;
return 0;
}
double volume()
{
cout<<"正方形的体积为:"<<radius*radius*radius<<endl;
return 0;
}
};
class sphere:public container
{
public:
sphere(double radius1):container(radius1)
{}
double surface_area()
{
cout<<"球体的半径为:"<<radius<<endl;
cout<<"球体的表面积为:"<<4*3.14*radius*radius<<endl;
return 0;
}
double volume()
{
cout<<"球体的体积为:"<<4/3*3.14*radius*radius*radius<<endl;
return 0;
}
};
class cylinder:public container
{
protected:
double high;
public:
cylinder(double radius1,double h):container(radius1)
{high=h;}
double surface_area()
{
cout<<"圆柱体的半径为:"<<radius<<endl;
cout<<"圆柱体的高为:"<<high<<endl;
cout<<"圆柱体的表面积为:"<<2*3.14*radius*radius+2*3.14*radius*high<<endl;
return 0;
}
double volume()
{
cout<<"圆柱体的体积为:"<<3.14*radius*radius*high<<endl;
return 0;
}
};
int main()
{
container *pr;
cube A(6.0);
sphere B(5.0);
cylinder C(5.0,6.0);
pr=&A;
pr->surface_area();
pr->volume();
cout<<endl;
pr=&B;
pr->surface_area();
pr->volume();
cout<<endl;
pr=&C;
pr->surface_area();
pr->volume();
return 0;
}
作业6.14
最新推荐文章于 2024-06-17 19:08:43 发布