第5周项目1-体验常成员函数
来源:互联网 发布:平面设计美工招聘 编辑:程序博客网 时间:2024/06/05 10:04
/* * Copyright (c) 2015, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:梁璨 * 完成日期:2015年 4 月 8 日 * 版 本 号: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 Distance1(CPoint p) const; double Distance0() const; CPoint SymmetricAxis(char style) const; void input(); void output();};void CPoint::input(){ char c1,c2,c3; cout<<"请输入坐标点(格式为:(x,y)):"<<endl; while(1) { cin>>c1>>x>>c2>>y>>c3; if(c2==','&&c1=='('&&c3==')') break; else cout<<"请重新输入,注意格式!"<<endl; }}void CPoint::output(){ cout<<"("<<x<<","<<y<<")"<<endl;}double CPoint::Distance1(CPoint p) const{ return sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));}double CPoint::Distance0() const{ return sqrt(x*x+y*y);}CPoint CPoint::SymmetricAxis(char style) const{ CPoint c(x,y); switch(style) { case 'x': c.y=-y; break; case 'y': c.x=-x; break; case 'o': c.x=-x; c.y=-y; break; } return c;}int main(){ CPoint c1,c2,t; cout<<"请输入第一个点的坐标点:"; c1.input(); cout<<"请输入第二个点的坐标点:"; c2.input(); cout<<"第一个到原点的距离为:"; cout<<c1.Distance0()<<endl; cout<<"第二个点到原点的距离为:"; cout<<c2.Distance0()<<endl; cout<<"这两点之间的距离为:"; cout<<c1.Distance1(c2)<<endl; cout<<"第一个点关于x轴对称后该点坐标为:"; t=c1.SymmetricAxis('x'); t.output(); cout<<"第二个点关于y轴对称后该店坐标为:"; t=c2.SymmetricAxis('y'); t.output(); cout<<"两点都关于原点对称后坐标为:"; t=c1.SymmetricAxis('o'); t.output(); t=c2.SymmetricAxis('o'); t.output(); return 0;}
运行结果:
0 0
- 第5周项目1-体验常成员函数
- 第5周项目1 体验常成员函数
- 2015-第5周项目1-体验常成员函数
- 第5周项目1-体验常成员函数
- 第5周项目1-体验常成员函数
- 第5周项目1-体验常成员函数
- 第5周项目1-体验常成员函数
- 第5周项目1体验常成员函数
- 第5周项目1——体验常成员函数
- 第06周:项目一:体验常成员函数
- 第4周项目2-体验常成员函数
- 第四周项目1——体验常成员函数
- 第四周项目 1 体验常成员函数
- 第5周项目--设计平面坐标点类+体验常成员函数
- C++第6周(春)项目1 体验常成员函数
- 第4周-项目1-体验常成员函数-平面坐标点类
- 第五周项目:体验常成员函数
- 第五周项目体验常成员函数
- EMV技术学习和研究-处理限制
- 第五周 项目2-对象作为数据成员
- 第五周项目1体验常函数成员
- fzu 2185 树的路径覆盖(dfs)
- Mysql 配置文件,适合用于内存为 512MB 的主机
- 第5周项目1-体验常成员函数
- c/c++(疑3) C语言指针与数组之间关系
- spring @Entity @Table
- (R语言)对象,模式和属性
- 第五周项目一
- 第五周项目程序阅读一
- EMV技术学习和研究-持卡人验证
- 第5周项目多文件组织三角形类
- iOS 划线圆形 CGContext