题目描述
定义一个CPoint点类,包含数据成员x,y(坐标点)。
以CPoint为基类,派生出一个圆形类CCircle,增加数据成员r(半径)和一个计算圆面积的成员函数。
再以CCircle做为直接基类,派生出一个圆柱体类CCylinder,增加数据成员h(高)和一个计算体积的成员函数。
生成圆和圆柱体对象,调用成员函数计算面积或体积并输出结果。
输入
输入圆的圆心位置、半径
输入圆柱体圆心位置、半径、高
输出
输出圆的圆心位置 半径
输出圆面积
输出圆柱体的圆心位置 半径 高
输出圆柱体体积
样例查看模式
正常显示查看格式
输入样例1 <-复制
输出样例1
#include<iostream>
#include<iomanip>
using namespace std;
class CPoint
{
protected:
int x;
int y;
public:
CPoint() {};
CPoint(int x, int y)
{
this->x = x;
this->y = y;
}
};
class CCircle:public CPoint
{
protected:
int r;
public:
//和一个计算圆面积的成员函数。
CCircle() {};
CCircle(int x, int y, int r) :CPoint(x, y)
{
this->r = r;
}
//求面积
double getArea()
{
double area = 3.14 * r * r;
return area;
}
void print()
{
cout << "Circle:(" << x << "," << y << ")" << "," << r << endl;
cout << "Area:" << fixed << setprecision(2) << getArea() << endl;
}
};
class CCylinder:public CCircle
{
protected:
int h;
public:
CCylinder() {};
CCylinder(int x,int y,int r,int h):CCircle(x,y,r)
{
this->h = h;
}
double getVolume()
{
double volume = getArea() * h;
return volume;
}
void print()
{
cout << "Cylinder:(" << x << "," << y << ")" << "," << r << "," << h << endl;
cout << "Volume:" << fixed << setprecision(2) << getVolume() << endl;
}
};
int main()
{
int x, y, r;
cin >> x >> y >> r;
CCircle c(x, y, r);
c.print();
int h;
cin >> x >> y >> r >> h;
CCylinder y1(x, y, r, h);
y1.print();
return 0;
}