您的位置:首页 > 编程语言 > C语言/C++

2013级C++第6周(春)项目——对象指针、const【项目1-体验常成员函数】

2014-04-02 22:01 561 查看
/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 在校学生
* All rightsreserved.
* 文件名称: 项目1.cpp
* 作    者:刘旺
* 完成日期:2014年4月2日
* 版本号: v1.0
*
* 输入描述:
* 问题描述:设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等。在设计中,
             由于求距离、求对称点等操作对原对象不能造成任何改变,所以,将这些函数设计为常成员函数是合适的,
             能够避免数据成员被无意更改。
* 程序输出:
* 问题分析:
*/
#include <iostream>
#include <Cmath>
using namespace std ;

class CPoint
{
private:
  double x;  // 横坐标
  double y;  // 纵坐标
public:
  CPoint(double xx=0,double yy=0);
  double Distance1(CPoint p) const;   // 两点之间的距离(一点是当前点,另一点为参数p)
  double Distance0() const;            // 到原点的距离
  CPoint SymmetricAxis(char style) const;//style取'x','y'和'o'分别表示按x轴, y轴, 原点对称
  void input();  //以x,y 形式输入坐标点
  void output(); //以(x,y) 形式输出坐标点
};

CPoint::CPoint(double xx, double yy)
{
      x = xx ;
      y = yy ;
}

double CPoint::Distance1(CPoint p)const
{
     return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)) ;
}

double CPoint::Distance0()const
{
      return sqrt(x*x+y*y) ;
}

CPoint CPoint::SymmetricAxis (char style)const
{
    CPoint p ;
    switch(style)
    {
     case 'o': p.x = -x ; p.y = -y; break ;
     case 'x': p.x = -x ; p.y = y; break ;
     case 'y': p.x = x ; p.y = -y; break ;
    }
    return p ;
}

void CPoint::input()
{
    cin >> x >> y ;
}

void CPoint::output()
{
      cout << "点坐标为(" << x << ',' << y << ")" << endl ;
}

int main()
{
    CPoint p1,p2,p ;
    cout << "请输入p1点坐标x,y:" ;
    p1.input() ;
    cout << "p1点坐标为:" ;
    p1.output() ;
    p=p1.SymmetricAxis('y') ;
    cout << "关于y轴对称:" ;
    p.output() ;
    p=p1.SymmetricAxis('x') ;
    cout << "关于x轴对称:" ;
    p.output() ;
    p=p1.SymmetricAxis('o') ;
    cout << "关于原点对称:" ;
    p.output() ;
    p1.Distance0() ;
    cout << "请输入p2点坐标x,y:" ;
    p2.input() ;
    cout << "p2点坐标为:" ;
    p2.output() ;
    p=p2.SymmetricAxis('y') ;
    cout << "关于y轴对称:" ;
    p.output() ;
    p=p2.SymmetricAxis('x') ;
    cout << "关于x轴对称:" ;
    p.output() ;
    p=p2.SymmetricAxis('o') ;
    cout << "关于原点对称:" ;
    p.output() ;
    cout << "p1,p2俩点的距离为:" ;
    p1.Distance1(p2) ;

cout << p1.Distance1(p2) ;
    return 0 ;
}


多练多思。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: