第六周 RW3 关于坐标点类

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

* 对任务及求解方法的描述部分
* 输入描述:   
* 问题描述:   设计平面坐标点类,计算两点间的距离,到原点的距离以及关于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();
}


        真的,有很多时候,程序就卡在那一小步。听完老师的讲解后,就是豁然开朗!

老师,太谢谢您为我们提供了那么一个轻松的学习环境,以后每周一晚,我都会去

听您的课!

【线程对象与线程】

 【线程对象与线程】线程从概念上讲就是一个执行的线索,原则上讲任何一段程序代码段都可以成为一个线程,但是不同都操作系统的线程模型是不一样的,有的系统将线程作为用户级来处理,真正的调度和资源分配单位是进...
  • darkay
  • darkay
  • 2001-07-05 11:10:00
  • 824

Cpoint3D.txt

  • 2008年05月18日 17:31
  • 2KB
  • 下载

安卓自定义控件之坐标存储类

安卓自定义控件之坐标存储类
  • cmwly
  • cmwly
  • 2015-11-20 21:00:50
  • 358

C++第6周项目3 - 平面坐标点类

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijia...
  • sxhelijian
  • sxhelijian
  • 2013-04-05 21:43:34
  • 3618

C#--第四周实验--任务2--定义一个描述坐标点的CPoint类,利用(默认参数值)构造函数传递参数。(控制台应用)

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:定义...
  • leihengxin
  • leihengxin
  • 2012-09-22 14:51:24
  • 2790

第六周任务三(坐标点类)

问题描述:设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等 #include #include using namespace std; enum Symmetri...
  • fengzhenq
  • fengzhenq
  • 2012-03-27 20:46:53
  • 409

图形学的一些基本图元类

  • 2009年03月12日 20:11
  • 26KB
  • 下载

第六周任务三 坐标点

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

利用EXCEL数据展坐标点利用EXCEL数据展坐标点

  • 2009年05月23日 09:18
  • 22KB
  • 下载

面向对象程序设计实验报告

  • 2013年09月03日 19:10
  • 69KB
  • 下载
收藏助手
不良信息举报
您举报文章:第六周 RW3 关于坐标点类
举报原因:
原因补充:

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