13周实验报告(任务4)
来源:互联网 发布:电脑 双肩包 女 知乎 编辑:程序博客网 时间:2024/06/06 14:19
任务描述:
/*【任务】设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义基类的指针p(CSolid *p;),利用p指针,输出正方体、球体及圆柱体对象的表面积及体积。*/
源程序及其运行结果:
#include<iostream>#define pi 3.14using namespace std;class CSolid{public:virtual double Area() = 0;virtual double Volume() = 0;};class CCube:public CSolid{private:double side;public:CCube(double s):side(s){};double Area();double Volume();};double CCube::Area() {return(6*side*side);}double CCube::Volume(){return (side *side *side);}class CBall:public CSolid{private:double Ball_R;public:CBall(double br):Ball_R(br){};double Area();double Volume();};double CBall::Area(){return(4 * pi * Ball_R * Ball_R);}double CBall::Volume(){return((4 * pi * Ball_R * Ball_R * Ball_R)/ 3);}class CCylinder:public CSolid{private:double high;double radius;public:CCylinder(double r,double h):radius(r),high(h){};double Area();double Volume();};double CCylinder::Area(){return((2* pi* radius* radius)+(2* pi * radius *high));}double CCylinder::Volume(){return(pi* radius *radius *high);}int main(){CSolid *p; double s,v; CCube x(30); cout<<"立方体边长为"<<endl; p=&x; s=p->Area( ); v=p->Volume( ); cout<<"表面积:"<<s<<endl; cout<<"体积:"<<v<<endl; cout<<endl; CBall y(4.5); cout<<"球体半径为.5"<<endl; p=&y; s=p->Area( ); v=p->Volume( ); cout<<"表面积:"<<s<<endl; cout<<"体积:"<<v<<endl; cout<<endl; CCylinder z(10,20); cout<<"圆柱体底面半径、高分别为, 20"<<endl; p=&z; s=p->Area( ); v=p->Volume( ); cout<<"表面积:"<<s<<endl; cout<<"体积:"<<v<<endl; cout<<endl; system("pause");return 0;}运行结果:立方体边长为30表面积:5400体积:27000球体半径为4.5表面积:254.34体积:381.51圆柱体底面半径、高分别为10, 20表面积:1884体积:6280请按任意键继续. . .
知识积累:
1.熟悉抽象类的使用和过程中的关键点
2.在main函数中通过使用指针,调用不同的成员函数,熟悉基类和派生类的关系。
- 13周实验报告(任务4)
- 第13周实验报告任务4
- 13周实验报告 任务4
- 13周实验报告(任务3)
- 第三周实验报告(任务4)
- 第五周实验报告(任务4)
- 第六周实验报告(任务4)
- 第13周实验报告(任务2)
- 第13周实验报告任务1
- 第13周实验报告任务1
- 第13周实验报告任务2
- 第13周实验报告任务3
- 第13周实验报告任务2
- 13周实验报告 任务3
- 第4周实验报告任务4
- 《第三周实验报告任务4》
- 第三周实验报告 任务4
- 第4周实验报告任务3
- iphone开发证书制作
- 13周实验报告(任务3)
- mpeg2学习
- Flex+Java项目,Myeclipse环境下“Target runtime Apache Tomcat v6.0 is not defined ” 错误解决方法
- [离散化+线段树+扫描线]POJ_1151_Atlantis
- 13周实验报告(任务4)
- 深入理解Android Sensor系统 (4.0)
- 堆、优先级队列和堆排序
- an error occurred while completing process -java.lang.reflect.InvocationTargetException
- 模版models运行环境
- I,P,B帧和PTS,DTS的关系
- oracle 中raise_application_error 使用方法
- 堕落之后重新开始学习
- 过渡页(桥页)