第五周项目一:体验常成员函数
来源:互联网 发布:淘宝网韩版针织开衫 编辑:程序博客网 时间:2024/06/10 14:57
项目1-体验常成员函数
设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等。
提示代码:
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) 形式输出坐标点};
解决代码:
#include <iostream>#include <cmath>#include <cstdio>#include <iomanip>using namespace std;class CPoint{private: double x; // 横坐标 double y; // 纵坐标public: CPoint (double xx=0,double yy=0):x(xx),y(yy) {}; 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(1) { cin>>x; ch=getchar(); cin>>y; if (ch==',') break; cout<<"输入的数据格式不符合规范,请重新输入\n"; fflush(stdin); //清空缓存区,以便下一循环完全接受新输入 }}void CPoint::output(){ cout<<"("<<x<<","<<y<<")."<<endl;}double CPoint::Distance1(CPoint p) const{ double d; cout<<setiosflags(ios::fixed)<<setprecision(1); d=sqrt((this->x-p.x)*(this->x-p.x)+(this->y-p.y)*(this->y-p.y)); return d;}double CPoint::Distance0() const{ double d; cout<<setiosflags(ios::fixed)<<setprecision(1); d=sqrt((this->x)*(this->x)+(this->y)*(this->y)); return d;}CPoint CPoint::SymmetricAxis(char style) const{ CPoint p(this->x,this->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(){ CPoint p,p1,p2; cout<<"输入p1:\n"; p1.input(); cout<<"输入p2:\n"; p2.input(); cout<<"p1,p2的距离为:\n"; cout<<p1.Distance1(p2)<<endl; cout<<"p1与原点的距离为:\n"; cout<<p1.Distance0()<<endl; cout<<"p2关于x轴对称点为:\n"; p=p2.SymmetricAxis('x'); p.output(); cout<<"p1关于y轴对称点为:\n"; p=p1.SymmetricAxis('y'); p.output(); cout<<"p1关于原点对称点为:\n"; p=p1.SymmetricAxis('o'); p.output(); return 0;}
运行结果:
学习心得:用复制构造函数时,写作p(*this),这个是学到了新技能了
0 0
- 第五周项目一:体验常成员函数
- 第五周项目一 体验常成员函数
- 第五周项目一--体验常成员函数
- 第五周项目一:体验常成员函数
- 2015年第五周项目一:体验常成员函数
- 第五周项目一体验常成员函数
- 第五周项目一 体验常成员函数
- 第五周 项目一 体验常成员函数
- 第五周项目一体验常成员函数
- 第五周项目一之体验常成员函数
- 第五周 项目一 体验常成员函数
- 第五周 项目一 体验常成员函数
- 第五周项目一 体验常成员函数
- 第五周项目一 体验常成员函数
- 第五周 项目一 体验常成员函数
- 第五周 项目一--体验常成员函数
- 第五周项目一——体验常成员函数
- 第五周 项目一 体验常函数成员
- 39. PHP 类型运算符
- 关于凸优化的一些简单概念
- linux基础问题(一)
- Receiving intents
- Hibernate缓存管理
- 第五周项目一:体验常成员函数
- jfreechart折线图示例
- c++模板元编程七:类型判断的traits类
- jQuery Ajax 实例 ($.ajax、$.post、$.get)
- BruteForceStringMatching2
- 使用Camera Calibration Toolbox for Matlab进行摄像机标定
- Mac OS X的入门文档
- android Toobar的一个简单封装
- hihoCoder#1051 : 补提交卡