第十三周实验报告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;}


 

原创粉丝点击