第5周项目1-体验常成员函数

来源:互联网 发布:日本网络电视直播apk 编辑:程序博客网 时间:2024/06/05 21:05

 

#include <iostream>#include <cmath>using namespace std;class CPoint{private:  double x;  // 横坐标  double y;  // 纵坐标public:  CPoint(double xx=0,double yy=0);  double Distance1(CPoint p) const; //两点之间的距离(一点是当前点——想到this了吗?,另一点为p)  double Distance0() const;          // 到原点(0,0)的距离  CPoint SymmetricAxis(char style) const;//style取'x','y'和'o'分别表示按x轴, y轴, 原点对称  void output(); //以(x,y) 形式输出坐标点  void input();};CPoint::CPoint(double xx,double yy){    x=xx;    y=yy;}void CPoint::output(){  cout<<"("<<x<<", "<<y<<")"<<endl;}void CPoint::input(){    cin>>x>>y;}double CPoint::Distance1(CPoint p) const{    double l;    l=sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));    return l;}double CPoint::Distance0() const{    double l;    l=sqrt(x*x+y*y);    return l;}CPoint CPoint::SymmetricAxis(char style) const{    CPoint p(x,y);    switch(style)    {        case'x': p.y=-y;break;        case'y': p.x=-x;break;        case'o': p.x=-x,p.y=-y;break;    }    return p;}int main(){     double distance;  CPoint p1,p2,p; cout<<"第1个点p1,"; p1.input();  cout<<"第2个点p2,"; p2.input();  distance=p1.Distance1(p2);  cout<<"两点的距离为:"<<distance<<endl;  distance=p1.Distance0();  cout<<"p1到原点的距离为:"<<distance<<endl;  p=p1.SymmetricAxis('x');  cout<<"p1关于x轴的对称点为:";  p.output();  p=p1.SymmetricAxis('y');  cout<<"p1关于y轴的对称点为:";  p.output();  p=p1.SymmetricAxis('o');  cout<<"p1关于原点的对称点为:"; p.output();    return 0;}

0 0
原创粉丝点击