第6周实验报告任务3

来源:互联网 发布:内蒙古自治区大数据局 编辑:程序博客网 时间:2024/06/02 17:44
/* (程序头部注释开始)  * 程序的版权和版本声明部分  * Copyright (c) 2011, 烟台大学计算机学院学生   * All rights reserved.* 文件名称:找茬  * 作 者: 郭岩岩  * 完成日期:2012 年3 月 26日  * 版 本 号: vc.1  * 对任务及求解方法的描述部分  * 输入描述:   * 问题描述:   * 程序输出:   *程序头部的注释结束   */    #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 d;d=sqrt((p.x -x)*(p.x -x)+(p.y -y)*(p.y-y));cout<<"两点之间的距离为:"<<d<<endl;    return d;}double CPoint::Distance0() const{double d;d=sqrt(x*x+y*y);cout<<"该点到原点的距离为:"<<d<<endl;return d;}CPoint CPoint::SymmetricAxis(SymmetricStyle style) const{CPoint p(x,y);if(style==axisx){p.x=-x;cout<<"点p关于x轴的对称点为:("<<x<<","<<y<<")"<<endl;}elseif(style==axisy){p.y=-y;cout<<"点p关于y轴的对称点为:("<<x<<","<<y<<")"<<endl;}else{p.x=-x;p.y=-y;cout<<"点p关于原点的对称点为:("<<x<<","<<y<<")"<<endl;} return style;}void CPoint::input(){bool point;      point=true;      cout<<"请输入一个点的横纵坐标:(以“x,y”的形式输入)";      char c;      while(point)      {          cin>>x>>c>>y;          if(c!=',')          {              cout<<"格式不正确,请从新输入。";          }          else          {              point=false;          }      }  }  void CPoint::output(){cout<<"("<<x<<","<<y<<")"<<endl;}void main(){CPoint C1,C2;C1.input ();C1.output ();    C1.Distance0();C2.input ();C2.output ();    C2.Distance0();C1.Distance (C2);    CPoint SymmetricAxis(axisx);}


上机感言:两点之间距离并不遥远,我也会离它不远奋斗

经验积累:在定义CPoint CPoint::SymmetricAxis(SymmetricStyle style) const函数时需要再定义一个类的对象

                    第一次用枚举类型,原来这样用啊!

原创粉丝点击