Python模拟自动存取款机的查询,存取款,修改密码等操作

  

1。工作流程

  

 Python模拟自动存取款机的查询,存取款,修改密码等操作

  

2。模拟自动存取款机的操作

  

代码如下:

        进口msvcrt、系统、操作系统   #定义用星号隐藏密码输入的函数   def psw_input ():   李=[]   而真正的:   ch=msvcrt.getch ()   #回车   如果ch==b“\ r”:   msvcrt.putch (b ' \ n ')   打破   #退格   elif ch==b“\ (”:   如果李:   li.pop ()   msvcrt.putch (b \ b)   msvcrt。显示字符(b ' ')   msvcrt.putch (b \ b)   # Esc   elif ch==b“\ x1b”:   打破   其他:   li.append (ch)   msvcrt.putch (b‘*’)   返回李   #定义CSDN银行ATM欢迎界面的函数   def ATM ():   '''   CSDN银行ATM欢迎界面的函数   '''   打印("=" * 14日“CSDN银行”,“=" * 14日“\ n”)   打印(“{:^ 42}”.format (ATM)、“\ n”)   打印("=" * 14日“CSDN银行”,“=" * 14日“\ n”)   # CSDN银行用户列表信息,用户信息包含:姓,名余额,密码(6位),银行卡号(19位)   user_list=[{" name ": "张三”,“平衡”:10000年,“密码”:“000000”,“数量”:“0000000000000000000”},   {" name ": "李四”、“平衡”:20000年,“密码”:“111111”,“数量”:“1111111111111111111”},   {" name ": "王五”、“平衡”:30000年,“密码”:“222222”,“数量”:“2222222222222222222”}]   #定义验证银行卡号与密码匹配的函数   def检查(user_name user_password):   '''   验证银行卡号与密码匹配的函数   '''   因为我在范围(len (user_list)):   如果user_name==user_list[我][“数字”)和user_password==user_list[我](“密码”):   返回我#银行卡号与密码匹配则返回该用户在ATM系统内的ID值,否则返回没有值   #定义用户登录成功后操作界面的函数   def接口():   '''   用户登录成功后操作界面的函数   '''   打印("=" * 14,“用户操作界面”,“=" * 14日“\ n”)   打印(“{0:2}{1:12}{12}{12}”。格式(“”、“1。查询”、“2。取款”、“3。存款”),“\ n”)   打印(“{0:2}{1:10}{12}”。格式(4”“。”修改密码”、“5。退出”),“\ n”)   打印("=" * 42岁,“\ n”)   #定义用户查询信息的函数   def查询(user_id):   '''   用户查询信息的函数   '''   打印("=" * 14日“账号查询界面”,“=" * 14日“\ n”)   打印(“| {0:& lt; 4} | {1: & lt; 18} | {2: & lt; 9} | \ n”.format(“账户名”,“卡”号,“余额(元)”))   打印(“| {0:& lt; 5} | {1: & lt; 20} | {2: & lt; 11} | \ n”.format (user_list [user_id](“名字”),user_list [user_id](“数字”),user_list [user_id](“平衡”)))   #定义用户取款的函数   def撤军(数量):   '''   用户取款的函数   '''   我=user_list user_id(“平衡”)int(数量)   如果i>=0:   user_list [user_id][“平衡”)-=int(数量)   其他:   打印(“账户余额不足\ n”)   #定义用户存款的函数   def存款(数量):   '''   用户存款的函数   '''   user_list [user_id][“平衡”)+=int(数量)   #定义用户修改密码的函数   def change_password (old_password new_password1 new_password2):   '''   用户修改密码的函数   '''   如果old_password==user_list [user_id](“密码”):   如果new_password1==new_password2:   user_list [user_id]["密码"]=new_password1   打印(“新密码修改成功\ n”)   返回1   其他:   打印(“修改密码失败,您2次输入的新密码不一致\ n”)   返回2   其他:   打印(“旧密码输入错误\ n”)   返回0   #用户登录界面,输入银行卡号和密码   3次机会=3 #允许用户名或密码输入错误   而真正的:   ATM ()   user_name=输入(“请输入您的银行卡卡号:”)   打印(" ")   打印(“请输入您的银行卡密码:”,结束=' ',冲洗=True)   . join (psw_input user_password=b ()) .decode ()   打印(" ")   user_id=检查(user_name user_password) #验证银行卡号与密码是否匹配   如果user_id !=没有:   打印(“登录成功\ n”)   而真正的:   界面()   key_word=输入(“请输入操作选项:”)   打印(" ")   如果key_word==?”:   查询(user_id)   输入(“按任意键返回上一级目录:”)   打印(" ")   elif key_word==?”:   打印("=" * 14日“账号取款界面”,“=" * 14日“\ n”)   数量=输入(“请输入取款金额:“)   打印(" ")   退出(数量)   查询(user_id)   输入(“按任意键返回上一级目录:”)   打印(" ")   elif key_word==?”:   打印("=" * 14日“账号存款界面”,“=" * 14日“\ n”)   数量=输入(“请输入存款金额:“)   打印(" ")   存款(数量)   查询(user_id)   输入(“按任意键返回上一级目录:”)   打印(" ")   elif key_word==?”:   打印("=" * 14,”密码管理界面”,“=" * 14日“\ n”)   打印(“请输入旧密码:”,结束=' ',冲洗=True)   . join (psw_input old_password=b ()) .decode ()   打印(" ")   打印(“请输入新密码:”,结束=' ',冲洗=True)   . join (psw_input new_password1=b ()) .decode ()   打印(" ")   打印(“请再次输入新密码:”,结束=' ',冲洗=True)   . join (psw_input new_password2=b ()) .decode ()   打印(" ")   保存=change_password (old_password new_password1 new_password2)   #如何检测到旧密码输入有误,将直接退出   如果保存==0:   打破   elif key_word==?”:   打印("=" * 14,”欢迎下次光临”,“=" * 14日“\ n”)   打破   其他:   打印("=" * 14,“没有该选项”,“=" * 14日“\ n”)   其他:   如果机会比;1:   打印(“用户名或密码错误,您还有”,chance-1,“次机会,请重新输入\ n”)   机会-=1   其他:   打印(“对不起,您输入用户名或密码错误已达3次”)   打破

Python模拟自动存取款机的查询,存取款,修改密码等操作