用C++设计一个用来表示直角坐标系上点的位置的 Location 类,然后在主程序中创建两个对象 A 和 B,要求 A 在第三象限,B 在第二象限,计算给定两点之间的距离并按如下格式输出结果: A(x1,y1),B(x2,y2) Distance=d 其中 x1、y1、x2、y2 为指定值,d 为计算结果。 指导: (1)在直角坐标系上确定一个点的位置,需要两个坐标值(x,y)。因此,Location 类的 数据成员由两个,即 x 和 y,并将其设为私有的,不允许类外的对象直接访问。 (2)定义 3 个成员函数,init(int initX,int initY)设置点的坐标;GetX()取得点的横坐标; GetY()取得点的纵坐标。
时间: 2024-02-03 13:14:48 浏览: 74
以下是一个可能的实现:
```cpp
#include <iostream>
#include <cmath>
class Location {
private:
int x;
int y;
public:
void init(int initX, int initY) {
x = initX;
y = initY;
}
int GetX() {
return x;
}
int GetY() {
return y;
}
};
double Distance(Location& A, Location& B) {
int deltaX = A.GetX() - B.GetX();
int deltaY = A.GetY() - B.GetY();
return std::sqrt(deltaX * deltaX + deltaY * deltaY);
}
int main() {
Location A, B;
A.init(-3, -4);
B.init(-2, 3);
double distance = Distance(A, B);
std::cout << "A(" << A.GetX() << "," << A.GetY() << "), B(" << B.GetX() << "," << B.GetY() << ") Distance=" << distance << std::endl;
return 0;
}
```
在这个实现中,我们定义了一个 `Location` 类,其中包含了两个私有成员变量 `x` 和 `y`,以及三个公有成员函数。`init` 函数用于初始化坐标值,`GetX` 和 `GetY` 分别用于获取横坐标和纵坐标。
我们另外定义了一个 `Distance` 函数,用于计算两个点之间的距离。该函数接受两个 `Location` 类型的参数,并使用它们的坐标值计算距离,最后返回结果。
在主程序中,我们创建了两个 `Location` 对象 A 和 B,并分别初始化它们的坐标值。然后我们调用 `Distance` 函数计算它们之间的距离,并将结果输出到控制台上。输出格式符合题目要求。
阅读全文