第六周实验报告(任务三)【平面坐标点类】

来源:互联网 发布:国际编程证书 编辑:程序博客网 时间:2024/05/21 12:49

/* (程序头部注释开始)

* 程序的版权和版本声明部分

* Copyright (c) 2011, 烟台大学计算机学院学生

* All rights reserved.

* 文件名称: 点类

* 作 者: 张培培

* 完成日期: 2012年 03月 27日

* 版 本 号:

* 对任务及求解方法的描述部分

* 输入描述:

* 问题描述:设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等 。

* 程序输出: 输出两点之间的距离、到原点的距离、关于坐标轴和原点的对称点。

* 程序头部的注释结束*/

#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){} //两点之间的距离(一点是当前点,另一点为参数p)double CPoint::Distance(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(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;break;}return p;}//以x,y形式输入坐标点void CPoint::input(){char ch;while(1){cin>>x>>ch>>y;if(ch!=',')cout<<"您输入的格式错误,请重新输入"<<endl;else break;}}//以(x,y)形式输出坐标点void CPoint::output(){cout<<'('<<x<<','<<y<<')'<<endl;}void main(){double distance;CPoint p1,p2,p;cout<<"请输入p1点的坐标: ";p1.input();cout<<"请输入p2点的坐标:";p2.input();distance=p1.Distance(p2);cout <<"p1、p2两点之间的距离为:"<< distance << endl;distance=p1.Distance0();cout << "p1与原点之间的距离为:"<<distance << endl;cout<<"p1与x轴的对称点是:"<<endl;p =p1.SymmetricAxis(axisx);p.output();cout<<"p1与y轴的对称点是:"<<endl;p = p1.SymmetricAxis(axisy);p.output();cout<<"p1与原点的对称点是:"<<endl;p = p1.SymmetricAxis(point);p.output();    cout<<"p2与x轴的对称点是:"<<endl;p =p2.SymmetricAxis(axisx);p.output();cout<<"p2与y轴的对称点是:"<<endl;p = p2.SymmetricAxis(axisy);p.output();cout<<"p2与原点的对称点是:"<<endl;p = p2.SymmetricAxis(point);p.output();}


经验积累:1、不要因为粗心敲错代码导致错误;2、注意main函数中各成员函数的调用,在定义各成员函数时一定要加上类名和域作用符。

原创粉丝点击