控制台学生管理系统设计
import json
def login_info():
print('='*50)
print(' '*2, '** ','欢迎来到学生管理系统',' **')
print()
print()
print(" " * 10, '1.登陆')
print(" " * 10, '2.注册')
print(" " * 10, '3.退出')
print("=" * 50)
xuanze()
def xuanze():
a = int(input("请选择1-3:"))
if a == 1:
login1()
elif a == 2:
zhuce1()
elif a == 3:
print("结束退出")
exit()
else:
print("输入有误将返回")
login_info()
def zhuce1():
f1 = open(r'E:\shujuchijiu\students\zhanghao.txt', 'r', encoding='utf-8')
all_zhanghao = json.loads(f1.read())
f2 = open(r'E:\shujuchijiu\students\mima.txt', 'r', encoding='utf-8')
all_mima = json.loads(f2.read())
zhanghao = input("请输入账号(3-6位):")
if not 3 <= len(zhanghao) <=6:
print("用户名格式错误")
zhuce1()
mima = input("请输入密码(6-12位)")
if not 6 <= len(mima) <=12:
print("密码格式错误")
zhuce1()
if zhanghao in all_zhanghao:
print("注册失败,该账号已经注册过!")
login_info()
f1.close()
f2.close()
else:
all_zhanghao.append(zhanghao)
all_mima.append(mima)
f1 = open(r'E:\shujuchijiu\students\zhanghao.txt', 'w', encoding='utf-8')
f1.write(json.dumps(all_zhanghao))
f2 = open(r'E:\shujuchijiu\students\mima.txt', 'w', encoding='utf-8')
f2.write(json.dumps(all_mima))
f1.close()
f2.close()
print("注册成功")
login_info()
zhanghao = ''
def login1():
global zhanghao
f1 = open(r'E:\shujuchijiu\students\zhanghao.txt', 'r', encoding='utf-8')
all_zhanghao = json.loads(f1.read())
f2 = open(r'E:\shujuchijiu\students\mima.txt', 'r', encoding='utf-8')
all_mima = json.loads(f2.read())
zhanghao = input("请输入账号:")
mima = input("请输入密码:")
if zhanghao not in all_zhanghao:
print("该账号未注册")
f1.close()
f2.close()
login_info()
elif mima not in all_mima:
print("登陆失败,密码错误")
f1.close()
f2.close()
login_info()
else:
if mima != all_mima[all_zhanghao.index(zhanghao)]:
print("登陆失败,密码错误")
f1.close()
f2.close()
login_info()
else:
print("登陆成功")
f1.close()
f2.close()
info()
def info():
print(f"欢迎{zhanghao}: ")
print()
print(" " * 5, '1.添加学生')
print(" " * 5, '2.查看学生')
print(" " * 5, '3.修改学生信息')
print(" " * 5, '4.删除学生')
print(" " * 5, '5.返回注册登陆界面')
print(" " * 5, '6.退出')
print("=" * 20)
xuanze1()
def xuanze1():
global zhanghao
try:
f3 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'x', encoding='utf-8')
f3.write(str([]))
f3.close()
except:
pass
f4 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'r', encoding='utf-8')
aa = json.loads(f4.read())
a = int(input("请选择1-6:"))
if a == 1:
add()
elif a == 2:
if len(aa) == 0:
print(f"该账号({zhanghao})没有可管理的学生,请先添加学生")
info()
else:
print(aa)
f4.close()
info()
elif a == 3:
update()
info()
elif a == 4:
delete()
info()
elif a == 5:
login_info()
elif a == 6:
print("结束退出")
exit()
else:
print("输入有误将返回")
info()
def add():
f3 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'r', encoding='utf-8')
aa = json.loads(f3.read())
f4 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'w', encoding='utf-8')
bb = {}
name = input("请输入姓名:")
age = input("请输入年龄:")
tel = input("请输入电话:")
bb['name'] = name
bb['age'] = age
bb['tel'] = tel
aa.append(bb)
f4.write(json.dumps(aa))
f3.close()
f4.close()
print("添加成功")
print("1.继续")
print("2.返回")
b = int(input("请选择(1-2):"))
if b == 1:
add()
else:
info()
def update():
global zhanghao
f3 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'r', encoding='utf-8')
aa = json.loads(f3.read())
f4 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'w', encoding='utf-8')
b = input("请输入要修改的学生姓名:")
for item in aa:
if item['name'] == b:
i = aa.index(item)
c = input("请选择修改(name,age,tel):")
aa[i][c] = input("请输入更改后的值:")
f4.write(json.dumps(aa))
f3.close()
f4.close()
print("修改成功")
break
else:
print("该学生不存在")
def delete():
global zhanghao
f3 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'r', encoding='utf-8')
aa = json.loads(f3.read())
f4 = open(rf'E:\shujuchijiu\students\mangager\{zhanghao}.txt', 'w', encoding='utf-8')
d = input("请输入要删除的学生姓名:")
for item in aa:
if item['name'] == d:
e = input("请确定是否要删除(y/n):")
if e == 'y':
aa.remove(item)
f4.write(json.dumps(aa))
f3.close()
f4.close()
print("删除成功")
break
else:
info()
break
else:
print("该学生不存在")
login_info()