class User():
def login(self):
# global name
# global password
print("------------------------------")
self.name = input(" 姓名:")
self.password = input(" 密码:")
print("------------------------------")
fail = open(r"D:\学习\python\python阶段性任务\账号.txt", "r", encoding="utf-8")
string = fail.read()
a = '用户名:"(.*?)"'
b = '密码:"(.*?)"'
l1 = re.findall(a, string)
l2 = re.findall(b, string)
while True:
for i in range(len(l1)):
if self.name == l1[i] and self.password == l2[i]:
print("用户名密码正确!正在进入用户界面。")
now_time = time.strftime("%Y年%m月%d日 %H:%M:%S:")
fail = open(r"D:\学习\python\python阶段性任务\记录.txt", "a", encoding="utf-8")
fail.write(f"登录时间:{self.name}在{now_time}登录银行记账系统。")
fail.write("\n")
fail.close()
self.interface()
return True
else:
print("用户名密码有误,重新操作(返回主界面输入1,重新输入用户名输入2)")
k = input("")
if k == "1":
Main()
return
else:
self.login()
return
def interface(self):
print("---------------------------------")
print("用户您好! ")
print(" 存款(1) ")
print(" 取款(2) ")
print(" 转账(3) ")
print(" 查询余额(4) ")
print(" 转账记录(5) ")
print(" 退出(6) ")
print(" ")
print("---------------------------------")
a = input("输入操作:")
if a == "1":
self.Deposit()
elif a == "2":
self.Withdraw()
elif a == "3":
self.Transfer()
elif a == "4":
self.Inquire()
elif a == "5":
self.Transfer_recording()
elif a == "6":
print(" 再 见 ! ")
else:
print("输入无效!请重新输入")
self.interface()
return
def Deposit(self):
fail = open(r"D:\学习\python\python阶段性任务\记录.txt", "r", encoding="utf-8")
string = fail.read()
l = re.findall(r"{}.*余额:(.*\d)".format(self.name), string)
fail.close()
q = l[len(l) - 1]
a = float(input("您要存钱的金额:"))
if a < 100:
print("金额过低禁止交易.")
k = input("返回(1) 重新输入金额(2):")
if k == "1":
self.interface()
else:
return self.Deposit()
elif a > 20000:
print("金额过高请到银行柜台进行交易")
k = input("返回(1) 重新输入金额(2):")
if k == "1":
self.interface()
else:
return self.Deposit()
else:
q = float(q)
q = q + a
print(f"存入{a}元成功!")
fail = open(r"D:\学习\python\python阶段性任务\记录.txt", "a", encoding="utf-8")
fail.write(f"用户名:{self.name} 存入{a}元 余额:{q}元")
fail.write("\n")
fail.close()
while True:
k = input("返回主界面(1) 退出(2):")
if k == "1":
self.interface()
return
elif k == "2":
print(" 再 见 ! ")
break
else:
print("输入有误")
continue
def Withdraw(self):
fail = open(r"D:\学习\python\python阶段性任务\记录.txt", "r", encoding="utf-8")
string = fail.read()
l = re.findall(r"{}.*余额:(.*\d)".format(self.name), string)
fail.close()
q = l[len(l) - 1]
a = float(input("您要取钱的金额:"))
q = float(q)
q = q - a
if a < 100:
print("金额过低禁止交易.")
k = input("返回(1) 重新输入金额(2):")
if k == "1":
self.interface()
else:
return self.Withdraw()
elif a > 20000:
print("金额过高请到银行柜台进行交易")
k = input("返回(1) 重新输入金额(2):")
if k == "1":
self.interface()
else:
return self.Withdraw()
elif q < 0:
print(f"您的存款不够取{a}元!")
k = input("返回(1) 重新输入金额(2):")
if k == "1":
self.interface()
else:
return self.Withdraw()
else:
print(f"取走{a}元成功!")
fail = open(r"D:\学习\python\python阶段性任务\记录.txt", "a", encoding="utf-8")
fail.write(f"用户名:{self.name} 取走{a}元 余额:{q}元 ")
fail.write("\n")
fail.close()
while True:
k = input("返回主界面(1) 退出(2):")
if k == "1":
return self.interface()
elif k == "2":
print(" 再 见 ! ")
break
else:
print("输入有误")
continue
def Transfer(self):
fail = open(r"D:\学习\python\python阶段性任务\记录.txt", "r", encoding="utf-8")
string = fail.read()
l = re.findall(r"{}.*余额:(.*\d)".format(self.name), string)
fail.close()
q = l[len(l) - 1]
name1 = input("您要向谁转账:")
fail1 = open(r"D:\学习\python\python阶段性任务\账号.txt", "r", encoding="utf-8")
string1 = fail1.read()
fail1.close()
a = '用户名:"(.*?)"'
R = re.findall(a, string1)
while True:
for i in range(len(R)):
if name1 == R[i]:
print("用户存在请稍等")
a = float(input("您要转账的金额:"))
q = float(q)
q = q - a
if a < 100:
print("金额过低禁止交易.")
k = input("返回(1) 重新输入金额(2):")
if k == "1":
return self.interface()
else:
return self.Transfer()
elif a > 20000:
print("金额过高请到银行柜台进行交易")
k = input("返回(1) 重新输入金额(2):")
if k == "1":
return self.interface()
else:
return self.Transfer()
elif q < 0:
print(f"您的余额不足{a}元")
k = input("返回(1) 重新输入金额(2):")
if k == "1":
return self.interface()
else:
return self.Transfer()
else:
print(f"转账{a}元成功!")
fail = open(r"D:\学习\python\python阶段性任务\记录.txt", "a", encoding="utf-8")
l1 = re.findall(r"{}.*余额:(.*\d)".format(name1), string)
q1 = l1[len(l1) - 1]
q1 = float(q1)
q1 = q1 + a
fail.write(f"{self.name} 向 {name1} 转账 {a}元 ")
fail.write("\n")
fail.write(f"用户名:{self.name} 转出{a}元 余额:{q}元")
fail.write("\n")
fail.write(f"用户名:{name1} 收入{a}元 余额:{q1}元")
fail.write("\n")
fail.close()
while True:
k = input("返回主界面(1) 退出(2):")
if k == "1":
return self.interface()
elif k == "2":
print(" 再 见 ! ")
break
else:
print("输入有误")
continue
else:
print("您要转账的用户不存在,请重新输入!")
return self.Transfer()
def Inquire(self):
fail = open(r"D:\学习\python\python阶段性任务\记录.txt", "r", encoding="utf-8")
string = fail.read()
l = re.findall(r"{}.*余额:(.*\d)".format(self.name), string)
fail.close()
q = l[len(l) - 1]
print(f"您的余额为{q}元")
while True:
k = input("返回主界面(1) 退出(2):")
if k == "1":
return self.interface()
elif k == "2":
print(" 再 见 ! ")
break
else:
print("输入有误")
continue
def Transfer_recording(self):
fail = open(r"D:\学习\python\python阶段性任务\记录.txt", "r", encoding="utf-8")
string = fail.read()
l = re.findall(r"{}.*向.*".format(self.name), string)
fail.close()
for i in range(len(l)):
print(l[i])
while True:
k = input("返回主界面(1) 退出(2):")
if k == "1":
return self.interface()
elif k == "2":
print(" 再 见 ! ")
break
else:
print("输入有误")
continue