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

* 程序头部注释开始* 程序的版权和版本声明部分

* Copyright (c) 2011, 烟台大学计算机学院学生

* All rights reserved.* 文件名称:

* 作 者: 时永杰

* 完成日期: 2012 年 3月 26日

* 版 本 号:4308

#include <iostream>

#include <cmath>

using namespace std;

enum SymmetricStyle{ axisx,axisy,point};

class Cpoint
{
private:
	double x;
	double y;
public:
	Cpoint (double xx=0,double yy=0);

	double Distance (Cpoint &p) const;

	double Distance0() const;

	Cpoint symmertricAxis(SymmetricStyle style) const;

	void intput();

	void output();

	double returnx(){return x;} ;

	double returny(){return y;} ;

};

Cpoint::Cpoint (double xx,double yy)
{
	x=xx;
	y=yy;
}
double Cpoint::Distance (Cpoint &p) const
{
	cout<< "到p点距离"<<sqrt((x-p.returnx())*(x-p.returnx())+((y-p.returny())*(y-p.returny())))<<endl;
	return 0;
}

double Cpoint::Distance0() const
{
	cout<< "到原点距离"<<sqrt(x*x+y*y)<<endl;
	return 0;
}
Cpoint Cpoint::symmertricAxis(SymmetricStyle style) const
{
	double a,b;
	switch(style)
	{
	case axisx:{
		a=-x;
		b=y;
		cout<<"按x轴对称"<<"("<<a<<","<<b<<")"<<endl;
		   };
	case axisy:{
		a=x;
		b=-y;
		cout<<"按y轴对称"<<"("<<a<<","<<b<<")"<<endl;
		   };
	case point:{
		a=-x;
		b=-y;
		cout<<"按原点对称"<<"("<<a<<","<<b<<")"<<endl;
		   }break;
	default:cout<<"输入错误";break;
	}
	return 0;
}

void Cpoint::intput()
{
	char ch1,ch2,ch3;
	do
	{
		cout<<"请以(x,y)的方式输入x,y:";
		cin>>ch1>>x>>ch2>>y>>ch3;
		if(ch1 == '(' && ch2 == ',' && ch3 == ')')
			break;
	}
	while (1);
}
void Cpoint::output()
{
	cout<<"该点为"<<"("<<x<<","<<y<<")"<<endl;
}
int main()
{
	 SymmetricStyle style;
	Cpoint p(5,6);
	Cpoint a;
	a.intput();
	a.Distance ( p);
	a.Distance0();

	cout<<"style的类型(axisx按x轴对称,axisy按y轴对称,point按原点轴对称)"<<endl;

	style=axisx;

	a.symmertricAxis( style);
	a.output();
	return 0;
}

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

你可能感兴趣的:(c,Class,任务,output,distance)