import tkinter # 导入tkinter模块
import tkinter.messagebox # 导入tkinter.messagebox模块
# 账户类
class Account():
def __init__(self, name, password, balance, operation):
self.name = name
self.password = password
self.balance = balance
self.operation = operation
print(self.name, "households" + self.operation + "successful")
# 查询余额
def check(self):
tkinter.messagebox.showinfo("balance", "yourAccountBalanceIs:" + str(self.balance))
if(self.balance<=-1000000):
tkinter.messagebox.showwarning("warning","youAreASeriouslyUntrustworthyUser。")
# 存钱
def save(self, money):
self.balance += money
self.operation = "depositInto" + str(money)
tkinter.messagebox.showinfo("prompt", "depositSuccessfully")
# 取钱
def withdraw(self, money):
if money <= self.balance:
self.balance -= money
self.operation = "takeOut" + str(money)
tkinter.messagebox.showinfo("prompt", "removedSuccessfully")
else:
tkinter.messagebox.showwarning("warning", "ifYouDon'tHaveMoney,YouStillWantToCome.")
# 记录
def record(self):
f = open(self.name + ".txt", "a")
text = self.name + "," + self.password + "," + str(self.balance) + "," + self.operation + "\n"
f.write(text)
f.close()
window = tkinter.Tk() # 创建窗口
window.geometry("400x4 50") # 设置窗口大小
window.title("register/LogIn") # 设置窗口标题
# 创建文字标签
label1 = tkinter.Label(window, text="Minecraft bank", font=("微软雅黑", 20))
# 粘贴文字
label1.pack(pady=20)
label2 = tkinter.Label(window, text="accountName", font=("微软雅黑", 20))
label2.pack(pady=0)
# 创建“账户名”输入框
entry1 = tkinter.Entry(window, font=("微软雅黑", 20))
entry1.pack()
# “密码”文字标签
label3 = tkinter.Label(window, text="password", font=("微软雅黑", 20))
label3.pack(pady=0)
# “密码”输入框
entry2 = tkinter.Entry(window, font=("微软雅黑", 20))
entry2.pack()
# 注册函数
def signin():
name = entry1.get() # 获取账户名
pw = entry2.get() # 获取密码
try:
open(name + ".txt", "r")
except:
# 创建账户和生成txt文件
user = Account(name, pw, 0, "createAnAccount")
user.record()
tkinter.messagebox.showinfo("prompt","RegisteredSuccessfully")
else:
# 提示账户已存在,请重新输入
tkinter.messagebox.showwarning("warning","AccountAlreadyExists,PleaseRe-enter")
# 登录函数
def login():
name = entry1.get() # 获取账户名
pw = entry2.get() # 获取密码
try:
f1 = open(name + ".txt", "r")
except:
tkinter.messagebox.showinfo("prompt","AccountDoesNotExist,PleaseRegisterFirst")
else:
# 读取密码
lines = f1.readlines()
line = lines[len(lines) - 1]
lineList = line.split(",")
password1 = lineList[1]
# 密码正确
if pw == password1:
balance1 = int(lineList[2])
user = Account(name, pw, balance1, "logInToTheAccount")
user.record()
tkinter.messagebox.showinfo("prompt","LoginSucceeded")
# 销毁 注册/登录窗口
window.destroy()
# 功能页窗口
homepage = tkinter.Tk()
homepage.geometry("600x650")
homepage.title("functionPage")
label11 = tkinter.Label(homepage, text="Minecraft bank", font=("微软雅黑", 20))
label11.pack(pady=50)
# 输入框
label22 = tkinter.Label(homepage, text="pleaseEnterTheDepositAndDepositAmount", font=("微软雅黑", 20))
label22.pack()
entry11 = tkinter.Entry(homepage, font=("微软雅黑", 20))
entry11.pack(pady=10)
# 查询余额
def checkMoney():
user.check()
# 存钱
def saveMoney():
money = int(entry11.get())
user.save(money)
user.record()
# 取钱
def withdrawMoney():
money = int(entry11.get())
user.withdraw(money)
user.record()
# 查询余额按钮
btn11 = tkinter.Button(homepage, text="queryBalance", font=("微软雅黑", 20), width=20, command=checkMoney)
btn11.pack(pady=10)
# 存钱按钮
btn22 = tkinter.Button(homepage, text="saveMoney", font=("微软雅黑", 20), width=20, command=saveMoney)
btn22.pack(pady=10)
# 取钱按钮
btn33 = tkinter.Button(homepage, text="withdrawMoney", font=("微软雅黑", 20), width=20, command=withdrawMoney)
btn33.pack(pady=10)
# 密码错误
else:
tkinter.messagebox.showerror("wrong","WrongPassword.")
# “登录”按钮
btn1 = tkinter.Button(window, text="logIn", font=("微软雅黑", 20), width=20, command=login)
btn1.pack(pady=20)
# “注册”按钮
btn2 = tkinter.Button(window, text="register", font=("微软雅黑", 20), width=20, command=signin)
btn2.pack()
3 个赞
7 个帖子被合并到现有话题中:垃圾站/废贴集中