第六周任务三

来源:互联网 发布:张居正 高拱 知乎 编辑:程序博客网 时间:2024/06/11 17:40

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

#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   {return  sqrt ( (p.x - x) * (p.x - x)  + ( p.y - y ) * ( p.y - y )  ) ;}double  CPoint::Distance0() const{return sqrt ( ( x * x ) + ( y * y ) );}CPoint  CPoint::SymmetricAxis(SymmetricStyle style) const{CPoint p( x, y );switch ( style ){case axisx:         //关于x轴对称p.y = -y;  break;case axisy:        //关于y轴对称p.x = -x;  break;case point:        //关于原点对称p.x = -x;  p.y = -y;}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(){    CPoint c1,c2,c;cout << "①请输出x、y的值" << endl;c1.input();cout << "②请输出x、y的值" << endl;c2.input();c1.output();c2.output();cout << "①②两点间距离" << c1.Distance(c2) << endl;cout << "①距原点距离" << c1.Distance0() << endl;    cout << "②距原点距离" << c2.Distance0() << endl;c = c1.SymmetricAxis(axisx);cout << "①关于x轴对称" << endl;c.output();c = c2.SymmetricAxis(axisy);cout << "②关于y轴对称" << endl;c.output();c = c1.SymmetricAxis(point);cout << "①关于原点对称" << endl;c.output();system("pause");}

上机感言:程序很长是一点一点写的,反过去看有种成就感哈~

原创粉丝点击