各种物体的表面积体积
2016-06-15 20:11
465 查看
/* *烟台大学计算机学院 *文件名称:main.cpp *作 者:王者健 *完成日期:2016年6月15日 *版 本 号:codeblocks 16.01 *问题描述: *输入描述: *程序输出: */ #include <iostream> #include<Cmath> 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; }
相关文章推荐