第六周任务(3)

来源:互联网 发布:sk5代理ip软件 编辑:程序博客网 时间:2024/05/28 15:54
#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((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));return d;}double CPoint::Distance0() const{double m;m=sqrt((x*x)+(y*y));return m;}CPoint CPoint:: SymmetricAxis(SymmetricStyle style) const{double a,b;switch(style){case axisx:a=x*(-1);cout<<"关于x轴对称"<<a<<","<<b<<endl;break;case axisy:b=y*(-1);a=x;cout<<"关于y轴对称"<<a<<","<<b<<endl;break;case point:a=x*(-1);b=y*(-1);cout<<"关于原点对称"<<a<<","<<b<<endl;break;}return 0;}void CPoint::input(){char c;cout<<"请输入坐标点(形式为x,y)"<<endl;cin>>x>>c>>y;if(c!=','){cout<<"输入错误"<<endl;exit(1);}}void CPoint::output(){cout<<x<<","<<y<<endl;}void main(){CPoint c,p;c.input();c.output();p.input();p.output();cout<<"两点之间的距离"<<c.Distance( p)<<endl;cout<<"到原点的距离"<<c.Distance0()<<endl;    c.SymmetricAxis(axisy);    c.SymmetricAxis(point);system("pause");}

原创粉丝点击