《C++第六周实验报告3-1》---设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
2012-03-26 21:39
549 查看
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: CPoint.cpp * 作 者: 计114-3 王兴锋 * 完成日期: 2012年 3 月 26 日 * 版 本 号: V 1.0 * 对任务及求解方法的描述部分 * 输入描述: 输入点的坐标 * 问题描述: 设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等 * 程序输出: 按要求输出距离,对称点 * 程序头部的注释结束 */ #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 { return sqrt((p.x-x)*(p.x-x) + (p.y-y)*(p.y-y)); } double CPoint::Distance0() const { return sqrt(x*x + y*y); } CPoint CPoint::SymmetricAxis(SymmetricStyle style) const { double s_x = x, s_y = y; switch(style) { case axisx: s_y = -y; break; case axisy: s_x = -x; break; case point: s_x = -x; s_y = -y; break; }; CPoint cp(s_x, s_y);//定义一个对象(点)将s_x,s_y的值初始化给此对象 return cp;//返回此对象(点) } void CPoint::input() { char ch; do{ cout << "请输入点的坐标(例:x,y):" << endl; cin >> x >> ch >> y; }while(ch != ','); } void CPoint::output() { cout << "(" << x << "," << y << ")"; } int main() { CPoint C;//定义当前点 C.input(); CPoint cp1(0.0, 1.0), cp2(1.0, 0.0);//定义参数点 //两点之间的距离 C.output(); cout << "到" ; cp1.output(); cout << "的距离为:" << C.Distance(cp1) << endl; C.output(); cout << "到" ; cp2.output(); cout << "的距离为:" << C.Distance(cp2) << endl; C.output(); cout << "到原点的距离为:" << C.Distance0() << endl; cout << endl; //对称点 C.output(); cout << "关于x轴的对称点为:"; C.SymmetricAxis(axisx).output(); cout << endl; C.output(); cout << "关于y轴的对称点为:"; C.SymmetricAxis(axisy).output(); cout << endl; C.output(); cout << "关于原点的对称点为:"; C.SymmetricAxis(point).output(); cout << endl; system("pause"); return 0; } /* 此程序把对象的真正含义体现出来了, 首先是参数是对象, 再者,返回值类型是对象。 如果没有很好的理解对象的含义的话, 作这道题有点难理解其题意。 返回值类型是对象可以直接调用其方法。 以上均是我个人之见。 */
相关文章推荐
- C++第六周任务三设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
- 第六周任务三设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
- 设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
- 【任务3】设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
- 第六周实验指导--任务3--设计平面坐标点类,计算两点之间距离
- 设计Point类用来定义平面上的一个点,用构造方法传 递坐标位置,方法有计算两点的距离。编写测试类,在该类中实现Point类的对象。
- 第六周实验报告任务 3 两点之间距离
- PHP 根据两点的坐标计算之间的距离
- 设计一个点类,其中包含一对坐标点数据成员,一个计算两点距离的友元函数和坐标点的显示函数
- 最短路径问题平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。
- 《C++第六周实验报告4-1》---设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长,并判断其是否为直角三角形和等腰三角形。
- 7.设计一个抽象类Shape, 属性为x和y,表示圆心坐标,计算面积的抽象方法double area(),并设计一个计算圆心距离坐标原点距离的方法distance(double x ,double y
- 百度地图API计算坐标两点之间距离与业务实现排序
- 利用php 计算两点地理经纬坐标之间的距离
- 第七周实验报告(任务二)【求两点之间的距离】
- C++第2次上机实验--模拟ATM机;计算两点间距离;判断是否超重
- c++第一次实验——两点之间距离
- java 根据经纬度 坐标 计算两点之间的距离
- 问题一百三十七:计算坐标上两点之间的距离
- 通过gps给定的两个经纬度坐标,计算两点之间的距离