6-6 自定义函数求两点间距离(点是自定义Point类) 分数 10 全屏浏览题目 切换布局 作者 陈春丽 单位 中国地质大学(北京) 本题实现两个点之间的距离的函数,已知两个点p1(x1,y1)和p2(x2,y2)间的距离公式为: (x1−x2) 2 +(y1−y2) 2 。 自定义一个点类,类名Point,包含x轴坐标和y轴坐标,功能包括: 1)Set成员函数实现为点赋值; 2)Output成员函数实现输出点,格式为(x,y)(见输出样例); 3)GetX和GetY成员函数,分别返回x坐标和y坐标; 4)构造函数实现点的初始化,默认为原点(0,0)。 类的定义及主函数如下,请补充实现类的构造函数和成员函数,以及getDis函数实现两点间距离。 类及函数接口定义: class Point { public: Point(double xx=0,double yy=0); void Set(double xx,double yy); void Output(); double GetX() {return x; } double GetY() {return y; } private: double x,y; }; double getDis(Point &p1, Point &p2); `getDis`函数返回`Point`类型的两个对象p1和p2之间的距离(`double`型) `p1`是`Point`类型的引用对象,即实参`Point`对象的引用(别名),`p2`类似 裁判测试程序样例: int main() { double x1,y1,x2,y2; cin >> x1 >> y1 >> x2 >> y2; Point p1; p1.Set(x1,y1); p1.Output(); Point p2(x2,y2); p2.Output(); cout << "distance=" << getDis(p1,p2) << endl; return 0; } /* 请在这里填写Point定义的构造函数和成员函数(Set、Output),以及普通函数getDis的答案 */ /* 答案区共4个函数定义,无其它内容*/
时间: 2024-02-24 09:59:43 浏览: 163
```cpp
#include <iostream>
#include <cmath>
using namespace std;
class Point {
public:
Point(double xx=0,double yy=0) {
x = xx;
y = yy;
}
void Set(double xx,double yy) {
x = xx;
y = yy;
}
void Output() {
cout << "(" << x << "," << y << ")";
}
double GetX() {return x;}
double GetY() {return y;}
private:
double x,y;
};
double getDis(Point &p1, Point &p2) {
double dis = sqrt(pow(p1.GetX()-p2.GetX(), 2) + pow(p1.GetY()-p2.GetY(), 2));
return dis;
}
int main() {
double x1,y1,x2,y2;
cin >> x1 >> y1 >> x2 >> y2;
Point p1;
p1.Set(x1,y1);
p1.Output();
Point p2(x2,y2);
p2.Output();
cout << "distance=" << getDis(p1,p2) << endl;
return 0;
}
```
阅读全文