Problem C: 平面上的点——Point类 (III)
时间: 2023-11-19 07:06:12 浏览: 87
题目描述
设计一个表示二维平面上的点的 Point 类,该类包括两个私有数据成员 x 和 y(坐标),以及一个构造函数和一个成员函数:
- 构造函数:Point(double x0, double y0),用于创建坐标为 (x0, y0) 的点。
- 成员函数:void print(),用于输出点的坐标,格式为 (x,y)。
输入格式
输入为一个浮点数 x 和一个浮点数 y,分别表示点的横、纵坐标。
输出格式
输出为该点的坐标,格式为 (x,y)。
样例输入
3.5 4.6
样例输出
(3.5,4.6)
提示
数据范围:输入坐标的绝对值不超过 10000。
C++ 代码
注意:此题不需要包含头文件。
相关问题
Problem A: 平面上的点——Point类 (VI)
题目描述
定义一个Point类,表示平面上的点,具有x和y两个坐标成员变量,以及设置和获取坐标的方法。还要实现计算两点之间距离的方法。
输入描述
无输入。
输出描述
无输出。
样例
无样例。
提示
要求定义Point类,具有如下成员:
成员变量:
double x:表示点的横坐标。
double y:表示点的纵坐标。
成员函数:
Point():构造函数,将x和y初始值为0.0。
Point(double x, double y):构造函数,将x和y初始值为参数值。
void setX(double x):设置点的横坐标。
double getX():获取点的横坐标。
void setY(double y):设置点的纵坐标。
double getY():获取点的纵坐标。
double distance(Point another):计算当前点与另外一个点之间的距离,返回距离值。
注意:在类的实现中,要包含头文件cmath,使用其中的sqrt函数求平方根。
C++ 代码
```cpp
#include <iostream>
#include <cmath>
using namespace std;
class Point
{
private:
double x, y;
public:
Point() : x(0.0), y(0.0) {}
Point(double x, double y) : x(x), y(y) {}
void setX(double x) { this->x = x; }
double getX() { return x; }
void setY(double y) { this->y = y; }
double getY() { return y; }
double distance(Point another)
{
double dx = x - another.x;
double dy = y - another.y;
return sqrt(dx * dx + dy * dy);
}
};
int main()
{
Point p1, p2(3.0, 4.0);
p1.setX(1.0);
p1.setY(2.0);
cout << "p1: (" << p1.getX() << ", " << p1.getY() << ")" << endl;
cout << "p2: (" << p2.getX() << ", " << p2.getY() << ")" << endl;
cout << "distance between p1 and p2: " << p1.distance(p2) << endl;
return 0;
}
```
Problem E: 平面上的点——Point类 (V)
这是一个简单的点类,它包含了点的坐标以及一些基本的操作。以下是一个可能的实现:
```cpp
#include <cmath>
class Point {
public:
Point(double x = 0, double y = 0) : x(x), 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 distanceTo(const Point& other) const {
double dx = x - other.x;
double dy = y - other.y;
return std::sqrt(dx * dx + dy * dy);
}
private:
double x, y;
};
```
这个类包含了两个私有成员变量 `x` 和 `y`,它们表示点的坐标。类中定义了一个默认构造函数,可以创建坐标为 $(0, 0)$ 的点,也可以传入指定的坐标。类中还定义了一些公有成员函数:
- `getX()` 和 `getY()`:获取点的横坐标和纵坐标。
- `setX(double)` 和 `setY(double)`:设置点的横坐标和纵坐标。
- `distanceTo(const Point&)`:计算该点与另一个点的距离。距离的计算采用勾股定理,即 $\sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}$。
这个点类还有很多可以改进的地方,比如加入运算符重载、添加异常处理等等。