【问题描述】编写一个程序计算出球、圆柱和圆锥的表面积和体积。
【问题描述】
要求:
(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;
}