'''
(1)显示学生名单。按“1“查询学生信息:如果存在,显示学生姓名和学号;如果不存在任何学生信息,则提示“学生名单为空”。
(2)查询学生信息。按“2“查询学生信息:如果存在,输出学生信息;如果不存在,提示是否新建学生信息。
(3)插入新的学生信息。按“3“查询学生信息:如果存在,提示是否更新学生信息;如果不存在,提示输入学号,并在字典中插入(新建)新学生信息。
(4)删除已有学生。按“4“进行删除操作:如果不存在,输出“该学生不存在”;如果存在,从字典中删除,并输出信息。
(5)退出。按“0“保存学生字典到文件中,退出循环.
'''
import json
def menu():
print("=" * 30)
print("*" * 5 + "学生姓名学号管理系统" + "*" * 5)
print("1.显示学生名单")
print("2.查询学生信息")
print("3.插入新的学生信息")
print("4.删除已有学生")
print("0.退出")
print("=" * 30)
data = []
def show_data():
# 1.读取文件
# data = {}
with open(r"E:\python程序设计基础\student.txt", encoding="utf-8") as f:
for line in f:
(key, val) = line.split()
data[key] = val
print(data) #文件转化为字典并输出
if data:
for key in data:
print("姓名:", key, " 学号:", data[key])
else:
print("学生名单为空")
def search_data():
# 2.查询学生信息
global data
search_ID = input("请输入你要查询学生的学号:")
for key in data:
if key['ID'] == search_ID:
print("找到学生信息如下:")
print("姓名:", key, " 学号:", data[key])
break
else:
print("该学生不存在,是否新建学生信息?")
Anser = input("yes or no?")
if Anser == "yes":
dataStu = {'name': input("请输入新建学生姓名:"), 'ID': input("请输入新建学生学号:")}
data.update(dataStu)
def add_data():
# 3.新建学生信息
global data
new_ID = input("请输入新建学生的学号:")
new_name = input("请输入新建学生的姓名:")
for key in data:
if key["ID"] == new_ID:
print("该学生存在,是否更新学生信息?")
anser = input("yes or no?")
if anser == "yes":
i['name'] = input("请输入更新后的姓名:")
i['ID'] = input("请输入更新后的学号:")
break
else:
# 建立空字典,字典新增数据
add_data = {'name': new_name, 'ID': new_ID}
data.update(add_data)
# print(data)
def del_data():
# 4.删除已有学生
global data
del_ID = input("请输入要删除的学生学号:")
for key in data:
if key['ID'] == del_ID:
del key[i]
break
else:
print("该学生不存在")
print(data)
def main():
while True:
# 1.打印工程
menu()
# 2.获取用户的选择
key = int(input("请输入你要选择的操作:"))
# 3.根据用户的选择,作出相应的事件
if key == 1:
show_data()
elif key == 2:
search_data()
elif key == 3:
add_data()
elif key == 4:
del_data()
elif key == 0:
with open("E:\python程序设计基础\student(1).txt", 'w') as f:
data_1 = json.dumps(data, ensure_ascii=False)
f.write(data_1)
break
else:
print("输入有误!!!")
main()