python模拟银行存取款_[CP_01] Python循环结构案例:模拟银行存取款业务,设计&执行测试用例...

目录结构

一、案例描述

二、需求分析

1. 业务流程图

2. 业务项&测试场景

三、代码实现

四、用例设计&执行(简化模式)

1. 登录业务

2. 存款业务

3. 取款业务

4. 退卡业务

5. 存款、取款、退卡-交叉业务

案例:利用循环结构语法,实现模拟银行存款&取款业务

一、案例描述

模拟3张银行卡,卡号分别为:1001、1002、1003,分别设置有密码、初始余额

提示用户输入卡号和密码

银行卡登录场景

(1)若用户输入正确,则提示让用户选择具体的操作业务(取款|存款|退出),并提示当前余额数目

(2)若用户输入错误,则提示重新输入卡号密码

(3)若连续3次输入错误的账号密码,则提示银行卡已被锁定,不能继续交易

登录后的业务操作场景

(1)取款业务:提示输入取款额度。若输入超出余额,则提示余额不足;否则,在余额上减掉输入的取款金额

(2)存款业务:提示输入存款金额。余额加上存款金额,提示当前余额的数目

(3)退出操作:提示重新输入卡号和密码

二、需求分析

1. 业务流程图

2. 业务项&测试场景

1. 登录验证业务

1)正确匹配,登录成功

①首次输入即正确匹配

②输入错误1次,再次输入正确

③连续输入错误2次,再次输入正确

2)输入错误超出次数限制,登录失败(退出程序)

①连续输入错误3次

2. 存款业务

1)存款成功

①输入非0的正整数

2)存款失败

①输入非数字

②输入负数

③输入0

④不输入,直接提交

3. 取款业务

1)取款成功

①输入非0的正整数,且输入的数字=账户余额

②输入非0的正整数,且输入的数字

2)取款失败

①输入非数字

②输入负数

③输入0

④不输入,直接提交

⑤取款金额>账户余额

4. 退卡业务

①登录成功后,业务选择“退卡”,不作其他交易

5. 存款、取款、退卡-交叉业务

①存款,退卡

②存款,存款,退卡

③存款,取款,退卡

④存款,存款,取款,取款,存款,退卡

⑤取款,退卡

⑥取款,取款,退卡

⑦取款,取款,存款,存款,取款,退卡

三、代码实现

bankTest.py

# 定义3张银行卡,分别设置密码、初始余额

card1="1001"

pwd1="111"

bal1=100

card2="1002"

pwd2="222"

bal2=200

card3="1003"

pwd3="333"

bal3=300

# 开启登录、存取款业务

print("------Welcome to Python Bank------")

times=0 # 控制输错的连续次数

while True: # while永久循环

# 提示用户输入卡号和密码

card=input("请输入银行卡号:")

pwd=input("请输入密码:")

bal=0 # 余额

# 对卡号密码匹配判断-登录业务

if card==card1 and pwd==pwd1: # 将卡号密码-余额进行关联

bal=bal1

print("Welcome User:",card)

elif card==card2 and pwd==pwd2:

bal=bal2

print("Welcome User:",card)

elif card==card3 and pwd==pwd3:

bal=bal3

print("Welcome User:",card)

else: # 卡号密码不匹配的处理

times=times+1

if times<3:

print("卡号or密码输入错误,请重新输入!")

continue # 跳出当前循环,继续下一次循环:输入卡号密码

else:

print("已连续3次输入错误,请联系银行柜台解锁")

break

# 登录银行账户后,进行存取款业务

while True:

num=input("请选择办理的业务[1-存款 2-取款 3-退卡]:")

# 存款业务

if num=="1":

while True:

# 与整数比较,变量需要为int类型;强转int只对数字型字符串有效

# 输入可能有整数、小数、字母字符等

deposit=input("请输入存款金额:")

if deposit.isnumeric() and int(deposit)>0:

bal=bal+int(deposit)

print("存款成功!\n存入:",deposit,"\t账户余额:",bal)

break # 终止当前while循环,进入上一层循环(若有):选择业务

else:

print("存款金额必须为正整数,请重新输入!")

continue # 跳出本次循环,进入下一次循环:继续输入存款金额

# 取款业务

elif num=="2":

while True:

withdraw=input("请输入取款金额:")

if withdraw.isnumeric():

if int(withdraw)>0 and int(withdraw)<=bal:

bal=bal-int(withdraw)

print("取款成功!\n取出:",withdraw,"\t账户余额:",bal)

break

elif int(withdraw)>bal:

print("余额不足,请重新输入!")

continue

else:

print("取款金额必须为正整数,请重新输入!")

continue

else:

print("取款金额必须为正整数,请重新输入!")

continue

# 退卡业务

elif num=="3":

print("退卡成功!")

exit() # 退出程序

else:

print("输入有误,请重新选择!")

continue # 跳出本次循环,进行下一次循环:选择业务

四、用例设计&执行(简化模式)

1. 登录业务

编号

用例描述

预期结果

01

首次输入卡号密码正确

登录成功,出现对应卡号的欢迎信息

02

输入错误1次,再次输入正确

输入错误:登录失败,系统提示“卡号or密码输入错误,请重新输入!”

输入正确:登录成功,出现对应卡号的欢迎信息

03

连续输入错误2次,再次输入正确

输入错误:登录失败,系统提示“卡号or密码输入错误,请重新输入!”

输入正确:登录成功,出现对应卡号的欢迎信息

04

连续输入错误3次

连续第1/2次输入错误:登录失败,系统提示“卡号or密码输入错误,请重新输入!”

连续第3次输入错误:登录失败,系统提示“已连续3次输入错误,请联系银行柜台解锁”

执行结果:

2. 存款业务

预置条件:使用银行卡1001,初始账户余额=100

编号

用例描述

预期结果

01

输入非0的正整数:1000

系统提示“存款成功! 存入:1000 账户余额:1100”

02

输入非数字:abc100

系统提示“存款金额必须为正整数,请重新输入!”

03

输入负数:-200

系统提示“存款金额必须为正整数,请重新输入!”

04

输入0

系统提示“存款金额必须为正整数,请重新输入!”

05

不输入,直接提交

系统提示“存款金额必须为正整数,请重新输入!”

执行结果:

3. 取款业务

预置条件:使用银行卡1002,初始账户余额=200

编号

用例描述

预期结果

01

输入非0的正整数,且输入的数字(150)

取款成功,系统提示“取款成功! 取出:150 账户余额:50”

02

输入非0的正整数,且输入的数字(50)=账户余额

取款成功,系统提示“取款成功! 取出:50 账户余额:0”

03

输入非数字:aaabbb

取款失败,系统提示“取款金额必须为正整数,请重新输入!”

04

输入负数:-100

取款失败,系统提示“取款金额必须为正整数,请重新输入!”

05

输入0

取款失败,系统提示“取款金额必须为正整数,请重新输入!”

06

不输入,直接提交

取款失败,系统提示“取款金额必须为正整数,请重新输入!”

07

取款金额(300)>账户余额

取款失败,系统提示“余额不足,请重新输入!”

执行结果:

4. 退卡业务

编号

用例描述

预期结果

01

登录成功后,业务选择“退卡”,不作其他交易

系统提示“退卡成功!”,并退出程序

执行结果:

5. 存款、取款、退卡-交叉业务

预置条件:使用银行卡1003,初始账户余额=300

编号

用例描述

预期结果

01

存款,退卡

存款:存款成功,并显示存入金额、账户余额

退卡:系统提示“退卡成功!”,并退出程序

02

存款,存款,退卡

03

存款,取款,退卡

04

存款,存款,取款,取款,存款,退卡

05

取款,退卡

取款:取款成功,并显示取出金额、账户余额

退卡:系统提示“退卡成功!”,并退出程序

06

取款,取款,退卡

07

取款,取款,存款,存款,取款,退卡

执行结果:

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值