import json
str_info = """
****************************
欢迎使用【学生信息管理系统】V1.0
请选并你想要进行的操作
1.新建学生信息
2.显示全部信息
3.查询学生信息
4.修改学生信息
5.删除学生信息
0.退出系统
****************************
"""
# 读取文件
try:
with open('student.txt', 'r', encoding='utf-8') as f:
students_list = f.readlines() # 读取所有行
# 把字符串转化成对象
students = [json.loads(student) for student in students_list]
except FileNotFoundError:
students = []
# 循环多次
while True:
print(str_info)
action = input("请选择你需要执行的操作:")
if action == '1':
print('1.新建学生信息')
name = input("请输入学生姓名: ")
id = int(input(f"请输入学生{name}学号: "))
chinese = int(input(f"请输入学生{name}语文成绩: "))
math = int(input(f"请输入学生{name}数学成绩: "))
english = int(input(f"请输入学生{name}英语成绩: "))
total = chinese + math + english
stu = {
'name': name,
'id': id,
'chinese': chinese,
'math': math,
'english': english,
'total': total
}
students.append(stu)
elif action == '2':
print('2.显示全部信息')
print("姓名\t\tID\t\t语文\t\t数学\t\t英语\t\t总分")
for stu in students:
print(
f"{stu['name']}\t\t{stu['id']}\t\t{stu['chinese']}\t\t{stu['math']}\t\t{stu['english']}\t\t{stu['total']}")
elif action == '3':
print('3.查询学生信息')
find_name = input("请输入查询姓名:")
found = False
for stu in students:
if find_name == stu['name']:
found = True
print("姓名\t\tID\t\t语文\t\t数学\t\t英语\t\t总分")
print(
f"{stu['name']}\t\t{stu['id']}\t\t{stu['chinese']}\t\t{stu['math']}\t\t{stu['english']}\t\t{stu['total']}")
break
if not found:
print("该学生不存在!!")
elif action == '4':
print('4.修改学生信息')
find_name = input("请输入查询姓名:")
found = False
for stu in students:
if find_name == stu['name']:
found = True
print("如果输入为空,就使用原来信息!")
name = input("请输入学生姓名: ") or stu['name']
id = input(f"请输入学生学号: ") or stu['id']
chinese = input(f"请输入学生{name}语文成绩: ") or stu['chinese']
math = input(f"请输入学生{name}数学成绩: ") or stu['math']
english = input(f"请输入学生{name}英语成绩: ") or stu['english']
stu['name'] = name
stu['id'] = int(id)
stu['chinese'] = int(chinese)
stu['math'] = int(math)
stu['english'] = int(english)
stu['total'] = stu['chinese'] + stu['math'] + stu['english']
print("学生信息已更新!")
print("姓名\t\tID\t\t语文\t\t数学\t\t英语\t\t总分")
print(
f"{stu['name']}\t\t{stu['id']}\t\t{stu['chinese']}\t\t{stu['math']}\t\t{stu['english']}\t\t{stu['total']}")
break
if not found:
print("该学生不存在!!")
elif action == '5':
print('5.删除学生信息')
find_name = input("请输入删除学生的姓名:")
found = False
for stu in students:
if find_name == stu['name']:
students.remove(stu)
found = True
print(f"已删除学生: {stu['name']}")
break
if not found:
print("该学生不存在!!")
elif action == '0':
print('0.退出系统')
with open('student.txt', 'w', encoding='utf-8') as f:
for student in students:
f.write(json.dumps(student, ensure_ascii=False) + '\n')
break
else:
print("请输入正确选择!!")
恭喜你学会了,快去试试吧!!!