题目内容:
定义如下形式的point 类,其对象表示平面上的一个点(x,y),设计一个友元函数dis()求出两个对象(平面点)间的距离。并编制主函数,通过类对象验证相关函数的正确性。
class point {
double x,y;
public:
point (double x0=0, double y0=0) {x=x0; y=y0;}
void display();
};
运用两点间的距离公式,开根号函数为sqrt()。
输入格式:
四个实数,前两个实数是一个点的坐标,后两个实数是另一个点的坐标。坐标中前一个数是横坐标,后一个数是纵坐标。
输出格式:
输出三行数据,第一行是第一个点坐标,第二行是第二个点坐标,坐标输出形式为(x,y),第三行是一个实数,代表两个点之间的距离。
输入样例:
1.2 -3.5 -1.5 6
输出样例:
(1.2,-3.5)
(-1.5,6)
9.87623
#include<iostream>
#include<cmath>
using namespace std;
class Point {
private:
double x, y;
public:
Point(double x0 = 0, double y0 = 0)
{
x = x0; y = y0;
}
void display()
{
cout << "(" << x << "," << y << ")" << endl;
}
friend double dis(Point p1,Point p2);//定义一个友元函数
/*{
cout << sqrt(pow((x - p.x), 2) + pow((y - p.y), 2));
}*/
};
double dis(Point p1,Point p2) //类体外实现友元函数
{
double j;
j= sqrt(pow((p1.x - p2.x), 2) + pow((p1.y - p2.y), 2));/*两点间距离的公式,
(pow(),2)的意思时,小括号的2次方*/
cout << j << endl;
return 1;
}
int main()
{
double a, b, c, d;
cin >> a >> b >> c >> d;
Point p1(a, b);
Point p2(c, d);
p1.display();
p2.display();
dis(p1,p2);
return 0;
}
2431

被折叠的 条评论
为什么被折叠?



