> 文章列表 > 【问题描述】编写一个程序计算出球、圆柱和圆锥的表面积和体积。

【问题描述】编写一个程序计算出球、圆柱和圆锥的表面积和体积。

【问题描述】编写一个程序计算出球、圆柱和圆锥的表面积和体积。

【问题描述】

编写一个程序计算出球、圆柱圆锥表面积和体积。

要求:

(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;
}