|
|
import json
|
|
|
import os
|
|
|
|
|
|
|
|
|
DATA_FILE = "students.json"
|
|
|
|
|
|
|
|
|
def init_data():
|
|
|
if not os.path.exists(DATA_FILE):
|
|
|
with open(DATA_FILE, "w", encoding="utf-8") as f:
|
|
|
json.dump([], f)
|
|
|
|
|
|
|
|
|
def load_students():
|
|
|
with open(DATA_FILE, "r", encoding="utf-8") as f:
|
|
|
return json.load(f)
|
|
|
|
|
|
|
|
|
def save_students(students):
|
|
|
with open(DATA_FILE, "w", encoding="utf-8") as f:
|
|
|
json.dump(students, f, ensure_ascii=False, indent=2)
|
|
|
|
|
|
|
|
|
def add_student():
|
|
|
students = load_students()
|
|
|
student_id = input("请输入学号(唯一):")
|
|
|
|
|
|
for s in students:
|
|
|
if s["id"] == student_id:
|
|
|
print("❌ 该学号已存在!")
|
|
|
return
|
|
|
|
|
|
student = {
|
|
|
"id": student_id,
|
|
|
"name": input("请输入姓名:"),
|
|
|
"class": input("请输入班级:"),
|
|
|
"score": input("请输入成绩:")
|
|
|
}
|
|
|
students.append(student)
|
|
|
save_students(students)
|
|
|
print("✅ 学生信息添加成功!")
|
|
|
|
|
|
|
|
|
def query_student():
|
|
|
students = load_students()
|
|
|
student_id = input("请输入要查询的学号:")
|
|
|
for s in students:
|
|
|
if s["id"] == student_id:
|
|
|
print("\n📋 查询结果:")
|
|
|
print(f"学号:{s['id']}")
|
|
|
print(f"姓名:{s['name']}")
|
|
|
print(f"班级:{s['class']}")
|
|
|
print(f"成绩:{s['score']}")
|
|
|
return
|
|
|
print("❌ 未找到该学生!")
|
|
|
|
|
|
|
|
|
def modify_student():
|
|
|
students = load_students()
|
|
|
student_id = input("请输入要修改的学号:")
|
|
|
for s in students:
|
|
|
if s["id"] == student_id:
|
|
|
print("请输入新信息(不修改按回车保留原内容):")
|
|
|
s["name"] = input(f"姓名(原:{s['name']}):") or s["name"]
|
|
|
s["class"] = input(f"班级(原:{s['class']}):") or s["class"]
|
|
|
s["score"] = input(f"成绩(原:{s['score']}):") or s["score"]
|
|
|
save_students(students)
|
|
|
print("✅ 学生信息修改成功!")
|
|
|
return
|
|
|
print("❌ 未找到该学生!")
|
|
|
|
|
|
|
|
|
def delete_student():
|
|
|
students = load_students()
|
|
|
student_id = input("请输入要删除的学号:")
|
|
|
for i, s in enumerate(students):
|
|
|
if s["id"] == student_id:
|
|
|
del students[i]
|
|
|
save_students(students)
|
|
|
print("✅ 学生信息删除成功!")
|
|
|
return
|
|
|
print("❌ 未找到该学生!")
|
|
|
|
|
|
|
|
|
def main():
|
|
|
init_data()
|
|
|
while True:
|
|
|
print("\n" + "="*30)
|
|
|
print(" 学生信息管理系统(Python)")
|
|
|
print("="*30)
|
|
|
print("1. 添加学生 2. 查询学生")
|
|
|
print("3. 修改学生 4. 删除学生")
|
|
|
print("5. 退出系统")
|
|
|
print("="*30)
|
|
|
choice = input("请输入操作编号(1-5):")
|
|
|
if choice == "1":
|
|
|
add_student()
|
|
|
elif choice == "2":
|
|
|
query_student()
|
|
|
elif choice == "3":
|
|
|
modify_student()
|
|
|
elif choice == "4":
|
|
|
delete_student()
|
|
|
elif choice == "5":
|
|
|
print("👋 退出系统,再见!")
|
|
|
break
|
|
|
else:
|
|
|
print("❌ 输入错误,请重新选择!")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
main() |