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

来源:互联网 发布:行业研究员 知乎 编辑:程序博客网 时间:2024/05/16 11:12
/** Copyright (c) 2015, 烟台大学计算机学院* All rights reserved.* 文件名称:main.cpp* 作    者 :韩娟* 完成日期 :2015年4月8日* 版 本 号 :v1.0* 问题描述 :设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等* 输入描述 : 两个坐标点* 程序输出 :按要求输出*/#include <iostream>#include <cmath>#include <cstdlib>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 input();  //以x,y 形式输入坐标点    void output(); //以(x,y) 形式输出坐标点};void CPoint::input(){    char ch;    cout<<"请输入坐标,格式(x,y):";    while(cin>>x>>ch>>y)    {        if(ch!=',')            cout<<"你输入的格式不对哦,请重新输入。";        else            break;    }}void CPoint::output(){    cout<<"("<<x<<","<<y<<")";}double CPoint::Distance0() const// 到原点(0,0)的距离{    double d;    d=sqrt(x*x+y*y);    return d;}double CPoint::Distance1(CPoint p) const//两点之间的距离(一点是当前点——想到this了吗?,另一点为p){    double d;    d=sqrt((p.x-this->x)*(p.x-this->x)+(p.y-this->y)*(p.y-this->y));    return d;}CPoint CPoint::SymmetricAxis(char style) const//style取'x','y'和'o'分别表示按x轴, y轴, 原点对称{    CPoint p(x,y);    switch(style)    {    case'x':        p.x=x;        p.y=-y;        break;    case 'y':        p.x=-x;        break;    case 'o':        p.x=-x;        p.y=-y;    }    return p;}CPoint::CPoint(double xx,double yy){    xx=x;    yy=y;}int main(){    double distance;    CPoint p1,p2,p;    cout<<"请输入第一个点p1:";    p1.input();    cout<<"请输入第二个点p2:";    p2.input();    distance=p1.Distance1(p2);    cout<<"p1与p2的距离为:"<<distance<<endl;    distance=p1.Distance0();    cout<<"p1为原点的距离为:"<<distance<<endl;    p=p1.SymmetricAxis('x');    cout<<"p1关于x轴的对称点为:";    p.output();    cout<<endl;    p=p1.SymmetricAxis('y');    cout<<"p1关于y轴的对称点为:";    p.output();    cout<<endl;    p=p1.SymmetricAxis('o');    cout<<"p1关于原点的对称点为:";    p.output();    return 0;}


 

知识点总结 :

     this指针是这个项目要明白的一个很重要的点。

学习心得 :

    没有想到还有一个隐含的this指针。

0 0
原创粉丝点击