小型ATM存取款系统是一个非常常见的小项目,适合于python入门学习。
本文实现的小型ATM存取款系统将使用文件来存储数据,并不涉及数据库。
首先,需要在同一目录下创建三个文件,分别是 ATM.py ,person.txt,card.txt 。
person.txt 用于存储用户信息。
card.txt 用于存储卡号信息。
然后,ATM.py 的代码实现如下:
import random
import time
class Views:
def welcome(self):
print('***********************************************')
print('* Welcome to bank! *')
def ATM_loading(self):
print('***********************************************')
print('请稍后,ATM自动存取款系统加载中...')
def ATM_main(self):
print('************************************************')
print('* (1)登录 (2)注册 *')
print('* (3)锁卡 (4)解卡 *')
print('* (5)补卡 (6)退出 *')
print('************************************************')
def user_main(self):
print('************************************************')
print('* (1)查询 (2)存钱 *')
print('* (3)取钱 (4)转账 *')
print('* (5)改密 (6)退出 *')
print('************************************************')
class Card:
cardid = None
password = None
money = None
islock = None
def __init__(self, cardid, password, money, islock):
self.cardid = cardid
self.password = password
self.money = money
self.islock = islock
def msg(self):
ret = f'{self.cardid} {self.password} {self.money} {self.islock}\n'
return ret
class Person:
name = None
userid = None
phone = None
cardid = None
def __init__(self, name, userid, phone, cardid):
self.name = name
self.userid = userid
self.phone = phone
self.cardid = cardid
def msg(self):
ret = f'{self.name} {self.userid} {self.phone} {self.cardid}\n'
return ret
class user_control:
user_msg = None
card_msg = None
def __init__(self, user_msg, card_msg):
self.user_msg = user_msg
self.card_msg = card_msg
def check_money(self):
print(f'用户名: {self.user_msg[0]}')
print(f'卡号: {self.user_msg[3]}')
print(f'余额: {self.card_msg[2]}')
def save_money(self):
num = int(input('请输入您需要存入的金额:'))
fc = open('./card.txt', 'r', encoding='utf-8')
lines = fc.readlines()
fc.close()
lines = [line for line in lines if line.split()[0] != self.card_msg[0]]
self.card_msg[2] = str(int(self.card_msg[2]) + num)
line = f'{self.card_msg[0]} {self.card_msg[1]} {self.card_msg[2]} {self.card_msg[3]}\n'
lines.append(line)
fc = open('./card.txt', 'w', encoding='utf-8')
fc.close()
fc = open('./card.txt', 'a', encoding='utf-8')
for line in lines:
fc.write(line)
fc.close()
time.sleep(1)
print(f'成功存入{num}元')
def get_money(self):
num = int(input('请输入您需要取出的金额:'))
fc = open('./card.txt', 'r', encoding='utf-8')
lines = fc.readlines()
fc.close()
lines = [line for line in lines if line.split()[0] != self.card_msg[0]]
self.card_msg[2] = str(int(self.card_msg[2]) - num)
line = f'{self.card_msg[