# 【任务3】设计平面坐标点类，计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等

* 程序头部注释开始* 程序的版权和版本声明部分

* 作 者： 时永杰

* 完成日期： 2012 年 3月 26日

* 版 本 号：4308

#include <iostream>

#include <cmath>

using namespace std;

enum SymmetricStyle{ axisx,axisy,point};

class Cpoint
{
private:
double x;
double y;
public:
Cpoint (double xx=0,double yy=0);

double Distance (Cpoint &p) const;

double Distance0() const;

Cpoint symmertricAxis(SymmetricStyle style) const;

void intput();

void output();

double returnx(){return x;} ;

double returny(){return y;} ;

};

Cpoint::Cpoint (double xx,double yy)
{
x=xx;
y=yy;
}
double Cpoint::Distance (Cpoint &p) const
{
cout<< "到p点距离"<<sqrt((x-p.returnx())*(x-p.returnx())+((y-p.returny())*(y-p.returny())))<<endl;
return 0;
}

double Cpoint::Distance0() const
{
cout<< "到原点距离"<<sqrt(x*x+y*y)<<endl;
return 0;
}
Cpoint Cpoint::symmertricAxis(SymmetricStyle style) const
{
double a,b;
switch(style)
{
case axisx:{
a=-x;
b=y;
cout<<"按x轴对称"<<"("<<a<<","<<b<<")"<<endl;
};
case axisy:{
a=x;
b=-y;
cout<<"按y轴对称"<<"("<<a<<","<<b<<")"<<endl;
};
case point:{
a=-x;
b=-y;
cout<<"按原点对称"<<"("<<a<<","<<b<<")"<<endl;
}break;
default:cout<<"输入错误";break;
}
return 0;
}

void Cpoint::intput()
{
char ch1,ch2,ch3;
do
{
cout<<"请以(x,y)的方式输入x,y:";
cin>>ch1>>x>>ch2>>y>>ch3;
if(ch1 == '(' && ch2 == ',' && ch3 == ')')
break;
}
while (1);
}
void Cpoint::output()
{
cout<<"该点为"<<"("<<x<<","<<y<<")"<<endl;
}
int main()
{
SymmetricStyle style;
Cpoint p(5,6);
Cpoint a;
a.intput();
a.Distance ( p);
a.Distance0();

cout<<"style的类型（axisx按x轴对称,axisy按y轴对称,point按原点轴对称）"<<endl;

style=axisx;

a.symmertricAxis( style);
a.output();
return 0;
}

04-13 1952

04-13 869

04-29 1200

02-17 815

03-27 2054

03-24 421

12-18 1023

02-27 1597

03-27 775

07-25 1036