第十三周实践项目4————立体类族共有的抽象类

来源:互联网 发布:照相过滤软件下载 编辑:程序博客网 时间:2024/06/01 01:33
问题及代码:
/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年5月25日 * 版本号:codeblock * * 问题描述:  立体类族共有的抽象类 * 输入描述: * 程序输出: 输出结果 */#include<iostream>using namespace std;#define PI 3.14class CSolid{public:    virtual void area()=0;    virtual void volume()=0;};class CCube:public CSolid{public:    CCube();    CCube(double l):length(l){}    void area()    {        cout<<"正方体的表面积为:"<<endl;        cout<<length*length*6<<endl;    }    void volume()    {        cout<<"正方体的体积为:"<<endl;        cout<<length*length*length<<endl;    }private:    double length;    double width;    double high;};class CBall:public CSolid{public:    CBall();    CBall(double r):radius(r){}    void area()    {        cout<<"球体的表面积为:"<<endl;        cout<<4*PI*radius*radius<<endl;    }    void volume()    {        cout<<"球体的体积为:"<<endl;        cout<<(4/3)*PI*radius*radius*radius<<endl;    }private:    double radius;};class CCylinder:public CSolid{public:    CCylinder();    CCylinder(double r,double h):radius(r),high(h){}    void area()    {        cout<<"圆柱体的表面积为:"<<endl;        cout<<2*PI*radius*high+2*PI*radius*2<<endl;    }    void volume()    {        cout<<"圆柱体的体积为:"<<endl;        cout<<PI*radius*radius*high<<endl;    }private:    double radius;    double high;};int main(){    CSolid *p;    CCube c(2);    p=&c;    p->area();    p->volume();    CBall b(5);    p=&b;    p->area();    p->volume();    CCylinder y(5,6);    p=&y;    p->area();    p->volume();    return 0;}

运算结果:


0 0
原创粉丝点击