第十三周项目四立体类族共有的抽象类

来源:互联网 发布:软件体系有哪些 编辑:程序博客网 时间:2024/05/16 12:08
/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:main.cpp *作    者:闫舒 *完成日期:2016年6月21日 *版 本 号:vc++6.0 * *问题描述:设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。 *输入描述: *程序输出: */#include <iostream>using namespace std;class CSolid{public:    virtual double SurfaceArea()const =0;    virtual double Volume() const =0;};class CCube:public CSolid{public:    CCube(double len=0);    double SurfaceArea() const;   // 求表面积    double Volume() const;        // 求体积private:    double length;};CCube::CCube(double len){    length=len;}double CCube::SurfaceArea() const{   double c;    c=6*length*length;    return c;}double CCube::Volume() const{    double e;    e=length*length*length;    return e;}class CBall:public CSolid{private:    double radius;public:    CBall(double r=0);    double SurfaceArea() const;    double Volume() const;};CBall::CBall(double r){    radius=r;}double CBall::SurfaceArea() const{    double r;    r=4*3.14159*radius*radius;    return r;}double CBall::Volume() const{    double r;    r=3.14159*radius*radius*radius*4/3;    return r;}class CCylinder : public CSolid{private:        double radius;    double height;public:    CCylinder(double r=0,double high=0);    double SurfaceArea() const;       // 求表面积    double Volume() const;            // 求体积};CCylinder::CCylinder(double r,double high){    radius=r;    height=high;}double CCylinder::SurfaceArea() const{    double c;    c=2*3.14159*radius*radius+2*3.14159*radius*height;    return c;}// 求圆柱体体积double CCylinder::Volume() const{    double c;    c=3.14159*radius*radius*height;    return c;}int main( ){    CSolid *p;    double s,v;    CCube x(10);    cout<<"立方体边长为 10 "<<endl;    p=&x;    s=p->SurfaceArea( );    v=p->Volume( );    cout<<"表面积:"<<s<<endl;    cout<<"体积:"<<v<<endl;    cout<<endl;    CBall y(3.7);    cout<<"球体半径为 3.7 "<<endl;    p=&y;    s=p->SurfaceArea( );    v=p->Volume( );    cout<<"表面积:"<<s<<endl;    cout<<"体积:"<<v<<endl;    cout<<endl;    CCylinder z(10,20);    cout<<"圆柱体底面半径、高分别为 10, 20"<<endl;    p=&z;    s=p->SurfaceArea( );    v=p->Volume( );    cout<<"表面积:"<<s<<endl;    cout<<"体积:"<<v<<endl;    cout<<endl;    return 0;}

运行结果:


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 脸上发痒长痘怎么办 扣扣魔性表情泡泡消失怎么办 脚起小泡泡很痒怎么办 孕妇脚痒起水泡怎么办 孕妇手脚起湿疹怎么办 嘴巴破皮了怎么办 小便刺痛阴唇红肿怎么办 集成墙面挂照片怎么办 苹果电脑网页游戏打不开怎么办 苹果6plus发热怎么办 玩手游手机太卡怎么办 苹果七发烫厉害怎么办 苹果手机延迟高怎么办 王者荣耀总是卡怎么办 王者荣耀卡屏怎么办 王者荣耀网络延迟怎么办 荣耀8手机卡了怎么办 荣耀v10有点卡怎么办 荣耀10有点卡怎么办 8g内存吃鸡会崩怎么办 玩看门狗很卡怎么办 拼多多人数不够怎么办 玩cf想吐怎么办 玩手机头晕恶心怎么办 玩手机头疼恶心怎么办 看手机想吐怎么办 英雄联盟取名后怎么办 王者荣耀改名重复怎么办 刺激战场改名重复怎么办 省钱快报忘记密码怎么办 手机直播网速卡怎么办 触手tv直播黑屏怎么办 酷狗id密码忘记怎么办 打游戏网络不稳定怎么办 电脑打字法没了怎么办 家庭版密钥专业版系统怎么办 win7应用程序不能启动怎么办 win7用户密码忘记了怎么办 win7用户密码忘了怎么办 windows开不了机怎么办 网卡被卸载了怎么办