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()