定义平面二维点类CPoint,有数据成员x坐标,y坐标,函数成员(构造函数、虚函数求面积GetArea, 虚函数求体积函数GetVolume、输出点信息函数print。 由CPoint类派生出圆类Cirle类(新增数据成员半径radius),函数成员(构造函数、求面积GetArea,虚函数求体积函数GetVolume、输出圆面积信息函数print。 再由Ccirle类派生出圆柱体Ccylinder类(新增数据成员高度height),函数成员(构造函数、求表面积GetArea ,求体积函数GetVolume、输出圆柱体体积信息函数print。在主函数测试这个这三个类。 打印数据保留小数点后2位
输入格式:
点的:x坐标 点的:y坐标 圆半径 圆柱高
输出格式:
点信息 圆面积 圆柱体积
样例">样例">样例">样例">样例">样例">输入样例:
在这里给出一组输入。例如:
1
2
3
4
输出样例:
在这里给出相应的输出。例如:
CPoint:1,2
CirleArea:28.26
CcylinderVolume
这里直接给出答案!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
本人大一新生初学者后续将陆续推出各种学习笔记以及优质题目的分享
//代码可以通过提交,可以供直接用,不过此题意图还是想加深对继承,组合,虚函数的理解
//代码不多也易理解
#include<iostream>
using namespace std;
/****************************************************************************/
class point{
private:
double x,y;
public:
void print();
point(double x1,double y1);
};
point::point(double x1,double y1){x=x1;y=y1;}
void point::print(){
cout<<"CPoint:"<<x<<","<<y<<endl;
}
/*****************************************************************************/
class circle:public point{
private:
double r;
public:
circle(int x,int y,double r1);
virtual double getarea();
virtual double get_r();
virtual void print();
};
circle::circle(int x,int y,double r1):point(x,y){r=r1;}
double circle::getarea(){
return 3.14*r*r;
}
double circle::get_r(){return r;}
void circle::print(){
cout<<"CirleArea:"<<getarea()<<endl;
}
/****************************************************************************/
class ccylinde:public circle{
private:
int height;
public:
ccylinde(double,double,double,double);
virtual double getarea();
double get_v();
virtual void print();
};
ccylinde::ccylinde(double x,double y,double r,double h):circle(x,y,r){
height=h;
}
double ccylinde::getarea(){
return 3.14*get_r()*get_r();
}
double ccylinde::get_v(){
return getarea()*height;
}
void ccylinde::print(){
cout<<"CcylinderVolume:"<<get_v()<<endl;
}
/****************************************************************************/
int main(){
double x,y,r,h;
cin>>x>>y>>r>>h;
point p(x,y);
p.print();
circle c(x,y,r);
c.print();
ccylinde cc(x,y,r,h);
cc.print();
return 0;
}