第六周任务三

来源:互联网 发布:java hadoop开发 编辑:程序博客网 时间:2024/04/28 04:03
#include <iostream>#include <cmath>using namespace std;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) 形式输出坐标点};CPoint::CPoint(double xx,double yy):x(xx),y(yy){}double CPoint::Distance(CPoint p) const{double d;d=sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));return d;}double CPoint::Distance0() const{double e;e=sqrt(x*x+y*y);return e;}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.y=-y;p.x=-x;break;}return p;}void CPoint::input(){char ch;while(1){cin>>x>>ch>>y;if(ch!=',')cout<<"格式出现错误!"<<endl;elsebreak;}}void CPoint::output(){    cout<<"("<<x<<','<<y<<")"<<endl;}void main(){double distance;CPoint p1,p2,p;  cout<<"第1个点p1:";  p1.input();  cout<<"第2个点p2:";     p2.input();  distance=p1.Distance(p2);  cout<<"两点的距离为:"<<distance<<endl;    distance=p1.Distance0();  cout<<"p1到原点的距离为:"<<distance<<endl;    p=p1.SymmetricAxis(axisx);  cout<<"p1关于x轴的对称点为:";  p.output();  p=p1.SymmetricAxis(axisy);  cout<<"p1关于y轴的对称点为:";   p.output();  p=p1.SymmetricAxis(Point);  cout<<"p1关于原点的对称点为:";  p.output(); }

原创粉丝点击