定义point类描述点的坐标,可以输出坐标可以求两个点之间的距离主函数声明point p【5】输入5个点的坐标,根据5个点与原点的距离,由近至远输出距离值
时间: 2024-02-21 22:59:58 浏览: 121
好的,以下是point类的定义和主函数的实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class point {
private:
double x;
double y;
public:
point(double x = 0, double y = 0) {
this->x = x;
this->y = y;
}
double getX() const {
return x;
}
double getY() const {
return y;
}
void setX(double x) {
this->x = x;
}
void setY(double y) {
this->y = y;
}
double distance(const point &p) const {
double dx = x - p.x;
double dy = y - p.y;
return sqrt(dx * dx + dy * dy);
}
};
int main() {
point p[5];
double distance[5];
for (int i = 0; i < 5; i++) {
double x, y;
cout << "请输入第" << i+1 << "个点的坐标(x, y): ";
cin >> x >> y;
p[i].setX(x);
p[i].setY(y);
distance[i] = p[i].distance(point(0, 0));
}
for (int i = 0; i < 5; i++) {
for (int j = i+1; j < 5; j++) {
if (distance[i] > distance[j]) {
// 交换距离值
double temp = distance[i];
distance[i] = distance[j];
distance[j] = temp;
// 交换point对象
point t = p[i];
p[i] = p[j];
p[j] = t;
}
}
}
cout << "按距离由近至远输出点的坐标: " << endl;
for (int i = 0; i < 5; i++) {
cout << "(" << p[i].getX() << ", " << p[i].getY() << ") 距离原点的距离为: " << distance[i] << endl;
}
return 0;
}
```
在这个程序中,我们定义了一个`point`类来描述点的坐标,其中包含了两个`private`数据成员`x`和`y`,以及`public`的成员函数`getX`、`getY`、`setX`、`setY`和`distance`。其中,`getX`和`getY`用来获取点的坐标,`setX`和`setY`用来设置点的坐标,`distance`用来计算两个点之间的距离。
在主函数中,我们创建了一个`point`类型的数组`p`,用来存储输入的5个点的坐标。同时,我们还创建了一个`double`类型的数组`distance`,用来存储每个点与原点的距离。在输入点的坐标后,我们使用`distance`数组来存储每个点与原点的距离,并对`distance`数组进行排序,以便按照距离由近至远输出点的坐标。最后,我们使用循环遍历`p`数组和`distance`数组,输出每个点的坐标和距离原点的距离。
希望这个程序能够帮助到你,如果你有任何问题,可以随时向我提问。
阅读全文