【问题描述】
编写一个程序计算出球、圆柱和圆锥的表面积和体积。
要求:
(1)定义一个基类,至少含有一个数据成员半径,并设为保护成员;
(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数;
(3)编写主函数,求球、圆柱、圆锥的表面积和体积。
注:圆周率取3.14
const double PI=3.14;
【输入形式】
程序参考的输入(数字前面为提示文字):
Input the radius of the sphere:30
Input the radius and height of the cylinder:30 40
Input the radius and height of the cone:30 40
【输出形式】
程序参考的输出:
The area of the sphere:11304
The volume of the sphere:113040
The area of the cylinder:13188
The volume of the cylinder:113040
The area of the cone:7536
The volume of the cone:37680
#include <string>
#include <cmath>
using namespace std;
const double PI = 3.14;
class radius
{
protected:
double r;
};
class sphere: public radius
{
public:
sphere()
{
cout<<"Input the radius of the sphere:";
cin>>r;
}
void area()
{
cout<<"The area of the sphere:"<<4*PI*r*r<<endl;
}
void volume()
{
cout<<"The volume of the sphere:"<<(4*PI*r*r*r)/3<<endl;
}
};
class cylinder: public radius
{
public:
cylinder()
{
cout<<"Input the radius and height of the cylinder:";
cin>>r>>h;
}
void area()
{
cout<<"The area of the cylinder:"<<2*PI*r*(r+h)<<endl;
}
void volume()
{
cout<<"The volume of the cylinder:"<<PI*r*r*h<<endl;
}
private:
double h;
};
class cone: public radius
{
public:
cone()
{
cout<<"Input the radius and height of the cone:";
cin>>r>>h;
}
void area()
{
cout<<"The area of the cone:"<<PI*r*sqrt(r*r+h*h)+PI*r*r<<endl;
}
void volume()
{
cout<<"The volume of the cone:"<<(PI*r*r*h)/3<<endl;
}
private:
double h;
};
int main()
{
sphere a;
cylinder b;
cone c;
a.area();
a.volume();
b.area();
b.volume();
c.area();
c.volume();
return 0;
}