用C++完成 根据三点坐标求三角形面积 c/c++ 一、要求: 已知平面直角坐标系中两点(x1,y1)和(x2,y2)之间的距离公式为 ,三角形面积的计算公式为。其中,a,b,c为三角形的三边长,s=(1/2)(a+b+c).是定义一个描述平面直角坐标系上点的类Point,利用友元函数求坐标系中由三个点构成的三角形面积。具体要求如下: (1)私有数据成员 float x,y;坐标系中的一个点坐标。 (2)公有数据成员 Point(double ,double);构造函数,初始化成员,参数的缺省值为0。 void print();输出点的坐标,格式为(x,y)。 友元函数 double distance(Point,P
时间: 2024-03-21 08:40:50 浏览: 154
以下是用 C++ 实现的代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
float x, y;
public:
Point(float x = 0, float y = 0) {
this->x = x;
this->y = y;
}
void print() {
cout << "(" << x << ", " << y << ")" << endl;
}
friend double distance(Point p1, Point p2) {
return sqrt(pow(p1.x - p2.x, 2) + pow(p1.y - p2.y, 2));
}
friend double area(Point p1, Point p2, Point p3) {
double a = distance(p1, p2);
double b = distance(p2, p3);
double c = distance(p3, p1);
double s = (a + b + c) / 2.0;
return sqrt(s * (s - a) * (s - b) * (s - c));
}
};
int main() {
Point p1(0, 0);
Point p2(3, 0);
Point p3(0, 4);
p1.print();
p2.print();
p3.print();
double triArea = area(p1, p2, p3);
cout << "三角形的面积为:" << triArea << endl;
return 0;
}
```
注意,我们在 Point 类中声明了两个友元函数 `distance` 和 `area`,用于计算两点之间的距离和三角形的面积。在 `area` 函数中,我们利用了 `distance` 函数计算三角形的三条边长,并使用海伦公式计算三角形的面积。
阅读全文