#include<iostream>
#include<Cmath>
using namespace std;
class CPoint
{
public:
CPoint(double xx=0,double yy=0);
double Distance1(CPoint p) const;
double Distance0() const;
void SymmetricAxis(char style) const;
void input();
void output();
private:
double x,y;
};
CPoint::CPoint(double xx,double yy):x(xx),y(yy){}
double CPoint::Distance1(CPoint p) const
{
return sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));
}
double CPoint::Distance0() const
{
return sqrt(x*x+y*y);
}
void CPoint::SymmetricAxis(char style) const
{
double a,b;
switch(style)
{
case axisx:
{
a=x,b=-y;
}
break;
case axisy:
{
a=-x,b=y;
}
break;
case point:
{
a=-x,b=-y;
}
break;
}
cout<<"("<<a<<","<<b<<")"<<endl;
}
void CPoint::input()
{
char c;
cout<<"请输入坐标(形式:x,y):";
cin>>x>>c>>y;
if(c!=',')
{
cout<<"输入错误"<<endl;
}
}
void CPoint::output()
{
cout<<"输入的坐标为:"<<"("<<x<<","<<y<<")"<<endl;
}
int main()
{
CPoint CP;
CP.input();
CPoint cp(1,1);
CP.output();
cout<<"该点到p点的距离为:"<<CP.Distance1(cp)<<endl;
cout<<"该点到原点的距离为:"<<CP.Distance0()<<endl;
cout<<"style的类型(symmetricX按x轴对称,symmetricY按y轴对称,symmetricO按原点轴对称)"<<endl;
cout<<"该点关于x轴对称的点为:"<<CP.SymmetricAxis(axisx)<<endl;
cout<<"该点关于y轴对称的点为:"<<CP.SymmetricAxis(axisy)<<endl;
cout<<"该点关于o点对称的点为:"<<CP.SymmetricAxis(point)<<endl;
return 0;
}