题目描述
定义一个CPoint点类,包含数据成员x,y(坐标点)。以CPoint为基类,派生出一个圆形类CCircle,增加数据成员r(半径)和一个计算圆面积的成员函数。
再以CCircle做为直接基类,派生出一个圆柱体类CCylinder,增加数据成员h(高)和一个计算体积的成员函数。
生成圆和圆柱体对象,调用成员函数计算面积或体积并输出结果。
输入
输入圆的圆心位置、半径输入圆柱体圆心位置、半径、高
输出
输出圆的圆心位置 半径输出圆面积
输出圆柱体的圆心位置 半径 高
输出圆柱体体积
样例输入
0 0 1
1 1 2 3
样例输出
Circle:(0,0),1
Area:3.14
Cylinder:(1,1),2,3
Volume:37.68
#include<iostream>
#include <cstring>
using namespace std;
class CPoint{
protected:
int x,y;
public:
CPoint(int x1,int y1):x(x1),y(y1){ }
};
class CCircle:public CPoint{
protected:
int r;
public:
CCircle(int x1,int y1,int r1):CPoint(x1,y1),r(r1){ }
float Area(){
return 3.14*r*r;
}
void print(){
cout<<"Circle:("<<x<<","<<y<<"),"<<r<<endl;
cout<<"Area:"<<Area()<<endl;
}
};
class CCylinder:public CCircle{
protected:
int h;
public:
CCylinder(int x1,int y1,int r1,int h1):CCircle(x1,y1,r1),h(h1){ }
float Volume(){
return 3.14*r*r*h;
}
void print(){
cout<<"Cylinder:("<<x<<","<<y<<"),"<<r<<","<<h<<endl;
cout<<"Volume:"<<Volume()<<endl;
}
};
int main(){
int x,y,r,h;
cin>>x>>y>>r;
CCircle c1(x,y,r);
c1.print();
cin>>x>>y>>r>>h;
CCylinder c2(x,y,r,h);
c2.print();
return 0;
}