ATM系统代码编写(4)

ATM系统编写
一、要求

1、编写一个简单的ATM注册和登录功能:
a)利用两个列表,一个存放用户名,一个存放密码,下标位置一一对应好。注册时,判断用户名是否已经存在,密码长度要大于等于6位,如果输入错误要有相应提示,并退出系统。
b)如果用户注册成功,则提示用户进行登录。要求用户输入用户名和密码,只有当前用户名和密码均正确才能提示用户登录成功,否则提示用户名或密码错误,并退出系统。
2、在上题的基础上加入错误重试功能,不管是注册阶段还是登录阶段,一旦用户输入错误,都提示用户重新输入,直到正确为止。
3、在前面的蜗牛ATM项目的基础上进一步进行改进,要求使用一个二维列表来保存用户名和密码,二维列表如:
users = [[‘zhangsan’,’123456’],[‘lisi’,’admin123’],[‘admin’,’adminadmin’]
并且添加如下操作主菜单:
========欢迎来到ATM系统**********
========请选择操作菜单*************
=======1.注册 2.登录 3.退卡*********
用户选择相应的操作,每次操作完后继续进入主菜单,用户输入3之后可以结束并退出应用。
4、在3题的基础上改进,要求使用一个列表加字典的形式来保存用户的信息,并增加一个余额信息项。
用户信息的存储格式如下:
user_list =[{‘user’:’’,’password’:’’,’balance’:0},{},{},…]
添加如下主菜单:
=========欢迎来到ATM系统**********
=========请选择操作菜单*************
======1.注册 2.登录 3.余额 4.退卡*****
用户选择相应的操作,每次操作完后继续进入主菜单,用户输入4之后可以结束并退出应用。用户注册成功后奖励3000元账户余额。
5、继续改进ATM功能,功能要求如下
================欢迎来到ATM系统******************
==================请选择操作菜单*****************
==1.注册 2.登录 3.查询余额 4.存款 5.取款 6.转账 7.退卡***
实现增加菜单的功能。

二、代码

import sys

user_list =[{'user':'','password':'','balance':0},]

def register():
    print('欢迎注册')
    print('请输入用户名:')
    user=input()
    for name in user_list:
        if name['user'] == user:
            print('该用户名已注册,请重新输入!')
            user=input()
    
    while 1:
        print('请输入密码(密码长度要大于等于6位):')
        password=input()
        if len(password) < 6:
            print('密码长度不符合要求,请重新输入:')
        else:
            balance=0
            print('注册成功!')
            print('奖励3000元!')
            balance += 3000
            account={'user':user,'password':password,'balance':balance}
            user_list.append(account)
            menu()
            
def login():
    flag=1
    while flag:
        print('请输入用户名:')
        user=input()
        print('请输入密码:')
        password=input()

        for account in user_list:
            if account['user']==user:
                if account['password']==password:
                    print('用户名和密码正确,登录成功!')
                    flag = 0
                    break
        else:
            print('用户名或密码错误,请重新输入...')
        
    zhuJiemian()

def balance():
    while 1:
        print('请输入用户名:')
        user=input()
        for account in user_list:
            if user==account['user']:
                print('账户余额:',account['balance'])
                zhuJiemian()
        else:
            print('用户名输入错误,请重试')


def deposit():
    while 1:
        print('请输入用户名:')
        user=input()
        for account in user_list:
            if user==account['user']:
                print('账户余额:',account['balance'])
                print('请输入存款金额:')
                money=int(input())
                account['balance'] += money
                print('当前账户余额:',account['balance'])
                zhuJiemian()
        else:
            print('用户名输入错误,请重试')
    
def withdrawMoney():
    while 1:
        print('请输入用户名:')
        user=input()
        for account in user_list:
            if user==account['user']:
                print('账户余额:',account['balance'])
                print('请输入取款金额:')
                money=int(input())
                if money < account['balance']:
                    account['balance'] -= money
                    print('当前账户余额:',account['balance'])
                    zhuJiemian()
                else:
                    print('账户余额不足,请重试!')
                    print('请输入取款金额:')
                    money=int(input())
        else:
            print('用户名输入错误,请重试')

def transfer():
    while 1:
        print('请输入用户名:')
        user=input()
        for account in user_list:
            if user==account['user']:
                print('当前账户余额',account['balance'])
                while 1:
                    print('请输入被转账用户的用户名:')
                    user2 =input()
                    if user2 ==user:
                        print('不能给自己转账!')
                    else:
                        for account2 in user_list:
                            if user2 in account2.values(): 
                                while 1:
                                    print('请输入转账金额:')
                                    money=int(input())
                                    if money < account['balance']:
                                        account['balance'] -= money
                                        account2['balance'] += money
                                        print('当前账户余额:',account['balance'])
                                        
                                        zhuJiemian()
                                    else:
                                        print('账户余额不足,请重试!') 
                        else:
                            print('该用户不存在,请重试')
        else:
            print('用户名输入错误,请重试')

def exit():
    print('正在退出ATM系统...')
    sys.exit()

def menu():
    while 1:
        print('***********欢迎来到ATM系统***********')
        print('************请选择操作菜单***********')
        print('*********1.注册 2.登录 3.退卡********')
        function = input()
        if function == '1':
            register()
        elif function == '2':
            login()
        elif function =='3':
            exit()
        else:
            print('输入错误,请重新输入!')

def zhuJiemian():
    while 1:
        print('***********欢迎来到ATM系统***********')
        print('************请选择操作菜单***********')
        print('**1.余额 2.存款 3.取款 4.转账 5.退卡 **')
        function = input()
        if function == '1':
            balance()
        elif function == '2':
            deposit()
        elif function == '3':
            withdrawMoney()
        elif function == '4':
            transfer()
        elif function == '5':
            exit()
        else:
            print('输入错误,请重新输入!')

menu()

ATM代码编写(1)

ATM代码编写(2)

ATM代码编写(3)

ATM代码编写(4)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值