第六周实验报告3

来源:互联网 发布:制作荣誉证书图片软件 编辑:程序博客网 时间:2024/06/05 16:17
#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;  }elsebreak;}} 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;}

原创粉丝点击