#include<iostream>
using namespace std;
class Point
{
protected:
double p_X;
double p_Y;
public:
Point(){}
Point(double x,double y):p_X(x),p_Y(y) {}
void cin_XY(double x,double y);
void show_Point();
double get_X()
{
return p_X;
}
double get_Y()
{
return p_Y;
}
friend ostream & operator<<(ostream&output, Point &a);
friend istream & operator>>(istream&input, Point &a);
};
void Point::cin_XY(double x,double y)
{
p_X=x;
p_Y=y;
}
void Point::show_Point()
{
cout<<'('<<p_X<<','<<p_Y<<')'<<endl;
}
ostream & operator<<(ostream &,Point &a)
{
cout<<'('<<a.p_X<<','<<a.p_Y<<')';
return cout;
}
istream & operator>>(istream &,Point &a)
{
cout<<"请分别输入x,y坐标\n";
cin>>a.p_X>>a.p_Y;
return cin;
}
class Circle:public Point
{
protected:
double m_R;
public:
Circle(){}
Circle(double x,double y,double r):Point(x,y),m_R(r) {}
void cin_Circle();
void show_Circle();
double get_area();
double get_R()
{
return m_R;
}
friend ostream & operator<<(ostream &,Circle &a);
friend istream & operator>>(istream & ,Circle &a);
};
void Circle::cin_Circle()
{
cout<<"输入圆心坐标和,半径\n";
cin>>p_X>>p_Y>>m_R;
}
void Circle::show_Circle()
{
cout<<"圆心坐标为";
show_Point();
cout<<"半径为"<<m_R<<endl;
}
double Circle::get_area()
{
double a;
a=m_R*m_R*3.14;
return a;
}
ostream & operator<<(ostream &,Circle &a)
{
cout<<"圆心坐标为"<<'('<<a.p_X<<','<<a.p_Y<<')'<<"半径为"<<a.m_R;
return cout;
}
istream & operator>>(istream &,Circle &a)
{
cout<<"输入圆心坐标和半径\n";
cin>>a.p_X>>a.p_Y>>a.m_R;
return cin;
}
class Volume:public Circle
{
protected:
double v_Height;
public:
Volume(){};
Volume(double a,double b,double c,double d):Circle(a,b,c),v_Height(d){}
double get_Height(){return v_Height;};
double get_volume();
void show_Volume();
friend ostream &operator<<(ostream&,Volume &a);
};
double Volume::get_volume()
{
double a;
a=m_R*m_R*3.14*v_Height;
return a;
}
void Volume::show_Volume()
{
cout<<"圆柱体的底面圆心为"<<'('<<p_X<<','<<p_Y<<')'<<"底面半径为"<<m_R<<"高为"<<v_Height<<endl;
}
ostream &operator<<(ostream &,Volume &a)
{
cout<<"圆柱体的底面圆心为"<<'('<<a.p_X<<','<<a.p_Y<<')'<<"底面半径为"<<a.m_R<<"高为"<<a.v_Height;
return cout;
}
int main()
{
Point a(1,5),b;
a.show_Point();
cin>>b;
cout<<a<<b<<endl;
Circle c,d(4,5,9);
d.show_Circle();
cin>>c;
cout<<c<<endl;
Volume e(3,4,5,6);
e.show_Volume();
cout<<"体积为"<<e.get_volume()<<endl;
cout<<e;
return 0;
}
2015.5.20类
最新推荐文章于 2023-01-16 16:36:10 发布