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

本文介绍了一个名为CBank的类的设计与实现过程,该类用于处理银行存款业务中的单利与复利计算。通过构造函数初始化存款、利率和年份,并提供了设置数据、显示数据及计算利息等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请编写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两种选择")
好的,根据您的要求,我为您编写CBank,可以按照您指定的计算方式计算存款总额。参考以下代码: ```python class CBank: def __init__(self, principal, rate, time, is_simple_interest=True): self.principal = principal # 本金 self.rate = rate # 利率 self.time = time # 存款时间(位:年) self.is_simple_interest = is_simple_interest # 是否为单利计算方式 def calculate_total_amount(self): if self.is_simple_interest: # 单利计算方式 total_amount = self.principal * (1 + self.rate * self.time) else: # 复利计算方式 total_amount = self.principal * (1 + self.rate) ** self.time return total_amount ``` 在这个CBank中,我们定义了四个属性: - principal:存款本金 - rate:存款利率 - time:存款时间(位:年) - is_simple_interest:存款计算方式(默认为单利计算方式) 中还包含了一个方法calculate_total_amount(),用于计算存款总额。在这个方法中,我们根据is_simple_interest的值来选择计算方式,如果is_simple_interest为True,则采用单利计算方式,否则采用复利计算方式。 您可以使用以下方式来实例化一个CBank对象,并计算存款总额: ```python # 使用单利计算方式,计算存款总额 bank1 = CBank(1000, 0.05, 5) total_amount1 = bank1.calculate_total_amount() print("单利计算方式,存款总额为:", total_amount1) # 使用复利计算方式,计算存款总额 bank2 = CBank(1000, 0.05, 5, False) total_amount2 = bank2.calculate_total_amount() print("复利计算方式,存款总额为:", total_amount2) ``` 希望这个CBank可以满足您的要求,如果您还有其他问题,随时向我提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值