《第六周实验报告任务3》

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:    平面坐标点类                         
* 作    者:       刘江波                      
* 完成日期:    2012     年    03   月     26   日
* 版 本 号:       v.03262  

* 对任务及求解方法的描述部分
* 问题描述: 设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
* 程序头部的注释结束
*/

#include<iostream>

#include"cmath"

using namespace std;

enum SymmetricStyle {axisx, axisy, point};//分别表示按x轴, y轴, 原点对称

class CPoint
{
private:
     double x; // 横坐标
      double y; // 纵坐标
public:
     CPoint(double xx = 0,double yy = 0) : x(xx), y(yy){};
     void Distance(CPoint p) const; // 两点之间的距离(一点是当前点,另一点为参数p)
     void Distance0() const;       // 到原点的距离
      CPoint SymmetricAxis(SymmetricStyle style) const; // 返回对称点
      void input(); //以x,y 形式输入坐标点
      void output(); //以(x,y) 形式输出坐标点
};

void CPoint :: Distance(CPoint p) const     
{
	double d;
	d = sqrt((p.x - x) * (p.x - x) + (p.y - y) * (p.y - y));
	cout << "两点之间的距离:" << d << endl;
}

void CPoint :: Distance0() const     
{
	double d;
	d = sqrt((x - 0) * (x - 0) + (y - 0) * (y - 0));
	cout << "到原点的距离:" << d << endl;
}

CPoint CPoint::SymmetricAxis(SymmetricStyle style) const   
{
	switch(style)
	{
	case axisx:  cout << "按X轴对称点:"<<"(" << x << "," << -y << ")" << endl ; break;
	case axisy:  cout << "按Y轴对称点:"<<"(" << -x << "," << y << ")" << endl; break;
	case point:  cout << "按原点对称点:"<< "(" << -x << "," << -y << ")" << endl; break;
	}
	return(x,y);
}

void CPoint :: input() //以x,y 形式输入坐标点
{
	char c1, c2, c3;
	cout << "请输入坐标(形式 (x,y))";
	do
	{
		cin >> c1 >> x >> c2 >> y >> c3;
		if(c1 != '(' || c2 != ',' || c3 != ')')cout << "请重新输入(形式 x,y)";
		else break;
	}while(1);
}

void CPoint :: output() //以(x,y) 形式输出坐标点
{
	cout << "(" << x << "," << y << ")" << endl;
}


int main()
{
	CPoint c1, c2;

	c1.input();
	
	cout << "请再输入一个点" << endl;

	c2.input();

	c1.Distance(c2);
	
	c1.Distance0();
	
	c1.SymmetricAxis(axisx);
	
	c1.SymmetricAxis(axisy);
	
	c1.SymmetricAxis(point);
	
	return 0;
}



《第六周实验报告任务3》_第1张图片

 

知识总结:

1)、const型函数可以访问常对象中的数据成员,但仍然不允许修改常对象中数据成员的值。

2)、用const来声明场数据成员,只能通过构造函数的参数初始化表对常数据成员进行初始化。

3)、

数据成员

const成员函数

const成员函数

const的数据成员

可以引用,可以改变值

可以引用,不可以改变值

const数据成员

可以引用,不可以改变值

可以引用,不可以改变值

const对象的数据成员

不允许引用与改变值

可以引用,不可以改变值

 4)、如果已定义了一个常对象,只能调用其中的const成员函数。

 

 

你可能感兴趣的:(《第六周实验报告任务3》)