第十三周实验报告4
来源:互联网 发布:snapseed软件下载 编辑:程序博客网 时间:2024/06/06 05:20
/* (程序头部注释开始)* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称:设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。* 作 者: 刘程程 * 完成日期: 2012 年 05 月 16 日* 版 本 号: V1.0 * 对任务及求解方法的描述部分* 输入描述: 设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。* 问题描述: * 程序输出:在main()函数中,定义基类的指针p(CSolid *p;),利用p指针,输出正方体、球体及圆柱体对象的表面积及体积。 * 程序头部的注释结束#include <iostream>using namespace std;const double pai=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 c; c=6*length*length; return c;}//求立方体体积double CCube::Volume() const{ double c; c=length*length*length; return c;}//球体类class CBall:public CSolid{private: double radius;//圆周率public: CBall(double r=0); double SurfaceArea()const;//求表面积 double Volume() const;//求体积};//球体类构造函数CBall::CBall(double r){ radius=r;}//求球体表面积double CBall::SurfaceArea() const{ double c; c=4*pai*radius*radius; return c;}//求球体体积double CBall::Volume() const{ double c; c=pai*radius*radius*radius*4/3; return c;}//圆柱体类class CCylinder:public CSolid{private: double radius; double height;public: CCylinder(double r=0,double high=0); double SurfaceArea()const;//求表面积 double Volume()const;//求体积};//圆柱体构造函数CCylinder::CCylinder(double r,double high){ radius=r; height=high;}//求圆柱体表面积double CCylinder::SurfaceArea()const{ double c; c=pai*radius*radius+2*pai*radius*height; return c;}//求圆柱体体积double CCylinder::Volume() const{ double c; c=pai*radius*radius*height; return c;}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; system("pause"); return 0;}
- 第十三周实验报告4
- 第十三周实验报告4
- 第十三周实验报告4
- 第十三周实验报告4
- 第十三周实验报告4
- 第十三周实验报告4
- 第十三周实验报告4
- 第十三周实验报告任务4
- 《第十三周实验报告任务4》
- 第十三周实验报告(4)
- 第十三周实验报告(4)
- 第十三周实验报告3
- 第十三周实验报告一
- 第十三周实验报告2
- 第十三周实验报告1
- 第十三周实验报告2
- 第十三周实验报告3
- 第十三周实验报告1
- ipv6地址转换
- systemtap显示调用树
- 设计模式之13适配器模式(笔记)
- Android_UI_点击按钮切换背景效果实现
- 递归应用解析
- 第十三周实验报告4
- Tomcat 抛出 Cannot serialize session attribute 异常
- 程序实现删除带空格文件夹方法
- 黑马程序员-003ADO.NET五个主要对象
- vs2010 出现错误“AxImp.exe”已退出,代码为 -1163019603。
- 黑马程序员--交通灯管理系统总结
- strncpy的实现方式
- JQGrid二种方法加载Json数据
- dos 批处理 延时技术