* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: class time
* 作 者: 于昊
* 完成日期: 2012 年 03 月 25 日
* 版 本 号: 1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 问题分析:
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: class time
* 作 者: 于昊
* 完成日期: 2012 年 03 月 25 日
* 版 本 号: 1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 问题分析:
* 算法设计:……
#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;
}