第13周 项目4

来源:互联网 发布:linux 中文输入 编辑:程序博客网 时间:2024/04/27 01:00
/**Copyright (c)2016,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:main.cpp*作    者:肖雪*完成日期:2016年6.14*版 本 号:v1.0*问题描述:设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。*          设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。*          在main()函数中,定义CSolid *p;(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=2*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;return 0;}
<img src="http://img.blog.csdn.net/20160614221508288" alt="" />

0 0
原创粉丝点击