Python银行ATM模拟

目录

ATM模拟项目简介

ATM模拟实现

存款方法的实现

  取款方法实现

 主界面

效果展示


ATM模拟项目简介

 

*对于银行ATM的模拟大致分为以下几个方面:

 *对于开户要考虑到手续费的扣除这就要求用户在开户的时候存款金额不得小于10元当初始化金额小于10元要给出用户提示信息并且让用户重新输入

  *首先要考虑到现实银行ATM对于用户的存取款要进行一系列的处理,首先需要设置银行密码验证,如果验证成功则继续进行下面的一系列操作,例如:存款,取款

 *如果验证失败我们要相应的给客户一定的提示,提示客户登录失败的原因(如:账户不存在,密码输入错误)

 *对于用户的存款规程我们只需要考虑到用户密码输入的正确和错误,但是对于取款我们一方面要考虑用户密码的正确与否另一方面要考虑用户账户里余额和取款金额的比较,如果取款金额异常要给出相应的提示信息

 *用户完成操作后要给与一定的欢迎语(请戴好你的随身物品,欢迎下次光临)

ATM模拟实现

class PasswordException(Exception):#自定义密码异常

    def __init__(self):
        print("密码账户错误请重试")
class JineException(Exception):#自定义取款金额异常
     def __init__(self):
         print("余额不足,请重新输入取款金额") 
class Bank:#定义一个Bank类
    flag=False#定义一个标志器用于判断用户是否开过户
    password=" "#成员变量的定义
    account=" "
    money=0
    def __init__(self):#实现类的无参构造方法
      pass
    def __init__(self,a,b,c):#实现类带参数的方法
        self.password=a
        self.account=b
        self.money=c
        self.flag=True
        print("开户成功当前余额为%d元"% self.money)

存款方法的实现


    def cunkuan(self):
      if self.flag==True:
       while True: 
        try:  #抛出异常一般和except 结合使用
          print("请输入账户和密码:")
          b=input("请输入你的账户:")
          c=input("请输入你的密码:")
          if  b==self.account:
              if c==self.password:
                 d=int(input("请输入存款金额:"))
                 self.money+=d
                 print("你已存入%d元当前余额为%d元"%(d,self.money))
                 break
          else:
              raise  PasswordException#用raise关键字触发异场
        except  PasswordException as e:#抛出异常对象e
              print(e)
       else:
           print("请先进行开户")

  取款方法实现


    def qukuan(self):
       if self.flag==True:
         while True:
          try:
             print("请输入账户和密码:")
             b=input("请输入你的账户:")
             c=input("请输入你的密码:")
             if b==self.account:
                   if c==self.password:
                     while True:
                       try:
                         print("请输入取款金额:")
                         e=int(input())#取款金额的输入
                         if e>self.money:#取款金额与账户余额的比较
                           raise JineException
                         else:
                           self.money-=e
                           print("你已取出%d元当前余额为%d元"%(e,self.money))
                           break
                       except JineException as l:
                            print(l)#输出取款金额异常的原因
                     break #结束循环
             else:
                 raise PasswordException
          except PasswordException as e:
                            print(e)
         else:
            print("请先进行开户")

 主界面


print("-------------------欢迎来到中国招商银行------------------")
print("***如果你未开户请先进行开户操作***")
while True:
 try:
      print("1,开户\t2,存款\n3,取款\t4,退出")
      print("请输入你想要办理业务的编码:")
      m=int(input())
      if m in (1,2,3,4):#判断m是否在(1,2,3,4)序列中,通过不同的编号实现不同的功能
       if m==1:
          print("请输入你的开户账号:")
          user=input()
          print("请输入你的初始化密码:")
          w=input()
          print("请输入你的初始化金额:")
          while True:
              k=int(input())
              if k>10:
                k-=10
                b=Bank(w,user,k)
                break
              else:
                print("初始金额应大于10元请重新输入初始化金额:")
       if m==2:
            b.cunkuan()
       if m==3:
            b.qukuan()
       if m==4:
            break
      else:
         print("你输入的业务编码不存在请重新输入")
 except ValueError:

      print("输入编码有误")

效果展示

Python银行ATM模拟_第1张图片

 

Python银行ATM模拟_第2张图片

Python银行ATM模拟_第3张图片

Python银行ATM模拟_第4张图片

Python银行ATM模拟_第5张图片

    

你可能感兴趣的:(Python银行ATM模拟,编程)