第五周项目一——体验常成员函数(2)

来源:互联网 发布:css源码 编辑:程序博客网 时间:2024/04/30 07:49

设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等。在设计中,由于求距离、求对称点等操作对原对象不能造成任何改变,所以,将这些函数设计为常成员函数是合适的,能够避免数据成员被无意更改。

方法二:求距离,在参数中给出两点坐标,用一般函数实现:

参考解答:

/* All rights reserved. * 文件名称:test.cpp.* 作者:陈丹妮 * 完成日期:2015年 4 月 7 日 * 版 本 号:v1.0 */#include <iostream>#include <Cmath>using namespace std;class CPoint{private:double x;  // 横坐标double y;  // 纵坐标public:CPoint(double xx=0,double yy=0):x(xx),y(yy){};double getX(){return x;}double getY(){return y;}void output();CPoint SymmetricAxis(char style) const;};void CPoint::output(){  cout<<"("<<x<<", "<<y<<")"<<endl;}double distance1(CPoint p1,CPoint p2){double d;d=sqrt((p1.getX()-p2.getX())*(p1.getX()-p2.getX())+(p1.getY()-p2.getY())*(p1.getY()-p2.getY()));return d;}double distance0(CPoint p){    double d;    d=sqrt(p.getX()*p.getX()+p.getY()*p.getY());    return d;}CPoint CPoint::SymmetricAxis(char style) const{    CPoint p(this->x,this->y);    switch(style)    {    case 'x':       p.x=-x;break;    case 'y':       p.y=-y;break;    case '0':       p.x=-x,p.y=-y;break;    }    return p;}int  main( ){double d;CPoint p1(3,4),p2(4,5),p;d=distance1(p1,p2);cout<<"两点的距离为:"<<d<<endl;d=distance0(p1);cout<<"p1到原点之间的距离为:"<<d<<endl;p=p1.SymmetricAxis('x');    cout<<"p1关于x轴的对称点为:";    p.output();    p=p1.SymmetricAxis('y');    cout<<"p1关于y轴的对称点为:";    p.output();    p=p1.SymmetricAxis('0');    cout<<"p1关于原点对称的对称点为:";    p.output();return 0;}


学习心得:多思考,用不同的方法来解决问题。继续加油!!

0 0
原创粉丝点击