设计程序能够计算键盘输入三条边的三角形的面积。其中,对输入的数据使用异常进行约束,假如输入的数据类型错误则进行“类型错误”的异常处理。假如输入的三条边不能够满足三角形的组成,则抛出自定义的异常类并进行处理。当输入数据都正确时,使用面向对象的编程计算三角形的面积。
时间: 2024-05-11 08:18:53 浏览: 95
C语言实验-从键盘输入三角形三个边的长度,计算该三角形的面积。若输入的三条边不能构成三角形。则直接输出信息“不能构成三角形!”
5星 · 资源好评率100%
以下是一个 Python 实现的示例代码:
```python
class InvalidTriangleError(Exception):
pass
class InputTypeError(Exception):
pass
class Triangle:
def __init__(self, a, b, c):
if not isinstance(a, (int, float)) or not isinstance(b, (int, float)) or not isinstance(c, (int, float)):
raise InputTypeError("输入类型错误,请输入数字类型。")
if a + b <= c or a + c <= b or b + c <= a:
raise InvalidTriangleError("无法构成三角形,请输入合法的三角形边长。")
self.a = a
self.b = b
self.c = c
def area(self):
s = (self.a + self.b + self.c) / 2
return (s * (s - self.a) * (s - self.b) * (s - self.c)) ** 0.5
try:
a = float(input("请输入第一条边长:"))
b = float(input("请输入第二条边长:"))
c = float(input("请输入第三条边长:"))
t = Triangle(a, b, c)
print("三角形的面积为:", t.area())
except InputTypeError as e:
print("类型错误:", e)
except InvalidTriangleError as e:
print("无法构成三角形:", e)
except Exception as e:
print("程序出错:", e)
```
程序首先定义了两个自定义的异常类 `InvalidTriangleError` 和 `InputTypeError`,分别用于处理无法构成三角形和输入类型错误的情况。
在 `Triangle` 类中,使用 `__init__` 方法初始化三角形的三条边,并进行异常处理。如果输入的边长无法构成三角形或者输入的数据类型错误,则抛出对应的异常类。如果输入的数据都正确,则将三角形的三条边存储在对象的属性中。
`Triangle` 类还定义了一个 `area` 方法,用于计算三角形的面积。
在程序主体部分,使用 `try-except` 语句进行异常处理。如果输入的数据类型错误或者无法构成三角形,则输出对应的错误信息。如果程序出现其他异常,则输出程序出错的信息。如果输入数据都正确,则计算三角形的面积并输出结果。
这个程序使用了面向对象的编程,将三角形的边长和计算面积的方法封装在了一个类中,增强了程序的可读性和可维护性。同时,使用异常处理机制,增强了程序的健壮性和容错性。
阅读全文