/*
*程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称:Rectangle .cpp
* 作 者: 田凤
*完成日期:2013年6月14日
* 版本号: v1.0
* 输入描述: 略
* 问题描述:略
* 输出:输出各立方体的表面积和体积
*代码:
#include <iostream>
using namespace std;
class CSolid
{
public:
virtual double area()=0;
virtual double volume()=0;
};
class CCube:public CSolid
{
public:
CCube(double l):lenth(l){}
virtual double area()
{
return 6*lenth*lenth;
}
virtual double volume()
{
return lenth*lenth*lenth;
}
private:
double lenth;
};
class CBall:public CSolid
{
public:
CBall(double r):radius(r){}
virtual double area()
{
return 4*3.14*radius*radius;
}
virtual double volume()
{
return 4/3*3.14*radius*radius*radius;
}
private:
double radius;
};
class CCylinder:public CSolid
{
public:
CCylinder(double r,double h):radius(r),high(h){}
virtual double area()
{
return 2*3.14*radius*radius+2*3.14*radius*high;
}
virtual double volume()
{
return 3.14*radius*radius*high;
}
private:
double radius;
double high;
};
int main()
{
CSolid *p;
double a,v;
CCube c1(6);
p=&c1;
a=p->area();
cout<<"正方体的表面积为:"<<a<<endl;
v=p->volume();
cout<<"正方体的体积为:"<<v<<endl;
cout<<endl;
CBall c2(8);
p=&c2;
a=p->area();
cout<<"球体的表面积为:"<<a<<endl;
v=p->volume();
cout<<"球体的体积为:"<<v<<endl;
cout<<endl;
CCylinder c3(4,10);
p=&c3;
a=p->area();
cout<<"圆柱体的表面积为:"<<a<<endl;
v=p->volume();
cout<<"圆柱体的体积为:"<<v<<endl;
return 0;
}
*运行结果: