设计程序能够计算键盘输入三条边的三角形的面积。其中,对输入的数据使用异常进行约束,假如输入的数据类型错误则进行“类型错误”的异常处理。假如输入的三条边不能够满足三角形的组成,则抛出自定义的异常类并进行处理。当输入数据都正确时,使用面向对象的编程计算三角形的面积。python
时间: 2024-05-10 14:15:28 浏览: 86
以下是实现上述要求的 Python 代码:
```python
class Triangle:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def is_valid(self):
if self.a + self.b > self.c and self.b + self.c > self.a and self.c + self.a > self.b:
return True
else:
return False
def area(self):
s = (self.a + self.b + self.c) / 2
area = (s * (s - self.a) * (s - self.b) * (s - self.c)) ** 0.5
return area
class InvalidTriangleException(Exception):
pass
def get_triangle_area(a, b, c):
try:
a = float(a)
b = float(b)
c = float(c)
except ValueError:
raise TypeError("类型错误")
triangle = Triangle(a, b, c)
if not triangle.is_valid():
raise InvalidTriangleException("输入的三条边不能够满足三角形的组成")
return triangle.area()
# 测试代码
try:
area = get_triangle_area(3, 4, "5")
print(area)
except TypeError as e:
print(e)
except InvalidTriangleException as e:
print(e)
```
以上代码中,`Triangle` 类表示三角形,包含三条边的长度以及判断是否为合法三角形的方法 `is_valid` 和计算面积的方法 `area`。`InvalidTriangleException` 是自定义的异常类,用于表示输入的三条边不能够满足三角形的组成。`get_triangle_area` 函数是主函数,接受三条边的输入,使用异常处理对输入数据进行约束,然后计算三角形面积并返回。
在测试代码中,我们使用了字符串类型的 "5" 作为参数调用 `get_triangle_area` 函数,因此会抛出 `TypeError` 异常。如果我们将 "5" 改为 2,则会抛出 `InvalidTriangleException` 异常,因为 2, 3, 4 不能组成一个三角形。最后,如果输入数据都正确,函数会返回三角形的面积。
阅读全文