【精选优质专栏推荐】
- 《AI 技术前沿》 —— 紧跟 AI 最新趋势与应用
- 《网络安全新手快速入门(附漏洞挖掘案例)》 —— 零基础安全入门必看
- 《BurpSuite 入门教程(附实战图文)》 —— 渗透测试必备工具详解
- 《网安渗透工具使用教程(全)》 —— 一站式工具手册
- 《CTF 新手入门实战教程》 —— 从题目讲解到实战技巧
- 《前后端项目开发(新手必知必会)》 —— 实战驱动快速上手
每个专栏均配有案例与图文讲解,循序渐进,适合新手与进阶学习者,欢迎订阅。
题目要求
定义一个Point类,有两个数据成员:x和y, 分别代表x坐标和y坐标,并有若干成员函数。定义一个函数Distance(), 用于求两点之间的距离。
输入格式:
输入有两行:
第一行是第一个点的x坐标和y坐标;
第二行是第二个点的x坐标和y坐标。
输出格式:
输出两个点之间的距离,保留两位小数。
输入样例:
0 9
3 -4
输出样例:
13.34
解题思路
公有成员函数 distance(),用于计算当前点对象和另外一个点对象之间的距离。
读入两个点的横纵坐标,并使用这些坐标创建了两个 Point 对象 p1 和 p2。接着,调用 p1.distance(p2) 计算 p1 和 p2 之间的距离。
最后使用 cout 输出距离,并使用 fixed 和 setprecision 控制输出格式,保留两位小数。
代码
#include <iostream>
#include <cmath>
#include <iomanip> // 用于控制输出格式
using namespace std;
class Point {
private:
double x, 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;
}
double distance(const Point& p) const {
double dx = x - p.x;
double dy = y - p.y;
return sqrt(dx * dx + dy * dy);
}
};
int main() {
double x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
Point p1(x1, y1), p2(x2, y2);
double dist = p1.distance(p2);
cout << fixed << setprecision(2) << dist << endl;
return 0;
}
getX()函数
getX() 函数一个访问器(getter),用于获取 Point 类的私有变量 x 的值。其定义中使用了 const 关键字,表示这个成员函数是一个只读函数,即它不允许修改类的成员变量。
double getX() const {
return x;
}
distance()函数
double distance(const Point& p) const {
double dx = x - p.x;
double dy = y - p.y;
return sqrt(dx * dx + dy * dy);
}
在这个distance函数定义中,我们同时使用了两个 const 关键字:
distance()函数的末尾加上了一个const关键字,表明该成员函数是一个只读函数,不会修改任何数据成员。p参数前面加上了一个const关键字,表示p是一个常量引用,即在函数内部不会修改另外一个点对象的值。
文章描述了如何在C++中定义一个Point类,包含x和y坐标,以及一个distance()函数来计算两点间的距离。输入和输出格式被详细说明,代码示例中展示了如何读取坐标,创建对象并调用distance()函数,最后使用fixed和setprecision控制浮点数输出格式。
2007

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



