第六周实验报告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(); }