早教吧 育儿知识 作业答案 考试题库 百科 知识分享

c++编程题1.求几何体:长方体和圆柱体的体积。具体要求如下:(1)设计一个立体图形类(CStereoShape类),并满足如下要求:CStereoShape类有一个纯虚函数GetArea,能够获取立方体的表面积

题目详情
c++编程题
1. 求几何体:长方体和圆柱体的体积。具体要求如下:
(1) 设计一个立体图形类(CStereoShape类),并满足如下要求:
CStereoShape类有一个纯虚函数GetArea,能够获取立方体的表面积。
CStereoShape类有一个纯虚函数GetVolume,能够获取立方体的体积。
(2) 设计一个立方体类(CCube类),该类继承于CStereoShape类,并满足如下要求:
CCube类有一个带参数的构造函数,其参数分别为立方体的长、宽、高,默认值均为0。
用一个成员函数put来实现对立方体长、宽、高的设置。
重载CStereoShape类的GetArea和GetVolume,分别完成立方体的表面积和体积的计算。
(3) 设计一个球体类(CSphere),该类继承于CStereoShape类,并满足如下要求:
CSphere类有一个带参数的构造函数,其参数对应于球体的半径,默认值均为0。
用一个成员函数put来实现对球体半径的设置。
重载CStereoShape类的GetArea和GetVolume,分别完成球体的表面积和体积的计算。
(4) 在主函数,至少完成如下工作:
实例化一个CCube类的对象a_cube和CSphere类的对象c_sphere;定义一个CStereoShape类的指针p;将a_cube的长、宽和高分别设置为4、5和6;将p指向a_cube,通过p将a_cube的表面积和体积输出;将c_sphere的半径设置为7;将p指向c_sphere,通过p将c_sphere的表面积和体积输出
▼优质解答
答案和解析
#include <iostream>
#define PI 3.141593
using namespace std;
class CStereoShape
{
  public:
    virtual double GetArea()=0;
    virtual double GetVolumn()=0;
};
class CCube :public CStereoShape
{
  private:
     double length;
     double width;
     double height;
  public:
       CCube(double l=0,double w=0,double h=0)
       {
        width=w;
        height=h;
        length=l;
       }
       
       double GetArea()
    {
       return 2*(width*height+width*length+length*height);
        }
  
  double GetVolumn()
  {
   return width*length*height;
  } 
  
  void put(double l,double w,double h)
        {
          width=w;
          height=h;
          length=l;
        }
};
class CSphere:public CStereoShape
{
   private:
       double radius;
   public:
       CSphere(double r=0)
    {
      radius=r;
       }
       
     double GetArea()
  {
    return 4*PI*radius*radius;
  }
  
  double GetVolumn()
  {
   return GetArea()*radius/3;
  }
  
  void put(double r)
  {
   radius=r;
  }   
        
};
int  main()
{
    CCube a_cube;
 CSphere c_sphere;
 a_cube.put(4,5,6);
 c_sphere.put(7);
 CStereoShape *p;
 p=&a_cube;
 cout<<"长方体的面积和体积分别是:";
 cout<<p->GetArea()<<"\x09"<<p->GetVolumn()<<endl; 
    p=&c_sphere;
    cout<<"圆的面积和体积分别是:";
 cout<<p->GetArea()<<"\x09"<<p->GetVolumn()<<endl; 
     return 0;
}