某公司有一台打印、复印一体机,需要将购买成本分年均摊到隔年的费用中。请编写一个程序,根据用户输入的购买金额和预计使用年限计算每年的分摊费用。除了对输入异常进行处理外,当计算得到每年的分摊费用大于100时,抛出自定义异常InvalidNumberError对象,并进行处理。
时间: 2024-02-22 16:00:55 浏览: 20
好的,我可以帮你实现这个程序。以下是 Python 代码实现:
```python
class InvalidNumberError(Exception):
pass
def calculate_cost():
try:
cost = float(input("请输入购买金额:"))
year = int(input("请输入预计使用年限:"))
if year <= 0:
raise ValueError("预计使用年限必须大于0")
annual_cost = cost / year
if annual_cost > 100:
raise InvalidNumberError("每年的分摊费用不能大于100元")
print("每年的分摊费用为:{:.2f}元".format(annual_cost))
except ValueError as e:
print("输入错误:", e)
except InvalidNumberError as e:
print("计算错误:", e)
calculate_cost()
```
首先定义了一个自定义异常类 `InvalidNumberError`,用于处理每年的分摊费用大于100的情况。
然后定义了一个函数 `calculate_cost()`,其中包含了程序的核心逻辑。函数首先尝试从用户输入中获取购买金额和预计使用年限,如果输入有误则抛出 `ValueError` 异常并进行处理。
接着计算每年的分摊费用,如果超过了100元则抛出 `InvalidNumberError` 异常并进行处理。
最后,如果没有出现异常,程序会输出每年的分摊费用。
你可以在测试时输入一些不同的值,看看程序的输出是否符合预期。
相关推荐
![](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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)