第六周实验报告(3)

来源:互联网 发布:linux 安装tar 编辑:程序博客网 时间:2024/06/05 15:51
#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;   // 两点之间的距离      double Distance0() const;          // 到原点的距离      CPoint SymmetricAxis(SymmetricStyle style) ;   // 返回对称点      void input();  //以x,y 形式输入坐标点      void output(); //以(x,y) 形式输出坐标点  };  CPoint::CPoint(double xx,double yy)  {      x=xx;      y=yy;  }  void CPoint::input()  {      char c;      cout<<"请输入坐标点(格式x,y )";      while(1)      {          cin>>x>>c>>y;          if (c==',') break;          cout<<"输入格式不真正确";      }  }  void CPoint::output()  {      cout<<"("<<x<<", "<<y<<")"<<endl;  }  double CPoint::Distance(CPoint p) const  {      double s;      s=sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));    return s;  }  double CPoint::Distance0() const  {      double d;      d=sqrt(x*x+y*y);      return d;  }  CPoint CPoint::SymmetricAxis(SymmetricStyle style)  {          switch(style)      {      case axisx:  y=-y;output();break;    case axisy:  x=-x;output() ; break;    case point:          x=-x;y=-y;  output() ;break;    }      return 0;  }  void main( )  {      double distance;      CPoint p1,p2;      cout<<"第1个点p1,";      p1.input();      cout<<"第2个点p2,";      p2.input();      distance=p1.Distance(p2);      cout<<"两点的距离为:"<<distance<<endl;      distance=p1.Distance0();      cout<<"p1到原点的距离为:"<<distance<<endl;      cout<<"p1关于x轴的对称点为:";  p1.SymmetricAxis(axisx);      cout<<"p1关于y轴的对称点为:";          p1.SymmetricAxis(axisy);      cout<<"p1关于原点的对称点为:";  p1.SymmetricAxis(point);     system("pause");  }  

 

总结:  更加深入的了解了关于类和对象的内涵。


原创粉丝点击