您的位置:首页 > 编程语言

编程小练习

2016-05-26 13:25 218 查看

#include<iostream>  
using namespace std;  
//基类  
class CSolid  
{  
public :  
    virtual double area() const=0;//面积  
    virtual double tiji() const=0;//体积  
};  
///正方体  
class CCube:public CSolid  
{  
private:  
    double chang,kuan,gao;  
public :  
    CCube(double cha,double kua,double ga):chang(cha),kuan(kua),gao(ga){}  
    double area() const;  
    double tiji() const;  
};  
   /******/  
double CCube::area() const  
{  
    return chang*kuan*2+chang*gao*2+kuan*gao*2;  
}  
double CCube::tiji() const  
{  
    return chang*kuan*gao;  
}  
  
///球体  
class CBall:public CSolid  
{  
private:  
    double banjing;  
public:  
    CBall(double ban):banjing(ban){}  
    double area() const;  
    double tiji() const;  
};  
        /*******/  
double CBall::area() const  
{  
    return 4*3.14159*banjing*banjing;  
}  
double CBall::tiji() const  
{  
    return 4*3.14159*banjing*banjing/3;  
}  
  
///圆柱体  
class CCylinder:public CSolid  
{  
private:  
    double banjing,gao;  
public:  
    CCylinder(double ban,double ga):banjing(ban),gao(ga){}  
    double area() const ;  
    double tiji() const ;  
};  
double CCylinder::area() const  
{  
    return 3.14159*banjing*banjing*2+2*3.14159*banjing*gao;  
}  
double CCylinder::tiji() const  
{  
    return 3.14159*banjing*banjing*gao;  
}  
  
  
  
  
  
  
  
  
  
  
int main()  
{  
    CCube c1(2.1,2.1,2.1);  
    CBall b1(2.5);  
    CCylinder r1(2.5,3.0);  
    CSolid *pt[3]= {&c1,&b1,&r1}; //定义基类指针数组pt,使它每一个元素指向一个派生类对象  
    cout<<"长方体表面积:"<<pt[0]->area()<<"   长方体体积:"<<pt[0]->tiji()<<endl;  
    cout<<"球体的表面积:"<<pt[1]->area()<<"   球体的体积:"<<pt[1]->tiji()<<endl;  
    cout<<"圆柱的表面积:"<<pt[2]->area()<<"   圆柱的体积:"<<pt[2]->tiji()<<endl;  
  
  
    return 0;  
}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: