# ATM后台数据库 id cipher name money 
ATMDataBase = [
    {'id':'001','cipher':'123456','name':'张三','money':1000},
    {'id':'002','cipher':'123456','name':'李四','money':0},
    {'id':'003','cipher':'123456','name':'王五','money':999999}]

ATMUser = "" #操作用户

def ATM_Init():
    """
    ATM初始化,显示操作指令
    """
    print("-"*40)
    print("{0:1}{1:>20}{0:>19}".format("|","ATM"))
    print("{0:1}{1:<16}{2:>16}{0:1}".format("|","1、登陆","2、退出"))
    print("{0:1}{1:<16}{2:>16}{0:1}".format("|","3、存钱","4、取钱"))
    print("{0:1}{1:<33}{0:1}".format("|","5、查询余额"))
    print("-"*40)

def ATM_Login():
    """
    ATM登陆
    """
    #global ATMDataBase
    global ATMUser
    account = input("请您的输入账号:")
    cipher = input("请您的输入密码:")
    for v in range(len(ATMDataBase)):
        if ATMDataBase[v]["id"] == account and ATMDataBase[v]['cipher'] == cipher: #判断账号密码是否正确
            ATMUser = account # 记录操作用户id
            print("登陆成功,请继续操作!")
            break
        else:
            if input("输入的账号密码有误,是否重新输入 yes/no?  ") == "yes":
                ATM_Login() # 重新输入
                break

def ATM_SaveMoney():
    """
    ATM存钱
    """
    try:
        sunMoney = int(input("请输入存款金额:"))
    except:
        print("请不要放入假钞!")
        ATM_SaveMoney()
        return

for v in range(len(ATMDataBase)):
        if ATMUser == ATMDataBase[v]['id']: #调取数据库用户信息进行改写
            ATMDataBase[v]['money']+=sunMoney
            print("您成功存款{}元".format(sunMoney))
            break

def ATM_DrawMoney():
    """
    ATM取钱
    """
    try:
        sunMoney = int(input("请输入存款金额:"))
    except:
        ATM_DrawMoney()
        return

for v in range(len(ATMDataBase)):
        if ATMUser == ATMDataBase[v]['id']: #调取数据库用户信息进行改写
            if ATMDataBase[v]['money'] >=sunMoney:
                ATMDataBase[v]['money']-=sunMoney
                print("您成功取款{}元".format(sunMoney))
                break
            else:
                print("您的账户余额不足!")
                break

def ATM_BalanceInquiry():
    """
    ATM查询余额
    """
    for v in range(len(ATMDataBase)):
        if ATMUser == ATMDataBase[v]['id']: #调取数据库用户信息输出
            print("您的账户余额还有{}元".format(ATMDataBase[v]['money']))
            break

def isLogin():
    """
    是否已经登陆
    """
    if ATMUser == "":
        print("请先进行登陆!")
    return not ATMUser == ""

def ATM_Handle():
    """
    获取ATM操作,执行相关指令
    """
    key = input("请输入对应编号进行操作:")
    if key == "1":
        ATM_Login()
    elif key == "2":
        return
    elif key == "3":
        if isLogin():
            ATM_SaveMoney()
    elif key == "4":
        if isLogin():
            ATM_DrawMoney()
    elif key == "5":
        if isLogin():
            ATM_BalanceInquiry()
    else:
        print("无效操作,请重新输入")

ATM_Handle() #重复获取用户操作 直到用户执行退出操作

ATM_Init()
ATM_Handle()

Python简单实现ATM自动存取款机相关推荐

  1. Python练习 简单自动存取款机

    Python练习 简单自动存取款机 代码和注释如下: # @File : 新自动取款机.py # @Author : zh # @Date : 2020/2/5 # @Software: PyChar ...

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

    示例: '''By challen自动存取款机管理系统登陆login user1.查询余额2.存款操作4.取款操作5.退出用户 ''' #三个用户的账号信息作为数据源,用户信息包含:密码,姓名,余额, ...

  3. pythonATM自动存取款机7天密码保护

    kh={1234567890:['123abc___@@@',90000,'aq'],1234567891:['223abc___@@@',60000,'aq'],1234567892:['323ab ...

  4. 【C++实验】模拟实现一个ATM自助存取款机

    一.实验平台 Visual C++ 6.0 二.问题分析 2.1 需求分析 本次实验有如下四条需求: (1)要求程序界面友好且能对操作是否成功进行判断: (2)要求输入密码时以星号(***)显示: ( ...

  5. 用python做一个银行取款系统_我的第一个Python小程序,大老虎银行存取款机程序!支持转账...

    [Python] 纯文本查看 复制代码import time banksql = [ {"card_id": "6228881234567000", " ...

  6. Eclipse+Java+Swing+Mysql实现自助存取款机(ATM)系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库 5.工程截图 二.系统展示 1.注册页面 2.登录页面 3.主页面 4.取款 5.存款 6.转账 7.余额查询 三.部分代码 ...

  7. python银行ATM自动取款机

    python银行ATM自动取款机 银行自动取款机 main.py(主程序) admin.py atm.py user.py card.py 总结 银行自动取款机 main.py(主程序) main.p ...

  8. 写一个简单的自动取款机c语言程序,C语言编程模仿银行ATM自动取款机功能

    编程模仿银行ATM自动取款机功能,要求能实现以下功能: 1. 输入储户基本信息(既开户功能,开户成功需要打印储户基本信息): 2. 开户成功后打印欢迎界面,比如"开户成功,欢迎使用**银行自 ...

  9. 课程设计:基于SQL Server的银行ATM 存取款机系统设计与实现

    目录 前言 一.项目背景 1.项目任务 2.项目技能目标 3.需求概述 4.开发环境 5 .问题分析 (1) 银行存取款业务介绍 (2) 客户信息 (3) 银行卡账户信息 (4) 银行卡交易信息 (5 ...

最新文章

  1. 移通好闹钟微信小程序全套源码
  2. 广西工学院2000级计算机系,广西工学院管理系信管教研室李明 - 欢迎访问广西科技大学.ppt...
  3. centos安装软件后没有快捷键,创建桌面快捷键的方式【pycharm的快捷键】
  4. uva10340 Ail in All
  5. 如何把视频和音频合并?手把手教你合并
  6. 关于我 — About Me
  7. 2011微软校园招聘职位一览表
  8. 【深入理解C++】头文件防卫式声明
  9. 和平精英有了氪金系统,玩家再也不敢开挂了?网友:你到亚服看看
  10. 关于正则表达式中的 lookahead
  11. LaTeX字体设置(二)
  12. 标准正态分布变量的累积概率分布函数
  13. HyperMesh 2D网格划分
  14. (精品原创)Java代码优化-代码复用与重构
  15. 西门子Smart 485数据通讯读取和写入程序,modbustcp,modbus主站从站通讯
  16. STM32使用OLED显示一个简单的计数器
  17. 杰奇百度推送php文件,杰奇版百度自动化推送插件
  18. 浅谈企业的数字化转型
  19. moon服务器 zerotier_配置ZeroTier的moon服务器记录
  20. 构建开放的软件团队文化

热门文章

  1. springmvc深入浅出(备java基础,javaee课程,struts同类)-任亮-专题视频课程
  2. Jenkins+Gradle+Python进行Android自动化打包
  3. 电话手表声学性能测试
  4. 数据采集简繁体快速转换
  5. HTML5进制转换,进制转换
  6. WinCE驱动程序的分类
  7. vue+echarts 区域地图绘制(街道)
  8. ubuntu php libzip安装 ./configure报错 checking for libzip... not found configure
  9. 用M8制作电感、电容、电解电容测量仪表
  10. comsol随机几何的构建 CAD模型导入法