六周任务三

原创 2012年03月28日 20:26:31
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:                              
* 作    者:   张启立                          
* 完成日期:   2012      年   3    月    28   日
* 版 本 号:          

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

#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  ) ;

	double Distance ( CPoint p ) const;   // 两点之间的距离(一点是当前点,另一点为参数p)

	double Distance0 ( ) const;          // 到原点的距离

	CPoint SymmetricAxis ( SymmetricStyle style) const;   // 返回对称点

	void input ( );  //以x,y 形式输入坐标点

	void output ( ); //以(x,y) 形式输出坐标点

};

CPoint :: CPoint(double xx,double yy)  
{  
    x=xx;  
    y=yy;  
}  

// 两点之间的距离(一点是当前点,另一点为参数p)

double CPoint::Distance ( 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 ( SymmetricStyle style) const
{
	CPoint p;

	switch ( style )
	{

	case axisx:

		p.y = -y; break;

	case axisy:

		p.x = -x; break;

	case point:

		p.x = -x;

		p.y = -y;
	}
	return p;
}

//以x,y 形式输入坐标点

void CPoint:: input ( )

{

	char ch ;

	while ( 1 )
	{
		cin >> x >> ch >> y;

		if ( ch != ',' )
		{

			cout << " 你输入的格式错误 " << endl;

		}

		else

		{

			break;

		}

	}

}

void CPoint::output ( )//以(x,y) 形式输出坐标点

{

	cout << x <<',' << y << endl;
	
}
 
void main ( )

{
	double distance;

	CPoint p1 , p2 , p ;

	cout << "请分别输入两点坐标:格式为  x,y " << endl;

	p1.input ();

	p2.input ();

	distance = p1.Distance ( p2 );

	cout << "两点的距离为:" << distance << endl;

	distance = p1.Distance0();

	cout << "点距离坐标原点的距离为 " << distance << endl;

	p = p1.SymmetricAxis ( axisx );

	cout << "关于x轴对称的点:"  << endl;

	p.output();

	p = p1.SymmetricAxis ( axisy );

	cout << "关于y轴对称的点:" << endl;

	p.output();

	p = p1.SymmetricAxis ( point );

	cout<<"关于原点对称的点坐标为: "<<endl;

	p.output();
}


相关文章推荐

六周任务4.1

#include #include using namespace std; class CPoint { private : double x ; double y ;...

六周任务2.2

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...
  • dizzy12
  • dizzy12
  • 2012年03月28日 20:25
  • 521

六周任务3

#include #include using namespace std; enum SymmetricStyle { axisx , axisy , point }; cl...

六周任务四

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...
  • dizzy12
  • dizzy12
  • 2012年03月28日 20:28
  • 270

六周 BX1.2改错

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...

六周 BX1.1

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...

C++走向远洋——30(六周,项目一1.0)

*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:fenshu.cpp * 作者:常轩 * 微信公众号:...
  • vcx08
  • vcx08
  • 2016年04月06日 21:04
  • 454

AsyncTask异步任务三.rar

  • 2015年01月11日 09:35
  • 1.38MB
  • 下载

UCOS三任务CAN-USART-LED

  • 2014年04月17日 14:54
  • 2.27MB
  • 下载

十七. 增加一个项目协作留言板功能(三)----- 增加任务的修改和删除功能

 任务的修改功能主要是进入任务内部,进行实施步骤的添加功能,并对一些内容进行更改,例如,联系人方式等。   1.通过views.py建立编辑任务函数: #任务的编辑 def t...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:六周任务三
举报原因:
原因补充:

(最多只允许输入30个字)