请编写CBank类,完成单利和单复利差额的计算

请编写CBank类,完成以下功能:

构造函数__init__中对存款__deposit,利率__rate和年__year都初始化为0.00;
实例方法setData完成键盘输入数据,对存款__deposit,利率__rate和年__year进行修改,
要求应有格式检查,排除输入非数字型字符串和负数的可能,格式不符合要求,return False,格式符合要求,return True;
实例方法displayData完成存款__deposit,利率__rate和年__year的输出,保留2位小数;
实例方法computeSimInterest采用单利公式计算存款总额,实例方法computeDifference采用复利和单利公式分别计算存款总额,求得两种存款的差额的"绝对值",
输出的结果保留2位小数;

复利公式:利本合计=本金×(1+利率/100)^年 
 单利公式:利本合计=本金+本金×(利率/100)×年
调用类实现功能的参考代码如下:

在这里插入图片描述
输入格式:

调用setData时,一行输入:存款 利率 年。例如:1000 3.50 2
setData函数返回True时,根据提示输入选项,按照不同计算方法完成存款总额或差额的计算。例如:1 输出格式:
在displayData、computeSimInterest和computeDifference实例方法中完成题目要求的输出,参考输出样例格式。

输入样例1:
1000 3.50 2
1
输出样例1:
存款为1000.00
利率为3.502.00年
采用单利公式计算输入1,计算单利和复利的差额输入2
按单利计算,存款总额为1070.00
输入样例2:
1000 3.50 2
2
输出样例2:
存款为1000.00
利率为3.502.00
**采用单利公式计算输入1,计算单利和复利的差额输入2
复利和单利的差额为1.22
输入样例3:
1000 3.50 2
3
输出样例3:
存款为1000.00
利率为3.502.00年
采用单利公式计算输入1,计算单利和复利的差额输入2
只有12两种选择
输入样例4:
-1000 -3.50 2
输出样例4:
请输入正数
输入样例5:
10y0 t 2
输出样例5:
请输入数值型字符串**

程序代码:

class CBank:
	def __init__(self):
		self.__deposit = 0.00
		self.__rate = 0.00
		self.__year = 0.00

	def setData(self):
		s = input()
		lis = s.split(" ")
		try:
			self.__deposit = float(lis[0])
			self.__rate = float(lis[1])
			self.__year = float(lis[2])
		except ValueError:
			print("请输入数值型字符串")
			return False
		if self.__deposit > 0 and self.__year > 0 and self.__rate > 0:
			return True
		else:
			print("请输入正数")
			return False

	def computeSimInterest(self):
		sb = self.__deposit + self.__deposit * (self.__rate / 100.0) * self.__year
		print("按单利计算,存款总额为{0:0.2f}".format(sb),end='')

	def computeComInterest(self):
		sb = self.__deposit * (1 + self.__rate / 100.0) ** self.__year
		print("按复利计算,存款总额为{0:0.2f}".format(sb),end="")
        
	def computeDifference(self):
		all = (self.__deposit * (1 + self.__rate/100) ** self.__year) - (self.__deposit + self.__deposit * (self.__rate/100) * self.__year)
		if all < 0:
			all*=-1
		print("复利和单利的差额为%.2f" % all)
 
	def displayData(self):
		print("存款为{0:0.2f}".format(self.__deposit))
		print("利率为{0:0.2f}".format(self.__rate))
		print("存{0:0.2f}年".format(self.__year))
if __name__ == "__main__":
    dpst = CBank()
    if (dpst.setData()):
        select = input()
        dpst.displayData()
        print("采用单利公式计算输入1,计算单利和复利的差额输入2")
        if(select == '2'):
            dpst.computeDifference()
        elif(select == '1'):
            dpst.computeSimInterest()
        else:
            print("只有1和2两种选择")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值