2013级C++第6周(春)项目——对象指针、const【项目1-体验常成员函数】
2014-04-02 22:01
561 查看
/* * 程序的版权和版本声明部分 * Copyright (c)2013, 在校学生 * All rightsreserved. * 文件名称: 项目1.cpp * 作 者:刘旺 * 完成日期:2014年4月2日 * 版本号: v1.0 * * 输入描述: * 问题描述:设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等。在设计中, 由于求距离、求对称点等操作对原对象不能造成任何改变,所以,将这些函数设计为常成员函数是合适的, 能够避免数据成员被无意更改。 * 程序输出: * 问题分析: */ #include <iostream> #include <Cmath> using namespace std ; class CPoint { private: double x; // 横坐标 double y; // 纵坐标 public: CPoint(double xx=0,double yy=0); double Distance1(CPoint p) const; // 两点之间的距离(一点是当前点,另一点为参数p) double Distance0() const; // 到原点的距离 CPoint SymmetricAxis(char style) const;//style取'x','y'和'o'分别表示按x轴, y轴, 原点对称 void input(); //以x,y 形式输入坐标点 void output(); //以(x,y) 形式输出坐标点 }; CPoint::CPoint(double xx, double yy) { x = xx ; y = yy ; } double CPoint::Distance1(CPoint p)const { return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)) ; } double CPoint::Distance0()const { return sqrt(x*x+y*y) ; } CPoint CPoint::SymmetricAxis (char style)const { CPoint p ; switch(style) { case 'o': p.x = -x ; p.y = -y; break ; case 'x': p.x = -x ; p.y = y; break ; case 'y': p.x = x ; p.y = -y; break ; } return p ; } void CPoint::input() { cin >> x >> y ; } void CPoint::output() { cout << "点坐标为(" << x << ',' << y << ")" << endl ; } int main() { CPoint p1,p2,p ; cout << "请输入p1点坐标x,y:" ; p1.input() ; cout << "p1点坐标为:" ; p1.output() ; p=p1.SymmetricAxis('y') ; cout << "关于y轴对称:" ; p.output() ; p=p1.SymmetricAxis('x') ; cout << "关于x轴对称:" ; p.output() ; p=p1.SymmetricAxis('o') ; cout << "关于原点对称:" ; p.output() ; p1.Distance0() ; cout << "请输入p2点坐标x,y:" ; p2.input() ; cout << "p2点坐标为:" ; p2.output() ; p=p2.SymmetricAxis('y') ; cout << "关于y轴对称:" ; p.output() ; p=p2.SymmetricAxis('x') ; cout << "关于x轴对称:" ; p.output() ; p=p2.SymmetricAxis('o') ; cout << "关于原点对称:" ; p.output() ; cout << "p1,p2俩点的距离为:" ; p1.Distance1(p2) ;
cout << p1.Distance1(p2) ; return 0 ; }
多练多思。
相关文章推荐
- 2013级C++第6周(春)项目——对象指针、const 【项目2 - 对象作为数据成员】
- 2013级C++第6周(春)项目——对象指针、const
- C++第6周(春)项目1 体验常成员函数
- 2013级C++第7周(春)项目——深复制、友元、模板 【项目2-体验常成员函数】
- 2013级C++第7周(春)项目——深复制、友元、模板 【项目1-深复制体验】
- C++项目 体验常成员函数
- 第6周项目1-深复制体验(2)
- 第五周项目一体验常成员函数
- 2015-第6周项目1-深复制体验
- 2013级C++第13周项目——递归函数
- 2013级C++第3周【项目2 - 旱冰场造价】
- 2013级C++第11周(春)项目——通过继承拥有基类的资源
- 2013级C++第14周(春)项目——多态性、虚函数和抽象类 【项目1-动物这样叫】
- 2013级C++第4周(春)项目——再和对象找感觉【项目4扩展3(选做)】
- 2015-第5周项目1-体验常成员函数
- 第五周 项目一 体验常成员函数
- 2013级C++第8周(春)项目——运算符重载 【项目1】实现复数类中的运算符重载
- 2013级C++第1周(春)项目——枚举类型与结构体初步
- 第五周项目1-体验常成员函数
- 2013级C++第5周(春)项目——用构造函数初始化【项目1.2-三角形类的构造函数】