酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

设计一个程序,其中有两个类,point为点类,包含私有数据x和y坐标,line为直线类,包含3个私有数据a,b,c,表示直线方程ax+by+c=0,另有一个友元函数dist用于计算点到直线的距离d=abs(ax+by+c)/sqrt(a*a+b*b); 使用dev-c++代码,a,b。c,需要手动输入

```cpp #include <iostream> #include <cmath> class Point { private: double x; double y; public: Point(double x = 0, double y = 0) : x(x), y(y) {} double getX() { return x; } double getY() { return y; } }; class Line { private: double a; double b; double c; public: Line(double a = 0, double b = 0, double c = 0) : a(a), b(b), c(c) {} double getA() { return a; } double getB() { return b; } double getC() { return c; } friend double dist(Point p, Line l); }; // 计算点到直线的距离的友元函数 double dist(Point p, Line l) { double distance = std::abs(l.a * p.getX() + l.b * p.getY() + l.c) / std::sqrt(l.a * l.a + l.b * l.b); return distance; } int main() { double a, b, c; std::cout << "请输入直线方程的系数 a: "; std::cin >> a; std::cout << "请输入直线方程的系数 b: "; std::cin >> b; std::cout << "请输入直线方程的系数 c: "; std::cin >> c; Line line(a, b, c); Point point(1, 1); double distance = dist(point, line); std::cout << "点到直线的距离为: " << distance << std::endl; return 0; } ``` 以下是为您列举的 3 条感兴趣的提问: 1. 如何优化这个点到直线距离计算的程序? 2. 如果要处理多个点和直线,怎么修改代码? 3. 怎样增加错误处理机制,比如输入非法数据时的处理? 您可以复制感兴趣的重新提问。 [2024-11-19 19:04:39 | AI写代码神器 | 478点数解答]

相关提问