第十三周任务(三)
来源:互联网 发布:常见网络接口 编辑:程序博客网 时间:2024/05/29 05:02
#include "iostream"#include<string>using namespace std;class CSolid{public :virtual double area() const=0;virtual double Volume() const=0;};class CCube:public CSolid{public:double area() const { return 6*L*L;}double Volume() const{ return L*L*L;}CCube (double l):L(l){}private:double L;};class CBall:public CSolid{public:double area () const {return 4*3.14*R*R;};double Volume() const {return 1.33*3.14*R*R*R;}CBall (double r):R(r){} private:double R;};class CCylinder:public CSolid{public:double area() const { return (3.14*D*D*2+2*3.14*D*H);};double Volume() const{ return 3.14*D*D*H;}CCylinder (double d , double h ):D(d),H(h){}private:double D;double H;};int main( ) { CSolid *p; double s,v; CCube x(30); cout<<"立方体边长为30"<<endl; p=&x; s=p->area( ); v=p->Volume( ); cout<<"表面积:"<<s<<endl; cout<<"体积:"<<v<<endl; cout<<endl; CBall y(4.5); cout<<"球体半径为4.5"<<endl; p=&y; s=p->area( ); v=p->Volume( ); cout<<"表面积:"<<s<<endl; cout<<"体积:"<<v<<endl; cout<<endl; CCylinder z(10,20); cout<<"圆柱体底面半径、高分别为10, 20"<<endl; p=&z; s=p->area( ); v=p->Volume( ); cout<<"表面积:"<<s<<endl; cout<<"体积:"<<v<<endl; cout<<endl; system("pause"); return 0; }