第十三周实验报告4
来源:互联网 发布:js中如何实现继承 编辑:程序博客网 时间:2024/05/21 01:56
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 赵桐辉
* 完成日期: 2012 年 05 月 14 日
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:
设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义基类的指针p(CSolid *p;),利用p指针,输出正方体、球体及圆柱体对象的表面积及体积。
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
#include<iostream> #include<Cmath> using namespace std;const double pi=3.1415926; class CSolid //定义抽象基类{public:virtual double superficial_areas()=0;//表面积 virtual double volume()=0; //体积 }; class CCube: public CSolid //利用抽象基类定义正方体类 { public: CCube(double CCube_long);//构造函数 ~CCube(){} double superficial_areas();double volume();private: double CCube_long; };class CBall: public CSolid //利用抽象基类定义球体类 { public: CBall(double CBall_long);//构造函数 ~CBall(){} double superficial_areas();double volume(); private: double CBall_long; }; class CCylinder: public CSolid //利用抽象基类定义圆柱体类 { public: CCylinder(double CCylinder_bottom,double CCylinder_high); //构造函数 ~CCylinder(){} double superficial_areas();double volume(); private: double CCylinder_bottom;double CCylinder_high; };CCube::CCube(double CCube_long)//构造函数{this->CCube_long=CCube_long;}double CCube::superficial_areas(){return (6*CCube_long*CCube_long);}double CCube::volume(){return (CCube_long*CCube_long*CCube_long);}CBall::CBall(double CBall_long){this->CBall_long=CBall_long;}double CBall::superficial_areas(){return (4*pi*CBall_long*CBall_long);}double CBall::volume(){return (4*pi*CBall_long*CBall_long*CBall_long/3);}CCylinder::CCylinder(double CCylinder_bottom,double CCylinder_high){this->CCylinder_bottom=CCylinder_bottom;this->CCylinder_high=CCylinder_high;}double CCylinder::superficial_areas() {return (2*pi*CCylinder_bottom*CCylinder_bottom+2*pi*CCylinder_bottom*CCylinder_high);}double CCylinder::volume(){return (pi*CCylinder_bottom*CCylinder_bottom*CCylinder_high);}int main(){CCube CCube1(10.6); //建立CCube类对象c1,参数为正方体边长CBall CBall1(4.7); //建立CBall1类对象CBall1,参数为球的半径CCylinder CCylinder1(4.9,6.4); //建立CCylinder类对象CCylinder1,参数为圆柱体的半径和高CSolid *p;p=&CCube1;cout<<"totol of CCube areas="<<p->superficial_areas()<<endl; //输出表面积cout<<"totol of CCube volume="<<p->volume()<<endl; //输出体积p=&CBall1;cout<<"totol of CBall areas="<<p->superficial_areas()<<endl; //输出表面积cout<<"totol of CBall volume="<<p->volume()<<endl; //输出体积p=&CCylinder1;cout<<"totol of CCylinder areas="<<p->superficial_areas()<<endl; //输出表面积cout<<"totol of CCylinder volume="<<p->volume()<<endl; //输出体积system("pause");return 0;}
- 第十三周实验报告4
- 第十三周实验报告4
- 第十三周实验报告4
- 第十三周实验报告4
- 第十三周实验报告4
- 第十三周实验报告4
- 第十三周实验报告4
- 第十三周实验报告任务4
- 《第十三周实验报告任务4》
- 第十三周实验报告(4)
- 第十三周实验报告(4)
- 第十三周实验报告3
- 第十三周实验报告一
- 第十三周实验报告2
- 第十三周实验报告1
- 第十三周实验报告2
- 第十三周实验报告3
- 第十三周实验报告1
- 著作权法规定的职务作品的著作权归属原则
- .NET使用swfupload实现图片批量上传
- 13周任务三:派生类
- 第十三周实验报告(1)
- DX打印XtraGrid
- 第十三周实验报告4
- Js操作Select大全
- x86系统引导(1)
- uboot 移到开发板主要命令
- Preview of BI 2012 with Speaker Dan Kearnan: Expect SAP NetWeaver BW to Run Soon on SAP HANA
- 这才叫视网膜显示:无线光伏视网膜移植有重大突破
- 10300 Ecological Premium
- 第十三周实验报告一
- jQuery源码分析18: .animate()(待续)