、设计程序能够计算键盘输入三条边的三角形的面积。其中,对输入的数据使用异常进行约束,假如输入的数据类型错误则进行“类型错误”的异常处理。假如输入的三条边不能够满足三角形的组成,则抛出自定义的异常类并进行处理。当输入数据都正确时,使用面向对象的编程计算三角形的面积。
时间: 2024-05-01 16:21:52 浏览: 24
好的,针对您的问题,我可以为您提供一份Python的示例代码:
```python
class InvalidTriangleException(Exception):
pass
class Triangle:
def __init__(self, a, b, c):
self.a, self.b, self.c = a, b, 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
def calculate_triangle_area():
try:
a = float(input("请输入第一条边的长度:"))
b = float(input("请输入第二条边的长度:"))
c = float(input("请输入第三条边的长度:"))
if not (a + b > c and a + c > b and b + c > a):
raise InvalidTriangleException("无法构成三角形")
triangle = Triangle(a, b, c)
print("三角形的面积为:", triangle.area())
except ValueError:
print("类型错误")
except InvalidTriangleException as e:
print(e)
calculate_triangle_area()
```
这段代码定义了一个`Triangle`类,用于计算三角形的面积,同时也定义了一个自定义异常类`InvalidTriangleException`,用于处理无法构成三角形的情况。
在`calculate_triangle_area`函数中,我们首先尝试将输入的三条边的长度转换为浮点数类型,如果无法转换则抛出类型错误的异常。然后判断这三条边是否能够构成三角形,如果不能则抛出自定义的异常。最后,如果输入的数据都是正确的,则创建一个`Triangle`对象并调用`area`方法计算三角形的面积。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)