银行ATM 的python实现

引言:     

        最近刚刚接触python,以前学过一些VB语言,上手可能比较快,对计算机有一定的基础,基础算法思路也是比较了解的,最近就ATM这个想法,通过网上的查阅资料,自己花了一天一夜的时间编写了这一段程序,来实现ATM计算机的各项操作,将其拆分成了如下的基本模块:

1.登陆系统

2.注册账户系统

3.存款取款操作

4.查询余额系统

5.退出系统

大致思路:

大概就是拆分成各个模块,然后各模块定义函数,最后汇总。

过程中遇到的问题:

1.刚开始完成的第一代程序是没有注册功能的,也没有存储用户各项信息的功能

解决办法:后来查阅大佬博客学会引入了json模块,新建一个json模块来保存储存用户数据,来实现下次进入程序也能够继承数据。

2.在测试中发现:注册时输入ID重复后那边总是有BUG报错,可能是逻辑不通顺的问题

解决办法:后来引入了几个变量并且衔接While 循环来实现ID重复后,系统给出提示:重新输入,返回之前的输入ID这样一个步骤(试错了很久。。。)

3.也是逻辑问题,一个小BUG,注册时的密码应该为6位数,忘记限制了,后来用True和False这两个变量的引入解决了这个BUG,不知道有没有更好的解决办法,望大佬指点。

数据库模块:

引入json函数模块

需要建立一个"save.json"的文件,在文件中写入[],来方便存储数据

import json

with open('save.json', 'r') as f:
    bankuser = json.load(f)

def save(person):
    # 保存json,读取格式要写成‘w’,可以对文件内容进行更改,
    # 这边将用户数据存储在save.json 这个文件中
    with open('save.json', 'w') as f:
        json.dump(person, f) # 写入这个人的数据,进行更新

注册模块:

# 创建用户
def create():
    newuser = {}
    newuser['user'] = input("提示:请输入您的姓名:")
    x=True   # 引入一个x的布尔变量来判断这个ID是否被注册过
    z=True   # 引入一个z的变量判断是否能够进行下一步
    while z is True:
        x=True
        for user in bankuser:
            if user['user'] == newuser['user']:
                print("提示:该账户已被注册")
                x=False

        if x==True:  # 如果x没有改变TF,那么表示这个ID没有被注册过,就直接break出这个While循环
            break
        else:newuser['user'] = input("提示:请重新输入您的姓名:")
        # 如果x=False 就说明ID被注册过了,再输入一次ID,然后返回到上一个步骤比较是否重复



    while x is True:  # 如果x为True那么就进行预存和密码设置
        y=True  # 引入一个y变量来判断银行密码是否为6位数
        newuser['bank_balance'] = int(input("提示:请输入您的预存金额:"))
        newuser['password'] = input("提示:请输入您的六位银行密码&#x
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值