/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等 * 作 者:朱亚楠 * 完成日期: 2012 年 3 月 28 日 * 版 本 号: * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */#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); void input(); //以x,y 形式输入坐标点 void output(); //以(x,y) 形式输出坐标点 double Distance(CPoint p) const; // 两点之间的距离(一点是当前点,另一点为参数p) double Distance0() const; // 到原点的距离 CPoint SymmetricAxis(SymmetricStyle style) const; // 返回对称点 }; CPoint::CPoint(double xx,double yy) { x = xx; y = yy; } void CPoint::input() //以x,y 形式输入坐标点 { cout << "请以x,y的形式输入坐标点" << endl; while(1) { char c; cin >> x >> c >> y; if (c != ',') { cout << "格式非法!请从新输入!" ; } else break; } } void CPoint::output() //以(x,y) 形式输出坐标点 { cout << '(' << x << ',' << y << ')' <<endl; } double CPoint::Distance(CPoint p) const // 两点之间的距离(一点是当前点,另一点为参数p) { double len; len = sqrt((p.x-this->x)*(p.x-this->x)+(p.y-this->y)*(p.y-this->y)); return len; } double CPoint::Distance0() const// 到原点的距离 { double len; len = sqrt(x*x+y*y); return len; } CPoint CPoint::SymmetricAxis(SymmetricStyle style) const // 返回对称点 { CPoint p(x,y); switch(style) { case axisx: p.y=-y; break; case axisy: p.x=-x; break; case point: p.x=-x;p.y=-y; } return p; } void main() { double dis; CPoint p1,p2,p; cout << "请输入p1的坐标:"; p1.input(); cout << "请输入p2的坐标:"; p2.input(); dis = p1.Distance(p2); cout << "p1和p2之间的距离为:" << dis << endl; dis = p1.Distance0(); cout << "p1到原点之间的距离为:" << dis << endl; dis = p2.Distance0(); cout << "p2到原点之间的距离为:" << dis << endl; p=p1.SymmetricAxis(axisx); cout<<"p1关于x轴的对称点为:"; p.output(); p=p1.SymmetricAxis(axisy); cout<<"p1关于y轴的对称点为:"; p.output(); p=p1.SymmetricAxis(point); cout<<"p1关于原点的对称点为:"; p.output(); system ("pause"); }
每次都是先做在任务三,结果总是碰壁,不如先听讲在写,可谓是听老师一句话,胜看10分钟啊、、、
第6周实验报告3
最新推荐文章于 2022-05-04 19:30:21 发布