第六周实验报告3

来源:互联网 发布:制冷量计算软件 编辑:程序博客网 时间:2024/05/18 09:48
*程序头部注释开始* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生* All rights reserved.* 文件名称:  设计平面坐标点类                          * 作    者:     刘文英                       * 完成日期:  2012年    3   月   28     日* 版 本 号:  1.0  题目叙述:【任务3】设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等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) 形式输出坐标点};[cpp] view plaincopy    #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 dis;                dis = sqrt((p.x - x) * (p.x - x) + (p.y - y) * (p.y - y));                return dis;      }      double CPoint::Distance0() const      {          double dis;                dis = sqrt(x *x + y * y);                return dis;      }            CPoint CPoint::SymmetricAxis(SymmetricStyle style) const      {          switch(style)          {          case axisx :cout <<"坐标"<<'('<< x << ',' << y <<')' <<"关于x轴的对称点是:" << "(" << x << ','<< -y <<")";break;                case axisy :cout <<"坐标"<<'('<< x << ',' << y <<')' << "关于y轴的对称点是:" << "(" << -x << ','<< y <<")";break;                case point :cout <<"坐标"<<'('<< x << ',' << y <<')' <<"关于原点的对称点是:" << "(" << -x << ','<< -y <<")";break;          }                cout <<endl;                return 0;      }            void CPoint::input()      {          char c;                cout  << "以x,y形式输入坐标" <<endl;                cin >> x >> c >> y;                            if( c != ',')              {                  cout << "error!";                        exit(0);              }      }      void CPoint::output()      {          cout << "以(x,y)的形式输出坐标点" <<endl;                cout << '(' << x << ',' << y << ')' <<endl;      }      void main()      {          CPoint CP1(2,3), CP2(3,4), CP3;                cout << "CP1(2,3)到CP2(3,4)的距离是:" << CP1.Distance(CP2) <<endl;                cout << "CP1(2,3)到原点的距离是:" <<CP1.Distance0() <<endl;                CP1.SymmetricAxis(axisx);                CP1.SymmetricAxis(axisy);                CP1.SymmetricAxis(point);                CP3.input();                CP3.output();      }  


原创粉丝点击