# 能够持久化的学生管理系
import json
def print_info():
print("1.查看所有学生")
print("2.修改学生信息")
print("3.增加学生信息")
print("4.删除学生信息")
print("5.查看一个学生的信息")
print("6.退出")
user_input = input("请选择要进行的操作的编号:")
return user_input
def show_all_student(stu_list):#这是查看所有的学生信息
for stu in stu_list:
print(stu)
def modify_stu_info(stu_list):#根据学生的名字修改学生信息
stu_name = input("请输入要修改的学生的名字:")
stu_exist = False
for stu in stu_list:
if stu["name"] == stu_name:
stu_exist = True
stu["age"] = input("请输入修改后学生的年龄:")
stu["stu_num"] = input("请输入修改后的学生的学号")
print(">>>>修改后的学生信息为:")
print(stu)
if not stu_exist:#if stu_exist==False #表示学生名字不存在
print(">>>>您要修改的学生姓名不存在,请重新输入")
return stu_list
def add_stu_info(stu_list):#增加学生信息
stu_info ={} #用它来保存新的学生信息
stu_info["name"] = input("请输入新学生的名字:")
stu_info["age"] = input("请输入新学生的年龄:")
stu_info["stu_num"] = input("请输入新学生的学号:")
stu_list.append(stu_info)
print(">>>>新的学生添加成功")
print(stu_info)
return stu_list
def delete_stu_info(stu_list):#删除学生信息
stu_name = input("请输入要删除的学生姓名:")
stu_exist = False
for stu in stu_list:
if stu_name == stu["name"]:
stu_exist = True
stu_list.remove(stu)
print(">>>>学生信息删除成功")
print("被删除的学生是:{}".format(stu))
if stu_exist == False:
print(">>>>您要删除的学生不存在,请重新输入")
return stu_list
def search_one_stu(stu_list):#搜索一个学生的信息
stu_name = input("请输入要搜索的学生姓名:")
stu_exist = False
for stu in stu_list:
if stu_name == stu["name"]:
stu_exist = True
print("被搜索的学生是:{}".format(stu))
if stu_exist == False:
print(">>>>您要搜索的学生不存在,请重新输入")
def run():#实现主要的思路,逻辑
#1.需要有个地方存储单个学生信息和所有的学生信息
print("*"*20)
print("欢迎来到学生管理系统")
print("*" * 20)
#1.1读取student_list里面的列表
f = open("student_list.txt","r")
stu_list = json.loads(f.read())
f.close()
#1.9 用户输入之前,应该是个死循环
while True:
#2.提示用户输入,输入想要执行的操作
user_input = print_info() #结果是一个字符串
#3.根据操作来选择对应的功能
if user_input in ["1","2","3","4","5","6"]:
# 1.查看所有学生
if user_input == "1": #判断用户输入的是1
show_all_student(stu_list)
# 2.修改学生信息
elif user_input =="2":
stu_list = modify_stu_info(stu_list)
# 3.增加学生信息
elif user_input == "3":
stu_list = add_stu_info(stu_list)
# 4.删除学生信息
elif user_input =="4":
stu_list = delete_stu_info(stu_list)
# 5.查看一个学生的信息
elif user_input == "5":
search_one_stu(stu_list)
# 退出
else: #终止真个循环
print("正在保存学生信息")
f = open("student_list.txt","w")
f.write(json.dumps(stu_list,indent=2))
f.close()
print("成功退出系统,再见....")
break
else:
print(">>>>输入有误,请重新输入")
run()