第十三周项目四立体类族共有的抽象类
来源:互联网 发布:软件体系有哪些 编辑:程序博客网 时间: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
- 第十三周项目:立体类族共有的抽象类
- 第十三周项目四-立体类族共有的抽象类
- 第十三周项目四-立体类族共有的抽象类
- 第十三周项目四立体类族共有的抽象类
- 第十三周项目-4-立体族类共有的抽象类
- 第十三周(立体类族共有的抽象类)
- 第十三周--立体类族共有的抽象类
- 项目四。立体类族共有的抽象类
- 第十三周 项目3-立体类族共有的抽象类
- 第十三周 项目三:立体类族共有的抽象类
- 第十三周 项目3-立体类族共有的抽象类
- 第十三周项目三:立体类族共有的抽象类
- 第十三周项目3-立体类族共有的抽象类
- 第十三周项目三 立体类族共有的抽象类
- 第十三周项目二——立体类族共有的抽象类
- 第十三周项目三——立体类族共有的抽象类
- 第十三周项目三 立体类族共有的抽象类
- 第十三周【项目3-立体类族共有的抽象类】
- DOM解析XML文件并添加到数据库中
- UIApplication深入研究
- opencv批处理提取图像的特征
- volley源码分析
- Java的递归
- 第十三周项目四立体类族共有的抽象类
- cocos 获得2个点形成的线段的角度
- iMPACT在win10 64位系统不能烧写程序
- 自己动手封装图片三级缓存网络请求框架(类似imageloader)
- 第三方登录
- 来自一个react SPA的总结--redux篇
- Android程序设计:自定义View简单颜色选择器
- 几种素数判定方法
- iOS基础:枚举