写点类的定义,要求点类中提供求两点距离、根据三点求三角形面积的成员函数,并在main函数里进行测试、打印点的信息和计算结果。
时间: 2024-03-12 11:43:59 浏览: 15
好的,下面是点类的定义:
```
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
double x, y;
public:
Point(double a, double b) {
x = a;
y = b;
}
double distance(Point p) {
return sqrt(pow(x - p.x, 2) + pow(y - p.y, 2));
}
double area(Point p1, Point p2) {
double a = distance(p1);
double b = distance(p2);
double c = p1.distance(p2);
double s = (a + b + c) / 2;
return sqrt(s * (s - a) * (s - b) * (s - c));
}
void printInfo() {
cout << "点的坐标为 (" << x << ", " << y << ")" << endl;
}
};
int main() {
Point p1(1, 1), p2(2, 3), p3(4, 2);
p1.printInfo();
p2.printInfo();
p3.printInfo();
cout << "p1到p2的距离为:" << p1.distance(p2) << endl;
cout << "p1、p2、p3构成的三角形面积为:" << p1.area(p2, p3) << endl;
return 0;
}
```
在上面的代码中,我们定义了一个点类 Point,其中有两个私有成员变量 x 和 y,表示该点的坐标。我们提供了一个构造函数,可以用两个 double 类型的参数初始化这个点类。另外,我们还提供了两个公有成员函数:distance 和 area。
distance 函数接受一个 Point 类型的参数 p,表示计算当前点和参数点 p 之间的距离。这个函数使用了 sqrt 和 pow 函数,需要在文件头部包含 <cmath>。
area 函数接受两个 Point 类型的参数 p1 和 p2,表示计算当前点和这两个点所构成的三角形的面积。这个函数使用了 distance 函数,需要调用当前点的 distance 函数和参数点 p1 的 distance 函数。
最后,在 main 函数里,我们创建了三个点对象 p1、p2 和 p3,并测试了 distance 和 area 函数的正确性。同时,我们还提供了一个 printInfo 函数,用于打印点的坐标信息。