C++第六周任务三设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等

原创 2012年03月27日 23:17:56
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等                              
* 作    者:李洪悬                              
* 完成日期:   2012      年 3      月  28      日
* 版 本 号:          

* 对任务及求解方法的描述部分
* 输入描述: 
* 问题描述: 
* 程序输出: 
* 程序头部的注释结束
*/

【任务3】设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等
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) 形式输出坐标点
};



#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);
	
	void input();  //以x,y 形式输入坐标点   
	
	void output(); //以(x,y) 形式输出坐标点  
	
	double Distance(CPoint p) const;   // 两点之间的距离(一点是当前点,另一点为参数p)  
	
	double Distance0() const;         // 到原点的距离   
	
	CPoint SymmetricAxis(SymmetricStyle style) const;   // 返回对称点 
	
};  
CPoint::CPoint(double xx,double yy)
{
	x = xx;
	
	y = yy;
}
void CPoint::input()  //以x,y 形式输入坐标点 
{
	cout << "请以x,y的形式输入坐标点"  << endl;
	
	while(1)
	{
		char c;
		
		cin >> x >> c >> y;
		
		if (c != ',')
		{
			cout << "格式非法!请从新输入!" ;
			
		}
		else
			break;
	}
}
	

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

double CPoint::Distance(CPoint p) const  // 两点之间的距离(一点是当前点,另一点为参数p)
{
	double len;
	
	len = sqrt((p.x-this->x)*(p.x-this->x)+(p.y-this->y)*(p.y-this->y));  
	
	return len;
}


double CPoint::Distance0() const// 到原点的距离
{	
	double len;
	
	len = sqrt(x*x+y*y);  
	
	return len;
}


CPoint CPoint::SymmetricAxis(SymmetricStyle style) const  // 返回对称点 
{  
	CPoint p(x,y);
	
	switch(style)  
	{  
	case axisx: 
		
		p.y=-y; break; 
		
	case axisy:  
		
		p.x=-x; break;  
		
	case point:  
		
		p.x=-x;p.y=-y;  
	}  
	return p; 
}
void main()
{
	double dis;

	CPoint p1,p2,p;
	
	cout << "请输入p1的坐标:";

	p1.input();
	
	cout << "请输入p2的坐标:";
	
	p2.input();

   dis = p1.Distance(p2);
	
	cout << "p1和p2之间的距离为:" << dis << endl;

	dis = p1.Distance0();

	cout << "p1到原点之间的距离为:" << dis << endl;

	
	dis = p2.Distance0();
	cout << "p2到原点之间的距离为:" << dis << endl;

	p=p1.SymmetricAxis(axisx); 
	
	cout<<"p1关于x轴的对称点为:";
		
	p.output(); 
	
	p=p1.SymmetricAxis(axisy);  
	
	cout<<"p1关于y轴的对称点为:";
	
	p.output();

	p=p1.SymmetricAxis(point); 
	
    cout<<"p1关于原点的对称点为:";

	p.output();

	system ("pause");
}
	
	
	
	
	
	
	
	





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

第六周任务三设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等

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

【任务3】设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等

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

第六周任务3(设计平面坐标点类)

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

第六周实验报告(任务三)【平面坐标点类】

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

第六周任务三之平面坐标点

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

第六周任务3:平面坐标点类

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

输出一点的对称点,两点间的距离

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

任务三:设计平面坐标点类

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

第6周-任务3-设计平面坐标点类

【题目】设计平面坐标点类,计算两点之间距离、到原点距离、关于坐标轴和原点的对称点等enum SymmetricStyle { axisx,axisy,point};//分别表示按x轴, y轴, 原点对...

给定一个平面内三个不同的点p1、p2和p3,求出任意两点(即点p1和点p2、点p1和点p3、点p2和点p3)之间的距离。

import java.util.Scanner; class point { double x, y; point(double x, double y) { this...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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