第13周项目4-立体类族共有的抽象类
来源:互联网 发布:windows中的粘滞键是 编辑:程序博客网 时间:2024/05/16 05:04
#include "iostream"using namespace std;const double pai=3.1415926;// 抽象立体图形基类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 c; c=length*length*length; return c;}// 球体类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 c; c=4*pai*radius*radius; return c;}// 求球体体积double CBall::Volume() const{ double c; c=pai*radius*radius*radius*4/3; return c;}// 圆柱体类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*pai*radius*radius+2*pai*radius*height; return c;}// 求圆柱体体积double CCylinder::Volume() const{ double c; c=pai*radius*radius*height; return c;}int main( ){ CSolid *p; double s,v; CCube x(30); cout<<"立方体边长为 30 "<<endl; p=&x; s=p->SurfaceArea( ); v=p->Volume( ); cout<<"表面积:"<<s<<endl; cout<<"体积:"<<v<<endl; cout<<endl; CBall y(4.5); cout<<"球体半径为 4.5 "<<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;}
运行结果:
1 0
- C++第13周项目 多态性 【项目4-立体类族共有的抽象类】
- 第13周实践项目4立体类族共有的抽象类
- 第13周-项目4-立体类族共有的抽象类
- 第13周项目4-立体类族共有的抽象类
- 第13周项目4-立体类族共有的抽象类
- 第13周项目4:立体类族共有的抽象类
- 第13周项目4—立体类族共有的抽象类
- 第13周项目4--立体类族共有的抽象类
- 第13周实践项目4立体类族共有的抽象类
- 第13周项目4-立体类族共有的抽象类
- 第13周项目3立体类族共有的抽象类
- 第13周-多态性-项目3-立体类族共有的抽象类
- 第13周项目3—立体类族共有的抽象类
- 第13周上机实践项目3——立体类族共有的抽象类
- 第13周项目3-立体类族共有的抽象类
- 第13周 【项目3-立体类族共有的抽象类】
- 第13周项目3-立体类族共有的抽象类
- 第13周项目3-立体类族共有的抽象类
- 【BZOJ1643】[Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪【暴力】
- appcan页面间的通讯
- C++中指针指向以为二维数组
- Middle-题目69:330. Patching Array
- Oracle查询被锁定表以及解锁
- 第13周项目4-立体类族共有的抽象类
- 快速排序(Quick sort)
- C++中c_str()函数的用法
- jQuery scroll事件实现监控滚动条分页示例
- IOS学习之蓝牙4.0 BLE通信
- 正则表达<一>
- TO-DO app项目总结(一)
- 利用MAVEN打包可运行jar包,包括依赖的第三方包
- 深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)