13周任务4
来源:互联网 发布:企业搜索软件破解版 编辑:程序博客网 时间:2024/05/17 03:58
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2012, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 抽象类
* 作 者: 苗影
* 完成日期: 2012 年 5 月 15日
* 版 本 号: x1.0
* 对任务及求解方法的描述部分
* 输入描述: 使用抽象类
* 问题描述: 【任务4】设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。
设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。
在main()函数中,定义基类的指针p(CSolid *p;),利用p指针,输出正方体、球体及圆柱体对象的表面积及体积。
* 程序输出: ......
* 程序头部的注释结束
*/
#include<iostream>using namespace std;class CSolid{public:virtual double area()const=0; virtual double volume()const=0;};class CCube:public CSolid{public:CCube(double r=0.0);virtual double area()const;virtual double volume()const;protected:double radius;};CCube::CCube(double r){radius=r;}double CCube::area() const{return 6*radius*radius;}double CCube::volume() const{return radius*radius*radius;}class CBall:public CSolid{public:CBall(double h=0);virtual double area()const; virtual double volume()const;protected:double heigh;};CBall::CBall(double h):heigh(h){}double CBall::volume()const{return ((3.14159*3*heigh*heigh*heigh)/4);}double CBall::area() const{return 4*3.14159*heigh*heigh;}class CCylinder:public CSolid{public: CCylinder(double d=0,double m=0); virtual double area()const; virtual double volume()const;protected:double di;double ma;};CCylinder::CCylinder(double d,double m):di(d),ma(m){}double CCylinder::area()const{return (2 * 3.14159 * di * di + 2 * 3.14159 * di* ma);}double CCylinder::volume()const{ return(3.14159 * di * di* ma); }int main(){CCube ccube(2);CBall cball(3);CCylinder ccylinder(4,6);CSolid*p;p=&ccube;cout<<"正方体的表面积是:"<<p->area ()<<"\n"<<"正方体的体积是"<<p->volume ()<<"\n";p=&cball;cout<<"球体的表面积是:"<<p->area ()<<"\n"<<"球体的体积是"<<p->volume ()<<"\n";p=&ccylinder; cout<<"圆柱体的表面积是:"<<p->area ()<<"\n"<<"圆柱体的体积是"<<p->volume ()<<"\n";system("pause");return 0;}
运行结果:正方体的表面积是:24正方体的体积是8球体的表面积是:113.097球体的体积是63.6172圆柱体的表面积是:251.327圆柱体的体积是301.593请按任意键继续. . .
感言:很快完成了任务,真好!!要是每次都这样多好
- 13周任务4
- 13周任务4
- 第13周任务4
- 第13周任务4
- 第13周实验报告任务4
- 13周实验报告(任务4)
- 13周实验报告 任务4
- 13周任务1
- 13周任务3
- 13周任务1
- 13周任务2
- 13周任务1
- 13周任务2
- 13周任务3
- 13周任务:汉诺塔
- 13周任务一
- 13周任务er
- 13周任务四
- CPU卡发卡总结(一)
- Qt学习-QString
- CPU卡发卡总结(二)——线路保护和线路加密
- JAVA调用系统命令或可执行文件
- JDK动态代理和CGLIB动态代理
- 13周任务4
- C++ TwoStudy
- Java:从控制台(console,命令行)读取字符
- SessionFactory打开Session
- Linux USB subsystem --- USB create HCD
- 路由器与交换机的区别及举例
- mcc与mex
- Linux USB subsystem --- EHCI host controller register
- 文字-001.软件危机