/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称:score.cpp
* 作 者: 刘元龙
* 完成日期: 2013 年5 月 31 日
* 版本号: v1.0
* 输入描述:
* 问题描述:
* 输出:
*/
#include<iostream>
using namespace std;
//空基类
class csolid
{
public:
virtual void area()
{
cout<<"没和我说信息怎么求:";
}
virtual void v()
{
cout<<"没和我说信息怎么求!";
}
};
//正方体类
class cball:public csolid
{
public:
cball(double);
void area();
void v();
protected:
double d;
};
cball::cball(double R)
{
d=R;
}
void cball::area()
{
double s;
s=d*d;
cout<<"面积为:" <<s<<" ";
}
void cball::v()
{
double v;
v=d*d*d;
cout<<"体积为:"<<v;
cout<<endl;
}
//球类
class ccylinder:public csolid
{
public:
ccylinder(double);
void area();
void v();
protected:
double r;
};
ccylinder::ccylinder(double X)
{
r=X;
}
void ccylinder::area()
{
double s;
s=4*3.14*r*r;
cout<<"面积为:"<< s<<" ";
}
void ccylinder::v()
{
double v;
v=(4/3)*r*r*r;
cout<<"体积为:"<< v<<endl;
}
//圆柱体
class ccube:public csolid
{
public:
ccube(double,double);
void area();
void v();
protected:
double a,b;
};
ccube::ccube(double X,double Y)
{
a=X;//圆柱体地面半径
b=Y;//圆柱体高
}
void ccube::area()
{
double s;
s=(3.14*2*a*b)+(2*3.14*a*a);
cout<<"面积为:"<< s<<" ";
}
void ccube::v()
{
double v;
v=3.14*a*a*b;
cout<<"体积为:"<< v<<endl;
}
int main()
{
ccube c1(12,6);
cball r1(4);
ccylinder t1(4.5);
csolid *p=&c1;
p->area();
p->v();
p=&r1;
p->area();
p->v();
p=&t1;
p->area();
p->v();
return 0;
}
运行结果: