面向物件與銀行管理系統2 ATM類 功能到取錢
阿新 • • 發佈:2018-12-12
''' 屬性: 行為: 頁面 1開戶 2查詢 3取款 4存錢 5轉賬 6改密 7鎖卡 8解鎖 9銷戶 0退出 ''' #歡迎頁面 from card import Card from user import User import random class ATM: def __init__(self): self.user_dict = {} def welcome(self): print('-'*30) print(' 歡迎使用呵呵噠銀行') print('-'*30) # 獲取使用者的操作 def yemian(self=None): print(' *' + '*' * 29) print('* 1開戶', '2查詢', '3取款', '4存錢', '5轉賬 *') print('* 6改密', '7鎖卡', '8解鎖', '9銷戶', '0退出 *') print(' *' + '*' * 29) def new_user(self): #開戶 1 name=input('請輸入使用者名稱:') id_card=int(input('請輸入身份證號:')) phone=int(input('請輸入手機號:')) passwd=int(input('請輸入密碼:')) passwd1=int(input('請再次輸入密碼:')) if passwd!=passwd1: print('兩次密碼不一致!開戶失敗') return else: print('請輸入存款金額嗎,不低於10.00') money=float(input('')) if money<10: print('錢太少了,出門右拐!!!') else: card_num=random.randrange(100000,999999) card=Card(card_num,passwd,money) user=User(name,id_card,phone,card) print('開卡成功,卡號:',card_num) self.user_dict.update({card_num:user}) def query_menoy(self): #查詢2 ''' 卡號是否存在 卡號是否鎖住 密碼是否正確(3次機會) 輸入密碼是否一致 列印資訊 :return: ''' card_num=int(input('請輸入卡號:')) user=self.user_dict.get(card_num) if user==None: print('卡號不存在!') return if user.card.is_lock==True: print('此卡已被鎖定,請重新解鎖!') return for i in range(3): passwd=int(input('請輸入密碼:')) if passwd!=user.card.passwd: print('密碼錯誤') else: break else: print('機會以用完!此卡被鎖定') user.card.is_lock=True return print('使用者名稱為:{} 卡號為:{} 餘額:{}'.format(user.name,user.card.cid,user.card.money)) def get_menoy(self): #取錢3 card_num = int(input('請輸入卡號:')) user = self.user_dict.get(card_num) if user == None: print('卡號不存在!') return if user.card.is_lock == True: print('此卡已被鎖定,請重新解鎖!') return for i in range(3): passwd = int(input('請輸入密碼:')) if passwd != user.card.passwd: print('密碼錯誤') else: money=int(input('請輸入取款金額:')) if money>user.card.money: print('餘額不足,窮逼取款失敗!') continue else: user.card.money-=money print('取款成功!當前餘額:',user.card.money) return else: print('機會以用完!此卡被鎖定') user.card.is_lock = True return
跟錢相關的 都需要認證卡號跟密碼 不一致都要鎖定