第十三周【项目3-立体类族共有的抽象类】
来源:互联网 发布:如何理解数组的概念 编辑:程序博客网 时间:2024/06/05 17:10
问题及代码:
/* 【项目3-立体类族共有的抽象类】 *Copyright (c) 2014,烟台大学计算机学院 *ALL right reserved *文件名: 形状类族的中的纯虚函数 *作者;童宇 *完成日期:2015 年 6月 3日 *版本号v1.0 *问题描述: 设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。 在main()函数中,定义CSolid *p;(p是指向基类的指针,且这个基类是个抽象类)。 要求利用这个p指针,能够求出正方体、球体及圆柱体对象的表面积及体积。 *输入描述: *程序输出: */#include <iostream>using namespace std;class CSolid{public: virtual double SurfaceArea() =0; virtual double Volume() =0;};class CCube:public CSolid //正方体{public: CCube(double x):a(x){}; double SurfaceArea() { return 6*a*a; } virtual double Volume() { return a*a*a; }private: double a;};class CBall:public CSolid //球体{public:CBall(double x):r(x){}; double SurfaceArea() { return 4*r*r*3.14159; } virtual double Volume() { return 4/3*r*r*r*3.14159; }private: double r;};class CCylinder:public CSolid //圆柱体{public:CCylinder(double x,double y):r(x),h(y){}; double SurfaceArea() { return ((r*r*3.14159*2)+(h*2*r*3.14159)); } virtual double Volume() { return h*r*r*3.14159; }private: double r,h;};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
- 第十三周项目:立体类族共有的抽象类
- 第十三周项目-4-立体族类共有的抽象类
- 第十三周 项目3-立体类族共有的抽象类
- 第十三周 项目3-立体类族共有的抽象类
- 第十三周项目3-立体类族共有的抽象类
- 第十三周【项目3-立体类族共有的抽象类】
- 第十三周项目3-立体类族共有的抽象类
- 第十三周项目3——【立体类族共有的抽象类】
- 第十三周项目3 立体类族共有的抽象类
- 第十三周【项目3-立体类族共有的抽象类】
- 第十三周 项目3-立体类族共有的抽象类
- 第十三周 项目3-立体类族共有的抽象类
- 第十三周项目3——立体类族共有的抽象类
- 第十三周项目3--立体类族共有的抽象类
- 第十三周项目3:立体类族共有的抽象类
- 第十三周项目3-立体类族共有的抽象类
- 第十三周项目3-立体类族共有的抽象类
- 第十三周(立体类族共有的抽象类)
- Android 实现记住用户名和密码的功能
- 第十三周 项目一 动物这样叫
- 第13周-程序阅读(4)
- Solr搜索的排序打分规则探讨
- 第十一周项目 0 阅读程序(1.1)
- 第十三周【项目3-立体类族共有的抽象类】
- SqlServer的优化
- 数据清洗小记(2):全角数字转换半角数字
- 十三周项目二
- WCF Contracts and Backward Compatibility
- opencv鼠标操作cvSetMouseCallback和文本显示cvPutText的总结
- BIRT Viewer 参数配置详解
- listview更改选中时item背景色
- 第十三周项目:动物这样叫(3)