实验目的:利用成员函数,友函数和一般函数实现求两点间距离
* 程序头部注释开始
* 程序的版权和版本声明部分
* 烟台大学计算机学院学生
* 文件名称:
* 作
* 完成日期:
* 版本号:
* 程序头部的注释结束(此处也删除了斜杠)
#include <iostream>
#include <cmath>
using namespace std;
class CPoint
{private:
double x; // 横坐标
double y; // 纵坐标
public:
CPoint(double xx=0,double yy=0):x(xx),y(yy){}
//请继续写需要的代码
double getx(){return x;}
double gety(){return y;}
void input();
double Distance1(CPoint p);//成员函数
friend double Distance2(CPoint &p);//友元函数
};
double Distance3(CPoint &p);//一般函数
void CPoint::input() //以x,y 形式输入坐标点
{
char ch;
cout<<"请输入坐标点(格式x,y ):";
while(1)
{
cin>>x>>ch>>y;
if(ch != ',')
{cout<<"输入格式不对";}
else
break;
}
}
double CPoint::Distance1(CPoint p)
{
return (sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)));
}
double Distance2(CPoint &p)
{
CPoint p1;
cout<<"请输入一个点:";
p1.input();
return(sqrt((p1.x-p.x)*(p1.x-p.x)+(p1.y-p.y)*(p1.y-p.y)));
}
double Distance3(CPoint &p)
{
CPoint p1;
cout<<"请输入一个点:";
p1.input();
double a,b,c,d;
a=p1.getx();
b=p1.gety();
c=p.getx();
d=p.gety();
return (sqrt((a-c)*(a-c)+(b-d)*(b-d)));
}
int main()
{
double distance;
CPoint p(5,4);
CPoint p1(0,0);
distance=p.Distance1( p1);
cout<<"两点间点的距离为:"<<distance<<endl;
distance=Distance2(p1);
cout<<"两点间点的距离为:"<<distance<<endl;
distance=Distance3(p1);
cout<<"两点间点的距离为:"<<distance<<endl;
system("pause");
return 0;
}
截图:
友函数用的不习惯!