中国农业银行账户管理系统

  1. 编程实现:仔细业务之间的包含关系,并完成以下编程需求,要适当提高代码的可复用性。
    1. 用户账号(str:系统随机产生8位数字)、账户类型(int)、姓名(str)、密码(int:6位数字)、地址、存款余额(int)、开户行(银行的名称(str))
    2. 地址:国家(str)、省份(str)、街道(str)、门牌号(str)
    3. 银行:能存储100用户的库(字典)、本银行名称(比如:中国农业银行的昌平沙河支行,str
      1. 银行业务功能
        1. 开户(传入参数:用户的所有信息。返回值:整型值(1:成功,2:用户已存在,3:用户库已满))
          1. 业务逻辑:
  1. 先检查该用户的账号在库里是否存在。若不存在则在用户库里添加一个该用户并返回代号1
  2. 若存在则返回代号2。另外在添加用户的时候检测用户库是否已注册满,若已满则返回代号3
        1. 存钱(传入值:用户的账号、存取的金额。返回值:布尔类型值)
          1. 业务逻辑:
  1. 先根据传入的账号信息查询用户库里是否有该用户。若没有则返回False
  2. 若有,则将该用户的金额存进去。
        1. 取钱(传入值:用户的账号,用户密码,取钱金额。返回值:整型值(0:正常,1:账号不存在,2:密码不对,3:钱不够))
          1. 业务逻辑:
  1. 先根据账号信息来查询该用户是否存在,若不存在,则返回代号1,
  2. 若存在,则继续判断密码是否正确,若不正确,则返回代号2。
  3. 若账号密码都正确,则继续判断当前用户的金额是否满足要取出的钱,若不满足,则返回代号3,
  4. 若满足,则将该用户的金额减去。
        1. 转账(传入值:转出的账号,转入的账号,转出账号的密码,转出的金额。返回值:0:正常,1:账号不对,2密码不对,3钱不够)
          1. 业务逻辑:
  1. 先查询用户库是否存在转出和转入的账号,若不存在则返回代号,1,
  2. 若账号都存在则继续判断转出账号的密码是否正确,若不正确,则返回2,
  3. 若正确则继续判断要转出的金额是否足够,若不够则返回3,
  4. 否则正常转出,转出的账号用户金额要相对应的减少,转入的金额相对应的增加。
        1. 查询账户功能(传入值:账号,账号密码,返回值:空)
          1. 业务逻辑:
  1. 先根据账号判断用户库是否存在该用户,若不存在则打印提示信息:该用户不存在。
  2. 否则继续判断密码是否正确。若不正确则打印相对应的错误信息。
  3. 若账号和密码都正确,则将该用户的信息都打印出来,比如:当前账号:xxxx,密码:xxxxxx,余额:xxxx元,用户居住地址:xxxxxxxxxxxxx,当前账户的开户行:xxxxxxxxxx.
    1. ATM界面类:在执行该入口程序时,就打印银行业务选择菜单
    2. 然后就开始处理各种输入操作,直到业务处理完成!
      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()
      

  • 15
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值