/*
*程序的版权和版本声明部分:
*Copyright(c)2014,烟台大学计算机学院学生
*All rights reserved.
*文件名称:体验常成员函数
*作者:王至超
*完成日期:2013年 4月 2日
*版本号:v1.0
*对任务及求解方法的描述部分:
*输入描述: 坐标
*问题描述:无
*程序输出:分别输出按x轴, y轴, 原点对称对称的坐标 ;点之间距离的计算
*问题分析:sqrt(pow(x-p.x,2)+pow(y-p.y,2)) ; switch(chose);
*算法设计:
*/
#include <iostream>
#include <cmath>
using namespace std;
class Cpoint
{
private:
double x;
double y;
public:
Cpoint (double xx=0,double yy=0);
double Distance1(Cpoint p)const;
double Distance0() const;
Cpoint SymmetricAxis(char style)const;
void input();
void output();
};
Cpoint::Cpoint (double xx,double yy)
{
x=xx;
y=yy;
}
void Cpoint::input()
{
cout<<"请输入坐标:"<<endl;
cin>>x>>y;
}
void Cpoint::output()
{
cout<<"坐标为:"<<endl;
cout<<"(x,y)"<<"("<<x<<","<<y<<")"<<endl;
}
double Cpoint::Distance1(Cpoint p)const
{
double dis=sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));
return dis;
}
double Cpoint::Distance0() const
{
return sqrt(x*x+y*y);
}
Cpoint Cpoint::SymmetricAxis(char style)const
{
Cpoint p;
if(style=='x')
{
p.x=x;
p.y=-y;
}
else if(style=='y')
{
p.y=y;
p.x=-x;
}
else if(style=='o')
{
p.x=-y;
p.y=-x;
}else{
}
return p;
}
int main()
{char b;
Cpoint p1,p2,p3;
p1.input();
p2.input();
cout<<"p1,p2两点间的距离为:"<<p1.Distance1(p2)<<endl;
cout<<"p1到原点的距离是:"<<p1.Distance0()<<endl;
cout<<"请输入是关于x,y,o三点那点对称"<<endl;
cin>>b;
p3= p1. SymmetricAxis(b);
p3.output();
return 0;
}
突然感觉现在这些内容好难学啊,我刚开始觉得自己一点也不会了,都对自己失望了,好不容易做出来,通过张玉老师讲的,感觉自己得好好看课本,在不好好学习自己就完了