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)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#include<iostream> #include<string> using namespace std; class Consumer { private: long Accnumber; string conname; double Balance; long password; public: Consumer(); void login(); int Query(); int transfer(); int withdraw(); int update();//修改密码 void choose(); }; Consumer::Consumer() { Accnumber=1030070128; conname="林杰东"; Balance=10000.00; password=123456; } void Consumer::login() { long password0; int i=0; cout<<"**********欢迎登入林杰东银行**********"<<endl; cout<<endl; cout<<endl; cout<<endl; cout<<"请输入您的6位密码(错误输入不得超过3次):"; cout<<endl; cout<<endl; cout<<endl; cout<<endl; cout<<"**********欢迎登入林杰东银行**********"<<endl; while(i<3) { cout<<"密码:"; cin>>password0; i++; if(password0!=password) { cout<<"对不起,您的输入有误,请重新输入!!!"<<endl; if(i==3) { cout<<"您的错误输入已满3次,请取出您的银行卡,以免被吞卡!!!"<<endl; login(); break; } } else { cout<<"登入成功!!!"<<endl; break;} } } int Consumer::Query() { cout<<"您的用户名:"; cout<<conname<<endl; cout<<"您的账号:"; cout<<Accnumber<<endl; cout<<"您的当前余额:"; cout<<Balance<<endl; cout<<"密码:"; cout<<password<<endl; return 1; } int Consumer::transfer() { long Accnumber1,Accnumber2; double money; cout<<"请输入您要转入的账号:"; cin>>Accnumber1; if(Accnumber1==Accnumber) { cout<<"对不起,您要转入的账号是当前银行卡的账号,无法转账!!!请重新输入其他账号!!!"<<endl; return transfer(); } else { cout<<"请重新输入您要转入的账号:"; cin>>Accnumber2; if(Accnumber1==Accnumber2 ) { cout<<"请输入您要转账的金额:"; cin>>money; cout<<endl; if(Balance>=money) { Balance=Balance-money; cout<<"转账成功!!!"<<endl; cout<<"您的当前余额:"; return Balance; } else { cout<<"对不起,您当前余额不足,请重新转账!!!"<<endl; return transfer(); } } else { cout<<"您两次输入的账号有误,请重新输入!!!"<<endl; return transfer(); } } } int Consumer::update() { long password1; long password2; long password3; cout<<"请输入您的6位原密码:"; cin>>password1; if(password1!=password) { cout<<"对不起,您的输入有误,请重新输入!!!"<<endl; return update(); } else { cout<<"请输入您的6位新密码:"; cin>>password2; cout<<"请重新输入您的6位新密码:"; cin>>password3; if(password2==password3) { password=password3; cout<<"恭喜您,您的密码修改成功!!!"<<endl; cout<<"您的新密码:"; return password; } else { cout<<"对不起,您的两次输入有误,请重新输入!!!"<<endl; return update(); } } } int Consumer::withdraw() { double number; cout<<"输入要取的钱数:"; cin>>number; if(Balance<number) { cout<<"你的账号余额不足 "<<number<<"."<<endl; cout<<"取款失败!"<<endl; return withdraw(); } else { cout<<"取款成功!!!"<<endl; Balance=Balance-number; cout<<"您的当前账号余额为:"; return Balance; } } void Consumer::choose() { cout<<"1.查 询"<<endl; cout<<"2.转 账"<<endl; cout<<"3.修改密码"<<endl; cout<<"4.取 款"<<endl; cout<<"0.退出系统"<<endl; } class ATM { public: Consumer c; int menu(); }; int ATM::menu() { c.login(); int choice=0; while(choice!=5) { cout<<"**********欢迎登入林杰东银行**********"<<endl; c.choose(); cout<<"**********欢迎登入林杰东银行**********"<<endl; cout<<"请输入您的选择:"; cin>>choice; switch(choice) { case 1: cout<<c.Query()<<endl; break; case 2: cout<<c.transfer()<<endl; break; case 3: cout<<c.update()<<endl; break; case 4: cout<<c.withdraw()<<endl; break; case 0: cout<<"请取出您的银行卡,欢迎下次使用!!!"<<endl; return 0; break; default: cout <<"输入错误!请重新输入!\n\n"; break; } } } int main() { ATM atm; atm.menu(); return 0; }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值