定义一个点Point类,数据成员是整型横纵坐标;一个直线类Line,数据成员是两个Point对象指针,表示起点和终点(即Point两个对象指针为Line的内嵌对象);一个三角形类Triangle,继承自Line,数据成员有三角形的高height,以基类直线为底,以height为高的直角三角形,即直线和高分别为两条直角边。请实现相关函数,计算三角形的周长和面积并给出相关输出(计算结果保留到整数)。
时间: 2024-02-25 16:55:54 浏览: 95
好的,我可以帮你实现这个程序。以下是完整的代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
class Point {
public:
int x, y;
Point(int x = 0, int y = 0): x(x), y(y) {}
};
class Line {
public:
Point *start, *end;
Line(Point *start, Point *end): start(start), end(end) {}
double length() {
int dx = start->x - end->x;
int dy = start->y - end->y;
return sqrt(dx * dx + dy * dy);
}
};
class Triangle: public Line {
public:
double height;
Triangle(Point *start, Point *end, double height): Line(start, end), height(height) {}
double area() {
return length() * height / 2;
}
double perimeter() {
return length() + 2 * sqrt(length() * length() + height * height);
}
};
int main() {
Point p1(0, 0), p2(3, 0);
Triangle t(&p1, &p2, 4);
cout << "周长为:" << t.perimeter() << endl;
cout << "面积为:" << t.area() << endl;
return 0;
}
```
在这个程序中,我们定义了三个类:Point、Line和Triangle。其中,Point类表示一个点,包含横纵坐标两个整型数据成员。Line类表示一条直线,包含两个Point对象指针作为起点和终点。Triangle类继承自Line类,表示一个三角形,包含直线和高两个数据成员。
在Triangle类中,我们实现了计算三角形周长和面积的函数。周长的计算方法是直线长度加上斜边长度,斜边长度通过勾股定理计算得出。面积的计算方法是直线长度乘以高再除以2。
在主函数中,我们创建了一个点和一个三角形对象,并输出了三角形的周长和面积。
希望这个程序能够帮到你!
阅读全文