第十二周项目三立体类族共有的抽象类
来源:互联网 发布:c语言sqrt函数 编辑:程序博客网 时间:2024/06/05 18:03
/*Copyright(c)2014,烟台大学计算机学院 *Allrights reserved. *文件名称:MADE2.cpp *作 者:张生栋 *完成日期:2015年6月6日 *问题描述:设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder, 分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类) 。要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。 *输入描述:无 *输出描述:略 *版 本 号:v1.0 */ #include <iostream>using namespace std;const double pi=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 s; s=6*length*length; return s;}double CCube:: Volume() const{ double v; v=length*length*length; return v;}class CBall:public CSolid{public: CBall(double r=0); double SurfaceArea() const; double Volume() const;private: double radius;};CBall::CBall(double r){ radius=r;}double CBall:: SurfaceArea() const{ double s; s=4*pi*radius*radius; return s;}double CBall:: Volume() const{ double v; v=pi*radius*radius*radius*4/3; return v;}class CCylinder:public CSolid{public: CCylinder(double r=0,double h=0); double SurfaceArea() const; double Volume() const;private: double radius; double height;};CCylinder::CCylinder(double r,double h){ radius=r; height=h;}double CCylinder:: SurfaceArea() const{ double s; s=pi*radius*radius*2+2*pi*radius*height; return s;}double CCylinder:: Volume() const{ double v; v=pi*radius*radius*height; return v;}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;}
运行结果:
0 0
- 第十二周项目三立体类族共有的抽象类
- 项目三-立体类族共有的抽象类
- 第十三周项目:立体类族共有的抽象类
- 第14周 项目三 立体类族共有的抽象类
- 2014-第14周项目三-立体类族共有的抽象类
- 第十三周 项目三:立体类族共有的抽象类
- 第十三周项目三:立体类族共有的抽象类
- 第十三周项目三 立体类族共有的抽象类
- 第十三周项目三——立体类族共有的抽象类
- 第十三周项目三 立体类族共有的抽象类
- 第十三周项目三立体类族共有的抽象类
- 十二周——多态性——项目三 立体类族共有的抽象类
- 第十三周 项目三--立体类族共有的抽象类
- 15第十三周项目三——立体类族共有的抽象类
- 第十三周项目三:立体类族共有的抽象类
- 2015年第十三周项目三:立体类族共有的抽象类
- 第十三周 项目三 立体类族共有的抽象类
- 第十三周项目三--立体类族共有的抽象类
- oracle查询 :一个角色包括的系统权限,对象权限,Oracle有多少种角色,某个用户有什么角色
- NSURLSession NSURLConnection下载大文件 断点下载
- 疯狂Java学习笔记(75)-----------NIO.2第一篇
- 我的互联网安全观
- Codeforces Round #306 (Div. 2) D - Regular Bridge 构造
- 第十二周项目三立体类族共有的抽象类
- thinkPHP 从写URL配置掉index.php
- 水仙花数
- ibatis 的<![CDATA[干嘛的
- HIVE快速入门
- 常见向量范数和矩阵范数
- java 到底老年代和年轻代的比例为多大合适呢?
- 技术 blog10 by 八戒
- DOCKER INSTALL