欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python教你模拟实现ATM银行自动存取款机

程序员文章站 2022-04-21 14:59:25
...

示例:
python教你模拟实现ATM银行自动存取款机

'''
    By challen
    自动存取款机管理系统
    登陆login user
    1.查询余额
    2.存款操作
    4.取款操作
    5.退出用户
'''
#三个用户的账号信息作为数据源,用户信息包含:密码,姓名,余额,用户等级
bank_database= [
    {'id':'1001','user_password':'200101','name': 'zhanggoudan', 'bank_balance': 1002, 'user_grade': 'VIP用户'},
    {'id':'1002','user_password':'200202','name': 'liyu', 'bank_balance': 3058, 'user_grade': '白金用户'},
    {'id':'1003','user_password':'200303','name': 'goerzi', 'bank_balance': 2994, 'user_grade': '黄金用户'}
]

#1.登陆检查功能,定义验证id账号密码匹配函数
def login_user_check():
    '''
    验证登录密码匹配的函数
    '''
    global bank_database
    user_id=input('请输入您的卡片账号')
    user_password=input('请输入您的6位密码:')
    for NewUser in range (len (bank_database)):
        #遍历判断密码是否与表内一个用户密码进行匹配
        if user_id== bank_database[NewUser]['id'] and user_password == bank_database[NewUser]['user_password']:
            print('尊贵的{} {},您已登录成功!请进行下列操作'.format(bank_database[NewUser]['user_grade'],bank_database[NewUser]['name']))
            print ('——' * 33)
            return NewUser
        else:
            #错误重新输入
            print('输入的账号密码有误,请重新输入')
            break


#2.查询余额功能
def check_balance():
    """
    查询余额功能
    """
    global bank_database
    print('您的账户余额还有{}元'.format(bank_database[NewUser]['bank_balance']))


#3.存款功能
def add_balance():
    '''
    存款功能
    '''
    global bank_database
    add_money=int(input('请输入存款金额:'))
    #对用户的余额进行添加
    bank_database[NewUser]['bank_balance']+=add_money
    print('尊贵的用户,您的专属账户已成功存入{},目前余额为{}'.format(add_money,bank_database[NewUser]['bank_balance']))


#4.取款功能
def draw_balance():
    """
    取款功能
    """
    global bank_database
    draw_money= int (input ('请输入取款金额:'))
    #判断余额与金额的大小,判定是否可以取出
    if bank_database[NewUser]['bank_balance']>=draw_money:
        bank_database[NewUser]['bank_balance']-=draw_money
        print ('您已成功取款{},目前余额剩余{}'.format (draw_money, bank_database[NewUser]['bank_balance']))
    if bank_database[NewUser]['bank_balance'] < draw_money:
        print('您的余额不足!')

#5.退出系统
def loginOut():
    user_choose=input('请问是否登出,是请按1,否请按2,请输入:')
    while user_choose=='1':
        print('已成功登出,请取回你的卡片')
        break
    else:
        print('请继续操作系统')


#定义一个欢迎界面函数
def welcome_user():
    print ("===================================================================")
    print ("                       欢迎登陆深圳中通银行                          ")
    print ("===================================================================")

#定义一个用户界面函数
def user_interface():
    '''
    用户界面的函数
    '''
    print ("{0:1}{1:<30}{2:>30}{0:1}".format ("|", "1.查询账户", "2.存款"))
    print('\n')
    print ("{0:1}{1:<30}{2:>30}{0:1}".format ("|", "3.取款", "4.退出账户"))
    print ("=" * 67)

#用户交互界面
while True:
    #欢迎界面
    welcome_user()
    #用户登陆界面并全局引入NewUser
    NewUser=login_user_check()
    #检查是否账号密码无误,再进行登陆后续操作
    if NewUser is None:
        continue
    while True:
        user_interface()
        user_key=input('请输入业务操作')
        if user_key=='1':
            check_balance()
        elif user_key=='2':
            add_balance()
        elif user_key=='3':
            draw_balance()
        elif user_key=='4':
            loginOut()
            break