您的位置:首页 > 其它

作业6.14

2015-06-29 09:41 253 查看
#include<iostream>  
using namespace std;  
class container  
{  
    double radius;  
public:  
    container(double radius1)  
    {radius=radius1;}  
    double Getterr()  
    {return radius;}  
    virtual void suface_area()=0;  
    virtual void volume()=0;  
};  
class cube:public container  
{   
public:  
     cube(double r1):container(r1)  
        {}  
 void suface_area()  
 {cout<<"边长为"<<Getterr()<<"的正方体表面积为:"<<6*Getterr()*Getterr()<<endl;}  
      
 virtual void volume()  
 {cout<<"边长为"<<Getterr()<<"的正方体体积为:"<<Getterr()*Getterr()*Getterr()<<endl;}  
  
};  
class sphere:public container  
{ public:  
    sphere(double r):container(r)  
        {}  
    void suface_area()  
    {cout<<"半径为"<<Getterr()<<"的球表面积为:"<<4.0*Getterr()*Getterr()*Getterr()*3.14<<endl;}  
    virtual void volume()  
    {cout<<"半径为"<<Getterr()<<"的球体体积为:"<<1.3*3.14*Getterr()*Getterr()<<endl;}  
};  
class cylinder:public container  
{  
    double h;  
public:  
    cylinder(double r,double h1):container(r)  
    {h=h1;}  
  void suface_area()  
  {cout<<"半径为:"<<Getterr()<<"  "<<"高为:"<<h<<"  "<<"的圆柱体表面积为:"<<2*3.14*Getterr()*Getterr()+2*3.14*Getterr()*h<<endl;}  
    virtual void volume()  
    {  
        cout<<"半径为:"<<Getterr()<<"  "<<"高为"<<h<<"  "<<"的圆柱体体积为"<<3.14*Getterr()*Getterr()*h<<endl;  
    }  
};  
int main()  
{  
container* p;  
cube a(6.0);  
sphere b(5.0);  
cylinder c(5.0,6.0);  
p=&a;  
p->suface_area();  
p->volume();  
p=&b;  
p->suface_area();  
p->volume();  
p=&c;  
p->suface_area();  
p->volume();  
return 0;  
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: