第五周项目一——体验常成员函数(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
- 第五周项目一——体验常成员函数
- 第五周项目一——体验常成员函数(2)
- 第五周项目一——体验常成员函数(1)
- 第五周项目1——体验常成员函数
- 第五周 课后实践:项目一——体验常成员函数
- 15第五周项目一——体验常成员函数
- 第五周项目一 体验常成员函数——平面坐标系类
- 第五周项目一:体验常成员函数
- 第五周项目一 体验常成员函数
- 第五周项目一--体验常成员函数
- 第五周项目一:体验常成员函数
- 2015年第五周项目一:体验常成员函数
- 第五周项目一体验常成员函数
- 第五周项目一 体验常成员函数
- 第五周 项目一 体验常成员函数
- 第五周项目一体验常成员函数
- 第五周项目一之体验常成员函数
- 第五周 项目一 体验常成员函数
- 人的一生要疯狂一次,无论是为一个人,一段情,或一个梦想
- unity3d 关于断点下载和整个下载(用于更新)
- 2.4
- C学习if条件判断和for循环
- Python简易爬虫以及嵌套数据类型
- 第五周项目一——体验常成员函数(2)
- 2.5
- MRC下安全的Block
- 2.6
- 数学基础:矩阵
- Android 开发环境配置
- POJ 2115-C Looooops(基础一元线性同余方程)
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
- Android中invalidate() 函数详解(结合Android 4.0.4 最新源码)