设计用于表示点、线和三角形的类: Point、 Line 和Triangle.要求如下: (1) Point类中包含两个用于表示点的X和Y坐标分量的公有数据成员,能够根据指定的X和Y坐标构建点对象。 (2) Line类中包含两个用于表示线段瑞点的私有对象成员,能够根据指定的两点构造线段对象(要求构造雨数的参数为常引用),具有计算线段长度的公有成员函数。 (3) Triangle类中包含三个用于表示三角顶点的私有对象成员,能够根据指定的三点构造三角形对象(要求构造函数的参数为常明用) .具有计算三角形周长和面积的公有成员函数。 在main函数中: 根据输入的三个点的坐标构建三角形对象。并输出的三角形的周长和面积。 输入 依次输入三个点的坐标:x1, y1, x2, y2, x3, y3 输出 输出三个点所构成的三角形的周K和面积
时间: 2024-02-22 17:00:26 浏览: 103
定义三个类Point,Circle和Cylinder,Point类为基类,为上述3个类添加计算面积的成员函数Area(),要求函数Area()采用虚函数的形式,并通过基类指针调用虚函数Area()。
以下是实现Point、Line和Triangle的C++代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
class Point {
public:
double x, y;
Point(double x = 0, double y = 0): x(x), y(y) {}
};
class Line {
private:
Point p1, p2;
public:
Line(const Point& p1, const Point& p2): p1(p1), p2(p2) {}
double length() const {
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return sqrt(dx*dx + dy*dy);
}
};
class Triangle {
private:
Point p1, p2, p3;
public:
Triangle(const Point& p1, const Point& p2, const Point& p3): p1(p1), p2(p2), p3(p3) {}
double perimeter() const {
Line l1(p1, p2);
Line l2(p2, p3);
Line l3(p3, p1);
return l1.length() + l2.length() + l3.length();
}
double area() const {
double a = Line(p1, p2).length();
double b = Line(p2, p3).length();
double c = Line(p3, p1).length();
double p = (a + b + c) / 2;
return sqrt(p*(p-a)*(p-b)*(p-c));
}
};
int main() {
double x1, y1, x2, y2, x3, y3;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
Point p1(x1, y1), p2(x2, y2), p3(x3, y3);
Triangle t(p1, p2, p3);
cout << "Perimeter: " << t.perimeter() << endl;
cout << "Area: " << t.area() << endl;
return 0;
}
```
在main函数中,我们根据输入的坐标构造了三个Point对象,然后用它们构造了一个Triangle对象t。最后,我们调用t的perimeter和area函数分别计算周长和面积,并输出结果。
阅读全文