第六周任务三

原创 2012年03月28日 19:07:22
实验目的:
实验内容:


/*
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:                              
* 作    者:李腾                              
* 完成日期: 2012        年  3     月     28   日
* 版 本 号:          


* 对任务及求解方法的描述部分
* 输入描述:函数自变量x
* 问题描述:求函数的值  (按你实际编的程序写)
* 程序输出:f(x)的值
* 问题分析:……
* 算法设计:……
*/
#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){}

double CPoint::Distance(CPoint p) const
{
	double d;
	d=sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
	return d;
}
double CPoint::Distance0() const
{
	double e;
	e=sqrt(x*x+y*y);
	return e;
}
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.y=-y;
		p.x=-x;
		break;
		
	}
	return p;
}
void CPoint::input()
{
	char ch;
	while(1)
	{
		cin>>x>>ch>>y;
		if(ch!=',')
			cout<<"格式出现错误!"<<endl;
		else
			break;
	}
}
void CPoint::output()
{
    cout<<"("<<x<<','<<y<<")"<<endl;
}
void main()
{
	double distance;
	CPoint p1,p2,p;  
	cout<<"第1个点p1:";  
	p1.input();  
	cout<<"第2个点p2:";  	   
	p2.input();  
	distance=p1.Distance(p2);  
	cout<<"两点的距离为:"<<distance<<endl;  	  
	distance=p1.Distance0();  
	cout<<"p1到原点的距离为:"<<distance<<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(); 
}

USACO2.1.3 三值排序

【问题描述】   排序是一种很频繁的计算任务。现在考虑最多只有三值的排序问题。一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候。在这个任务中可能的值只有三种1,2和3。我们用交换的方法...
  • qq_35546274
  • qq_35546274
  • 2016年07月20日 14:33
  • 1255

Android源码解析之(三)-->异步任务AsyncTask

android的异步任务体系中还有一个非常重要的操作类:AsyncTask,本文主要解析AsyncTask的的使用与源码。 首先我们来看一下AsyncTask的基本使用: class MAsy...
  • qq_23547831
  • qq_23547831
  • 2016年03月20日 14:47
  • 5078

Activiti 学习笔记12:分配个人任务

一、流程图二、分配个人任务方式一(直接指定办理人)1、流程图中任务节点的配置 2、测试代码ProcessEngine processEngine = ProcessEngines.getDefa...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2016年09月11日 15:11
  • 1403

Java挑战高并发(3) 线程挂起、恢复与终止的正确方法(含代码)

挂起和恢复线程     Thread 的API中包含两个被淘汰的方法,它们用于临时挂起和重启某个线程,这些方法已经被淘汰,因为它们是不安全的,不稳定的。如果在不合适的时候挂起线程(比如,锁定共享...
  • A1023824314
  • A1023824314
  • 2016年07月24日 23:07
  • 1340

2.uCOSIII任务管理

任务简介: 任务即由系统管理的程序实体,由三部分组成: 任务堆栈:本质是一个数组,不同的任务在创建前可以自己定义相关数组的大小;任务控制块:本质上是一个结构体,用于保存任务当前的各种状态信息,其成...
  • chuchaoqundevin
  • chuchaoqundevin
  • 2016年05月18日 16:32
  • 1722

关于运算符(三目运算符)和运算过程中的优先关系

转自:http://blog.csdn.net/dingliqin/article/details/6490986 Turbo C运算符的优先次序 ━━━━━━━━━━━━━━━━━━━━━━...
  • zhanglizhi111
  • zhanglizhi111
  • 2017年05月18日 10:30
  • 459

UCOSII学习之路3 -任务同步之互斥

上一节我们引入了信号量的概念,这一讲我们将揭晓互斥信号量的奥秘。 互斥信号量和信号量虽然都带了信号量的帽子,但是二者却有着不同的运用场合,互斥信号量相比而言经常用于一些资源的互斥访问,比如打印...
  • u014170207
  • u014170207
  • 2017年07月15日 10:56
  • 213

线程通信之生产者消费者详解

先前我们讲解了多线程互斥访问同一资源问题,接下来我们讲解一下线程通信问题之经典:生产者与消费者 线程通信:不同的线程在执行不同的任务,如果这些任务的执行之间存在先后顺序,那么线程之间必须要能够通信,协...
  • super_YC
  • super_YC
  • 2017年06月19日 18:05
  • 181

第三章 μC/OS-Ⅱ中的任务

第三章  μC/OS-Ⅱ中的任务     μC/OS-Ⅱ操作系统内核的主要工作就是对任务的调度和管理。 3.1 任务的基本概念 3.1.1 任务及其内存结构 将大任务分解为多个小任务,可以使系...
  • zm1_1zm
  • zm1_1zm
  • 2016年09月09日 22:38
  • 722

《百度前端技术学院》任务一:零基础HTML编码

点我直接访问 薛定谔的好人卡 导航——blibili 导航——百度 导航——acfun 我是一级标题!!! 我是二级标题!!! 我是三级标题!!! 我是死机标题!!! 楼上的都若爆了!...
  • c8866986
  • c8866986
  • 2016年03月16日 18:01
  • 2890
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第六周任务三
举报原因:
原因补充:

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