您的位置:首页 > 其它

设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等

2014-01-14 17:33 507 查看
#include<iostream>
#include<cstdlib>
#include<cmath>
using namespace std;
class CPoint
{
private:
double x; // 横坐标
double y; // 纵坐标
public:
CPoint(double xx=0,double yy=0);
double GetX(){return x;}
double GetY(){return y;}
double Distance(CPoint p) const; // 两点之间的距离(一点是当前点,另一点为参数p)
double Distance0() const; // 到原点的距离
CPoint SymmetricAxis(const char style);//style取'x','y'和'o'分别表示按x轴, y轴, 原点对称
void input(); //以x,y 形式输入坐标点
void output(); //以(x,y) 形式输出坐标点
};
int main()
{
CPoint aa;
aa.input();
CPoint bb(4,3);
cout<<"点("<<aa.GetX()<<","<<aa.GetY()<<")与"
<<"点("<<bb.GetX()<<","<<bb.GetY()<<")距离:"
<<aa.Distance(bb)<<endl;
cout<<"点("<<aa.GetX()<<","<<aa.GetY()<<")到原点距离:"
<<aa.Distance0()<<endl;
char c='o';
aa.SymmetricAxis(c);
cout<<"关于"<<c<<"对称坐标:";
aa.output();
return 0;
}
CPoint::CPoint(double xx,double yy):
x(xx),y(yy){}
double CPoint::Distance(CPoint p) const
{
return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
}
double CPoint::Distance0() const
{
return sqrt(x*x+y*y);
}
CPoint CPoint::SymmetricAxis(const char style)
{
switch(style)
{
case 'x':y=-y;break;
case 'y':x=-x;break;
case 'o':x=-x;y=-y;break;
default :cout<<"输入错误。。。"<<endl;
}
return *this;
}
void CPoint::input()
{
x=3;y=4;
}
void CPoint::output()
{
cout<<"("<<GetX()<<","<<GetY()<<")"<<endl;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐