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