import json
"""
学生信息管理系统
功能:查看学生数据列表,能修改学生数据,能删除数据,能新增数据,能退出管理系
"""
# 学生信息的存储列表
student_list = []
"""先到文件中读取数据保存变量student_list中"""
import os
if os.path.isfile("student.txt"):
# 注意:第一次使用,手动创建这个文件,以后可以通过 os模块提供的操作,就可以判断该文件是否存在
with open("student.txt", "r") as f:
content = f.read()
if content:
student_list = json.loads(content)
else:
# 如果文件不存在,则使用w模式创建文件
with open("student.txt", "w") as f:
pass
while True:
"""1. 显示菜单"""
print("* " * 15)
print("* 欢迎来到XX学生信息管理系统。")
print("*")
print("* 1. 添加学生信息")
print("* 2. 查看学生信息")
print("* 3. 修改学生信息")
print("* 4. 删除学生信息")
print("* 5. 退出信息系统")
print("* " * 15)
print()
action = int(input("请输入要进行的操作序号(1·5):"))
if action == 1:
"""添加"""
print("请输入要录入系统的学生信息...")
name = input("姓名:")
age = input("年龄:")
sex = input("性别:")
mobile = input("联系电话:")
# 把学生信息往student_list进行追加
student_list.append({
"name": name,
"age": age,
"sex": sex,
"mobile": mobile,
})
print(f"student_list={student_list}")
# 添加学生数据以后,自动保存一份到文件中
if len(student_list) > 0:
content = json.dumps(student_list) # 把列表转换成字符串
with open("student.txt", "w") as file:
file.write(content)
elif action == 2:
"""查看"""
for index, item in enumerate(student_list):
print(f"序号: {index+1}\t\t姓名: {item['name']}\t\t年龄: {item['age']}\t\t性别: {item['sex']}\t\t联系电话: {item['mobile']}")
print("- " * 15)
elif action == 3:
"""修改"""
for index, item in enumerate(student_list):
print(f"序号: {index+1}\t\t姓名: {item['name']}\t\t年龄: {item['age']}\t\t性别: {item['sex']}\t\t联系电话: {item['mobile']}")
print("- " * 15)
num = int(input("请输入要更新的学生信息序号(如果部分信息不修改,可以不填写留空):"))
name = input(f"姓名({student_list[num-1]['name']}):")
age = input(f"年龄({student_list[num-1]['age']}):")
sex = input(f"性别({student_list[num-1]['sex']}):")
mobile = input(f"联系电话({student_list[num-1]['mobile']}):")
# 更新数据
data = student_list[num-1] # data与student_list[num-1]是引用关系,所以data被改动,就表示student_list[num-1]被改动了
if name:
data["name"] = name
if age:
data["age"] = age
if sex:
data["sex"] = sex
if mobile:
data["mobile"] = mobile
if len(student_list) > 0:
content = json.dumps(student_list) # 把列表转换成字符串
with open("student.txt", "w") as file:
file.write(content)
elif action == 4:
for index, item in enumerate(student_list):
print(f"序号: {index+1}\t\t姓名: {item['name']}\t\t年龄: {item['age']}\t\t性别: {item['sex']}\t\t联系电话: {item['mobile']}")
print("- " * 15)
text = input("请输入要删除的学生信息序号(如果要一次性删除多个,序号之间使用空格隔开):")
if text:
num_list = text.split(" ")
# 删除成员
num_list.sort(reverse=True)
for num in num_list:
num = int(num)
student_list.pop(num - 1)
# 删除操作会导致数据减少,最少的情况是没有数据,所以这里不能判断student_list
content = json.dumps(student_list) # 把列表转换成字符串
with open("student.txt", "w") as file:
file.write(content)
else:
print("成功退出系统中....")
break
print()
print()