2013-4-10.1~平面坐标类

来源:互联网 发布:iphone6s蜂窝数据快捷 编辑:程序博客网 时间:2024/06/05 00:16
/* * Copyright (c) 2013, 烟台大学计算机学院学生* All rights reserved. * 作    者:王筱菀 * 完成日期:2013年4月10日 * 版 本 号:v1.0 * 输入描述:输入两个点A,B* 问题描述: 计算两点之间的距离,到原点的距离,关于原点的对称点* 程序输出:输出两点的距离* 问题分析:略* 算法设计:略 */  #include <iostream>#include <cmath>using namespace std;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(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::Distance(CPoint p) const{ double Dis;return Dis=sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));}double CPoint::Distance0() const{ double Dis; return Dis=sqrt(x*x+y*y); }CPoint CPoint::SymmetricAxis(char style)const{ CPoint p(x,y); switch(style) { case('x'):p.y=-y;break; case('y'):p.x=-x;break; case('o'):p.x=-x;p.y=-y;break; } return p;}void CPoint::input() //以x,y 形式输入坐标点{ int a,b; char s; cout<<"请输入坐标:"; cin>>a>>s>>b; if(s==','){  x=a;y=b; }else{  cout<<"格式错误"<<endl;  input(); }}void CPoint::output() //以(x,y) 形式输出坐标点{ cout<<'('<<x<<','<<y<<')'<<endl;}int main(){    CPoint A,B;    A.input();B.input();    cout<<"A,B点的距离为:"<<A.Distance(B)<<endl; cout<<"A关于原点的对称点:"; (A.SymmetricAxis('o')).output();  cout<<"B关于原点的对称点:"; (B.SymmetricAxis('o')).output();    return 0;}