1. 程式人生 > >面向物件與銀行管理系統2 ATM類 功能到取錢

面向物件與銀行管理系統2 ATM類 功能到取錢

'''
屬性:
行為: 頁面 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

跟錢相關的  都需要認證卡號跟密碼   不一致都要鎖定