- 编程实现:仔细业务之间的包含关系,并完成以下编程需求,要适当提高代码的可复用性。
- 用户:账号(str:系统随机产生8位数字)、账户类型(int)、姓名(str)、密码(int:6位数字)、地址、存款余额(int)、开户行(银行的名称(str))
- 地址:国家(str)、省份(str)、街道(str)、门牌号(str)
- 银行:能存储100用户的库(字典)、本银行名称(比如:中国农业银行的昌平沙河支行,str)
- 银行业务功能
- 开户(传入参数:用户的所有信息。返回值:整型值(1:成功,2:用户已存在,3:用户库已满))
- 业务逻辑:
- 开户(传入参数:用户的所有信息。返回值:整型值(1:成功,2:用户已存在,3:用户库已满))
- 银行业务功能
- 先检查该用户的账号在库里是否存在。若不存在则在用户库里添加一个该用户并返回代号1
- 若存在则返回代号2。另外在添加用户的时候检测用户库是否已注册满,若已满则返回代号3
-
-
- 存钱(传入值:用户的账号、存取的金额。返回值:布尔类型值)
- 业务逻辑:
- 存钱(传入值:用户的账号、存取的金额。返回值:布尔类型值)
-
-
- 先根据传入的账号信息查询用户库里是否有该用户。若没有则返回False
- 若有,则将该用户的金额存进去。
-
-
- 取钱(传入值:用户的账号,用户密码,取钱金额。返回值:整型值(0:正常,1:账号不存在,2:密码不对,3:钱不够))
- 业务逻辑:
- 取钱(传入值:用户的账号,用户密码,取钱金额。返回值:整型值(0:正常,1:账号不存在,2:密码不对,3:钱不够))
-
-
- 先根据账号信息来查询该用户是否存在,若不存在,则返回代号1,
- 若存在,则继续判断密码是否正确,若不正确,则返回代号2。
- 若账号密码都正确,则继续判断当前用户的金额是否满足要取出的钱,若不满足,则返回代号3,
- 若满足,则将该用户的金额减去。
-
-
- 转账(传入值:转出的账号,转入的账号,转出账号的密码,转出的金额。返回值:0:正常,1:账号不对,2密码不对,3钱不够)
- 业务逻辑:
- 转账(传入值:转出的账号,转入的账号,转出账号的密码,转出的金额。返回值:0:正常,1:账号不对,2密码不对,3钱不够)
-
-
- 先查询用户库是否存在转出和转入的账号,若不存在则返回代号,1,
- 若账号都存在则继续判断转出账号的密码是否正确,若不正确,则返回2,
- 若正确则继续判断要转出的金额是否足够,若不够则返回3,
- 否则正常转出,转出的账号用户金额要相对应的减少,转入的金额相对应的增加。
-
-
- 查询账户功能(传入值:账号,账号密码,返回值:空)
- 业务逻辑:
- 查询账户功能(传入值:账号,账号密码,返回值:空)
-
-
- 先根据账号判断用户库是否存在该用户,若不存在则打印提示信息:该用户不存在。
- 否则继续判断密码是否正确。若不正确则打印相对应的错误信息。
- 若账号和密码都正确,则将该用户的信息都打印出来,比如:当前账号:xxxx,密码:xxxxxx,余额:xxxx元,用户居住地址:xxxxxxxxxxxxx,当前账户的开户行:xxxxxxxxxx.
- ATM界面类:在执行该入口程序时,就打印银行业务选择菜单
- 然后就开始处理各种输入操作,直到业务处理完成!
import random # 用户信息 user_list = ['name', 'password', 'money', '用户居住地址', 'address'] user_dict = {} # 判断账户是否存在 def decide(): global user_dict global i global user_list if len(user_dict) <= 100: if i not in user_dict: print('1.账号信息不存在') id() else: print('2.账号信息已存在') password1 = input('请输入您的卡号密码:') if password1 != user_dict[i][1]: print('密码输入错误,请重新输入') decide() else: return else: print('3.银行用户库已满') exit() # 随机生成卡号 def id(): global i global user_dict global user_list i = random.randint(10000000, 100000000) name = input('为您办理新卡,请输入你的姓名:') password = input('请设置密码:') money = input('请输入您要存入的金额:') address = input('请输入您的居住地址:') print(f'为您办理的卡号是:{i},%%%%%%%%%请您记牢%%%%%%%%%%') user_list[0] = name user_list[1] = password user_list[2] = money user_list[3] = address user_list[4] = "中国农业银行账户管理系统" user_dict[i] = user_list print(f'银行卡开户成功,卡号:{i},客户信息:{user_dict[i]}') use() # 开户 def user(): global i global user_dict global user_list i = random.randint(10000000, 100000000) decide() name = input('为您办理新卡,请输入你的姓名:') password = input('请设置密码:') money = input('请输入您要存入的金额:') address = input('请输入您的居住地址:') print(f'为您办理的卡号是:{i},%%%%%%%%%请您记牢%%%%%%%%%%') user_list[0] = name user_list[1] = password user_list[2] = money user_list[3] = address user_list[4] = "中国农业银行账户管理系统" user_dict[i] = user_list print(f'银行卡开户成功,卡号:{i},客户信息:{user_dict[i]}') use() # 存钱 def save_money(): global i global user_dict global user_list i = int(input('请输入您要存款的银行卡号:')) decide() save = int(input('请输入您的存款金额:')) user_dict[i][2] = save + int(user_dict[i][2]) print(f'您当前的余额为:{user_dict[i][2]}') use() # 取钱 def cost_money(): global i global user_dict global user_list i = int(input('请输入您要取款的银行卡号:')) decide() cost = int(input('请输入您的取款金额:')) user_dict[i][2] = int(user_dict[i][2]) - cost print(f'您当前的余额为:{user_dict[i][2]}') use() # 转账 def enchange(): global i global user_dict global user_list i = int(input('请输入您要转款的银行卡号:')) decide() cost = int(input('请输入您的转款金额:')) user_dict[i][2] = int(user_dict[i][2]) - cost print(f'您当前的余额为:{user_dict[i][2]}') i = int(input('请输入您要转款的银行卡号:')) decide() user_dict[i][2] = cost + int(user_dict[i][2]) print(f'您当前的余额为:{user_dict[i][2]}') use() # 查询 def search(): global i global user_dict global user_list i = int(input('请输入您要查询的银行卡号:')) decide() print(f'当前账号:{i},密码:{user_dict[i][1]},余额:{user_dict[i][2]}元,用户居住地址:{user_dict[i][3]},当前账户的开户行:中国XX银行XX支行') use() def use(): print('****************************************************') print('* 中国农业银行账户管理系统 *') print('****************************************************') print(' ') print('*1.开户 *') print('*2.存钱 *') print('*3.取款 *') print('*4.转账 *') print('*5.查询 *') print('*6.Bye *') print('****************************************************') use = int(input('请输入您要办理的业务:')) if use == 1: user() elif use == 2: save_money() elif use == 3: cost_money() elif use == 4: enchange() elif use == 5: search() elif use == 6: exit() use()