关闭

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

标签: 任务distanceoutputclassc
2207人阅读 评论(2) 收藏 举报

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

* 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;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:281882次
    • 积分:2282
    • 等级:
    • 排名:第18381名
    • 原创:86篇
    • 转载:0篇
    • 译文:0篇
    • 评论:92条
    文章分类
    最新评论