13.千峰教育银行系统实战----自制随堂笔记

其中复习了前面学习的诸多知识点,里面有详细的知识点讲解,复制下来直接用就可以实现。
银行系统实践.py

# Tkinter与银行系统实战
"""
人
类名:Person
属性:
行为:

卡
类名:Card
属性:卡号   密码   余额   
行为:

提款机
类名:ATM
属性:用户字典
行为:开户   查询   取款  存款  转账 改密  锁定  解锁  补卡  销户

管理员
类名:Admin
属性:
行为:管理员界面   管理员验证  系统功能界面  退出
"""
import time
from admin import Admin
from atm import ATM
import pickle
import os


def main(): 
	# 管理员对象
	admin = Admin()
	# 管理员开机
	admin.printAdminView()
	if admin.adminOption():
		return -1
	
	# 提款机对象
	# 
	# 读取文件中的内容
	filepath = os.path.join(os.getcwd(), "allusers.txt")
	# rb 以二进制格式打开一个文件用于只读,文件的描述符放在文件开头
	f = open(filepath, "rb")
	# 用load函数,文件中要先有相同类型的数据
	# load 加载
	allUsers = pickle.load(f)
	print("*************")
	print(allUsers)
	
	# 第一次运行需要注释到-1那里,然后加上下面一行
	# 目的是写入一个类似的字典
	# allUsers = {}
	atm = ATM(allUsers)
	
	while True:
		admin.printSysFunctionView()
		# 等待用户的操作
		option = input("请输入您的操作:")
		if option == "1":
			# 开户
			atm.createUser()
		elif option == "2":
			# 查询
			atm.searchUserInfo()

		elif option == "3":
			# print("取款")
			atm.getMoney()
		elif option == "4":
			# print("存款")
			atm.saveMoney()

		elif option == "5":
			# print("转账")
			atm.transferMoney()
		elif option == "6":
			# print("改密")
			atm.changePasswd()
		elif option == "7":
			# 锁定
			atm.lockUser()

		elif option == "8":
			# 解锁
			atm.unlockUser()

		elif option == "9":
			# print("补卡")
			atm.newCard()
		elif option == "0":
			# print("销户")
			atm.killUser()

		elif option == "t":
			# if条件语句后面需要跟随bool类型的数据,即True或者False。
			# 在命令if not 1中,1便会转换为bool类型的True。not是逻辑运算符非,not 1则恒为False。
			# 因此if语句if not 1之下的语句,永远不会执行
			if not admin.adminOption():

				# 将当前系统中的用户信息;保存到文件中
				filepath = os.path.join(os.getcwd(), "allusers.txt")
				# 打开一个文件只用于写入二进制,如果该文件已经存在会覆盖,如果不存在则创建新文件
				f = open(filepath, "wb")
				pickle.dump(atm.allUsers, f)
				f.close()
				# 主程序结束
				return -1

		time.sleep(2)

if __name__ == "__main__":
	main()

atm.py

from card import Card
from user import User
import random

class ATM(object):
	def __init__(self,  allUsers):
		self.allUsers = allUsers    # 卡号-用户

	# 开户
	def createUser(self):
# 可以做出控制,如果输入的不合理
		# 向用户字典中添加一对键值对(卡号-用户)
		name = input("请输入您的姓名:")
		idCard = input("请输入您的身份证号码:")
		phone = input("请输入您的电话号码:")
		prestoreMoney = int(input("请输入预存款金额:"))
		if prestoreMoney < 0:
			print("预存款输入有误!!开户失败······")
			return -1
		onePasswd = input("请设置密码:"
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值