先创建一个point类,然后定义trianglele类。在trianglele类中定义三个point的实体来表示一个三角形的三个点,再定义一个方法settri对这三个点进行初始化,然后定义两个方法求三角形的周长、面积。在main()中创建一个三角形对象,求给定三点的三角形的周长、面积。
时间: 2023-05-31 17:18:08 浏览: 248
### 回答1:
好的,以下是中文回复:
首先,我们需要创建一个Point类,用来表示一个点的坐标。可以定义如下:
```python
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
```
接下来,我们可以定义Triangle类,用来表示一个三角形。在Triangle类中,我们需要定义三个Point的实体来表示三角形的三个点,可以定义如下:
```python
class Triangle:
def __init__(self):
self.point1 = Point(0, 0)
self.point2 = Point(0, 0)
self.point3 = Point(0, 0)
```
接着,我们可以定义一个settri方法,用来对三个点进行初始化,可以定义如下:
```python
class Triangle:
def __init__(self):
self.point1 = Point(0, 0)
self.point2 = Point(0, 0)
self.point3 = Point(0, 0)
def settri(self, x1, y1, x2, y2, x3, y3):
self.point1.x = x1
self.point1.y = y1
self.point2.x = x2
self.point2.y = y2
self.point3.x = x3
self.point3.y = y3
```
最后,我们可以定义两个方法,分别用来求三角形的周长和面积。周长可以使用三个点之间的距离来计算,面积可以使用海龙公式来计算。可以定义如下:
```python
class Triangle:
def __init__(self):
self.point1 = Point(0, 0)
self.point2 = Point(0, 0)
self.point3 = Point(0, 0)
def settri(self, x1, y1, x2, y2, x3, y3):
self.point1.x = x1
self.point1.y = y1
self.point2.x = x2
self.point2.y = y2
self.point3.x = x3
self.point3.y = y3
def perimeter(self):
a = ((self.point1.x - self.point2.x) ** 2 + (self.point1.y - self.point2.y) ** 2) ** 0.5
b = ((self.point1.x - self.point3.x) ** 2 + (self.point1.y - self.point3.y) ** 2) ** 0.5
c = ((self.point2.x - self.point3.x) ** 2 + (self.point2.y - self.point3.y) ** 2) ** 0.5
return a + b + c
def area(self):
a = ((self.point1.x - self.point2.x) ** 2 + (self.point1.y - self.point2.y) ** 2) ** 0.5
b = ((self.point1.x - self.point3.x) ** 2 + (self.point1.y - self.point3.y) ** 2) ** 0.5
c = ((self.point2.x - self.point3.x) ** 2 + (self.point2.y - self.point3.y) ** 2) ** 0.5
p = (a + b + c) / 2
return (p * (p - a) * (p - b) * (p - c)) ** 0.5
```
最后,在main()函数中,我们可以创建一个Triangle对象,然后调用settri方法对三个点进行初始化,最后调用perimeter和area方法来求三角形的周长和面积。可以定义如下:
```python
def main():
tri = Triangle()
tri.settri(0, 0, 3, 0, 0, 4)
print("周长为:", tri.perimeter())
print("面积为:", tri.area())
```
这样就完成了题目要求的所有内容。
### 回答2:
本题要求创建一个point类和trianglele类,并在trianglele类中定义三个point的实体来表示一个三角形的三个点,并定义方法对这三个点进行初始化,再定义两个方法分别求三角形的周长和面积。最后在main()函数中创建一个三角形对象,通过调用对象对应的方法求给定三点的三角形的周长和面积。
首先我们需要创建point类。point类中需要具有表示点的x和y坐标的属性,并能够对x和y坐标进行设置和获取:
```
class point {
public:
point(int x=0, int y=0):_x(x), _y(y){}
int get_x() const { return _x; }
int get_y() const { return _y; }
void set_x(int x) { _x = x; }
void set_y(int y) { _y = y; }
private:
int _x, _y;
};
```
接着我们需要创建trianglele类。trianglele类中需要有三个point的实体来表示三角形的三个点,并通过settri方法初始化这三个点。trianglele类中还需要定义两个方法来分别求三角形的周长和面积:
```
class trianglele {
public:
trianglele(){}
~trianglele(){}
void settri(const point& P1, const point& P2, const point& P3){
_P1 = P1; _P2 = P2; _P3 = P3;
}
double perimeter() const {
double a = get_distance(_P1, _P2);
double b = get_distance(_P1, _P3);
double c = get_distance(_P2, _P3);
return a + b + c;
}
double area() const {
double a = get_distance(_P1, _P2);
double b = get_distance(_P1, _P3);
double c = get_distance(_P2, _P3);
double p = (a + b + c) / 2;
return sqrt(p * (p - a) * (p - b) * (p - c));
}
private:
point _P1, _P2, _P3;
double get_distance(const point& P1, const point& P2) const {
int x = P2.get_x() - P1.get_x();
int y = P2.get_y() - P1.get_y();
return sqrt(x*x + y*y);
}
};
```
至此,我们已经创建了point和trianglele两个类。接下来我们只需要在main()函数中创建一个trianglele对象,然后通过调用对象对应的方法即可求给定三点的三角形的周长和面积:
```
int main() {
point P1(0, 0), P2(3, 0), P3(0, 4); // 假设三个点分别为(0,0)、(3,0)、(0,4)
trianglele tri;
tri.settri(P1, P2, P3);
double perimeter = tri.perimeter(); // 求三角形的周长
double area = tri.area(); // 求三角形的面积
cout << "Perimeter of triangle: " << perimeter << endl;
cout << "Area of triangle: " << area << endl;
return 0;
}
```
运行结果如下:
```
Perimeter of triangle: 12
Area of triangle: 6
```
### 回答3:
面向对象编程是一种重要的编程思想,通过定义类、实例化对象等方式来实现问题的解决。在本题中,我们需要使用面向对象编程的思想来实现一个求三角形周长和面积的程序。
首先要创建一个point类,表示三角形中的点。这个类应该至少包含两个属性x和y,表示点的x和y坐标。同时,我们需要为这个类定义方法,来获取和设置这个点的x和y坐标。(注意:这个点也可以通过(x, y)元组来表示)
接下来,我们需要定义triangle类。这个类应该包含三个point实体,分别表示三角形的三个点。我们需要定义一个settri方法,来初始化这三个点。这个方法应该接受三个参数,每个参数都表示一个point实例。这个方法的目的是将三个point实例分别赋值给当前triangle实例的三个属性。
然后,我们需要在triangle类中定义两个方法,一个用于计算三角形的周长,另一个用于计算三角形的面积。周长方法应该返回所有三角形边长的和,面积方法应该返回三角形的面积(根据海伦公式计算)。
有了上述的类定义,我们就可以在main函数中来创建一个三角形对象,并使用它来计算三角形的周长和面积。我们可以使用point类来创建三个point实例表示三角形的三个点,然后再使用这三个point实例来初始化我们刚刚创建的triangle实例。接下来,我们就可以使用周长和面积方法来计算三角形的周长和面积了。
总之,本题需要使用面向对象编程的思想来实现一个求三角形周长和面积的程序。需要定义point类和triangle类,并在triangle类中定义settri、周长和面积方法。最后,我们需要实例化triangle类,并使用它来计算三角形的周长和面积。
阅读全文