第六周实验报告任务3
来源:互联网 发布:关掉windows winhlp 32 编辑:程序博客网 时间:2024/06/05 03:16
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
#include<iostream> using namespace std; #include<cmath> enum SymmetricStyle { axisx,axisy,point};//分别表示按x轴, y轴, 原点对称 class CPoint { private: double x; // 横坐标 double y; // 纵坐标 public: CPoint(double xx=0,double yy=0); double Distance(CPoint p) const; // 两点之间的距离(一点是当前点,另一点为参数p) double Distance0() const; // 到原点的距离 CPoint SymmetricAxis(SymmetricStyle style) const; // 返回对称点 void input(); //以x,y 形式输入坐标点 void output(); //以(x,y) 形式输出坐标点 }; void CPoint::input() { char m; while(1) { cin>>x>>m>>y; if(m !=',') { cout<<"输入错误"<<endl; } else break; } } double CPoint::Distance(CPoint p) const { double n; n=sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)); return n; } double CPoint::Distance0() const { return sqrt(x*x+y*y); } CPoint CPoint::SymmetricAxis(SymmetricStyle style) const { CPoint p(x,y); switch(style) { case axisx: p.y=-y;break; case axisy: p.x=-x;break; case point: p.x=-x,p.y=-y; } return p; } void CPoint::output() { cout <<"("<< x <<","<< y<<")"<<endl; } CPoint::CPoint(double xx, double yy) { x=xx; y=yy; } int main() { CPoint p1,p2,p; cout<<"输入p1的坐标:"; p1.input(); cout<<"输入p2的坐标:"; p2.input(); cout<<"p1到p2的的距离"<<p1.Distance(p2)<<endl; cout<<"到原点的距离:"<<p1.Distance0()<<endl; cout<<"关于x轴的对称点:"; p=p1.SymmetricAxis(axisx); p.output(); cout<<"关于y轴的对称点:"; p=p1.SymmetricAxis(axisy); p.output(); cout<<"关于原点的对称点:"; p=p1.SymmetricAxis(point); p.output(); return 0; }
上机感言:呼,这坐标看的,有点晕