第六周上机实践项目——体验常成员函数

来源:互联网 发布:金庸 神雕侠侣 知乎 编辑:程序博客网 时间:2024/05/16 05:12
/**程序的版权和版本声明部分:*Copyright(c)2014,烟台大学计算机学院学生*All rights reserved.*文件名称:体验常成员函数 *作者:刘中林*完成日期:2013年 4月 01 日*版本号:v1.0*对任务及求解方法的描述部分:*输入描述: 坐标 *问题描述:无 *程序输出:分别输出按x轴, y轴, 原点对称对称的坐标 ;点之间距离的计算*问题分析:sqrt(pow(x-p.x,2)+pow(y-p.y,2)) ;     switch(chose);*算法设计:*/#include<iostream>#include<cmath>#include<cstdlib>using namespace std;class CPoint{private:  double x;  // 横坐标  double y;  // 纵坐标public:  CPoint(double xx=0,double yy=0):x(xx),y(yy){}  double Distance1(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) 形式输出坐标点};void CPoint::input(){    cout<<"请输入坐标:";    cin>>x>>y;}void CPoint::output(){    cout<<"该点坐标是:"<<"("<<x<<","<<y<<")";}CPoint CPoint::SymmetricAxis(char style) const{    CPoint p;    switch(style){    case 'x':p.x=x;p.y=(-y);break;    case 'y':p.x=(-x);p.y=y;break;    case 'o':p.x=(-x);p.y=(-y);break;}    return p;}double CPoint::Distance1(CPoint p) const{    return sqrt(pow(x-p.x,2)+pow(y-p.y,2));}double CPoint::Distance0() const{    return sqrt(pow(x,2)+pow(y,2));}int main(){CPoint a,b,c;int chose;a.input();a.output();while(1){cout<<"请选择何种操作:"<<endl;cout<<"1.计算到原点的距离      2.计算与x轴的对称点"<<endl;cout<<"3.计算与y轴的对称点     4.计算与原点的对称点"<<endl;cout<<"5.计算与另一点的距离    0.退出"<<endl;cin>>chose;switch(chose){case 0:exit(0);case 1:cout<<a.Distance0()<<endl;break;case 2:c=a.SymmetricAxis('x');c.output();break;case 3:c=a.SymmetricAxis('y');c.output();break;case 4:c=a.SymmetricAxis('o');c.output();break;case 5:b.input();cout<<a.Distance1(b)<<endl;break;default:cout<<"输入有误,请重新输入:"<<endl;cin>>chose;}}return 0;}


*样例输出:

*心得体会:要不平平淡淡,要不就轰轰烈烈。。

0 0
原创粉丝点击