R7-3 请编写CBank类,按单复利计算存款总额 分数 30 作者 yang 单位 成都信息工程大学 请编写CBank类,完成以下功能: 构造函数__init__中对存款__deposit,利率__rate和年__year都初始化为0.00; 实例方法setData完成键盘输入数据,对存款进行修改,要求应有格式检查,排除输入非数字型字符串和负数的可能,格式不符合要求,setData函数return False,格式符合要求,return True; 实例方法displayData完成__deposit,利率__rate和年__year的输出,保留2位小数; 实例方法computeComInterest和computeSimInterest分别按照复利和单利方式进行存款总额的计算,完成不同方式存款总额的计算,输出的结果保留2位小数;
时间: 2024-03-03 18:49:48 浏览: 60
BUK662R7-55C-VB一种N沟道TO263封装MOS管
以下是 CBank 类的实现:
```python
class CBank:
def __init__(self):
self.__deposit = 0.00
self.__rate = 0.00
self.__year = 0.00
def setData(self):
deposit = input("请输入存款金额:")
try:
deposit = float(deposit)
if deposit < 0:
raise ValueError
except ValueError:
print("存款金额应为正数,请重新输入!")
return False
rate = input("请输入存款利率:")
try:
rate = float(rate)
if rate < 0:
raise ValueError
except ValueError:
print("存款利率应为正数,请重新输入!")
return False
year = input("请输入存款年限:")
try:
year = float(year)
if year < 0:
raise ValueError
except ValueError:
print("存款年限应为正数,请重新输入!")
return False
self.__deposit = deposit
self.__rate = rate
self.__year = year
return True
def displayData(self):
print("存款金额:{:.2f}".format(self.__deposit))
print("存款利率:{:.2f}%".format(self.__rate))
print("存款年限:{:.2f}".format(self.__year))
def computeComInterest(self):
total = self.__deposit * (1 + self.__rate / 100) ** self.__year
print("复利计算存款总额:{:.2f}".format(total))
def computeSimInterest(self):
total = self.__deposit * (1 + self.__rate / 100 * self.__year)
print("单利计算存款总额:{:.2f}".format(total))
```
在这个类中,我们用 `__init__` 方法初始化了 `__deposit`、`__rate` 和 `__year` 这三个属性,用来保存存款金额、存款利率和存款年限。
`setData` 方法用来设置存款金额、存款利率和存款年限。在方法中,我们先使用 `input` 函数从键盘读入输入,然后尝试将输入转换成浮点数。如果转换失败,说明输入的不是数字型字符串,或者是负数,我们就输出错误信息并返回 False。如果转换成功,我们就将输入的值赋值给对应的属性,并返回 True。
`displayData` 方法用来输出存款金额、存款利率和存款年限。我们使用 `print` 函数将这三个属性的值输出即可。
`computeComInterest` 和 `computeSimInterest` 方法用来计算复利和单利方式下的存款总额,并输出结果。我们按照公式进行计算,并使用 `print` 函数输出结果即可。注意,我们需要保留两位小数,可以使用字符串格式化来实现。
阅读全文