You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
3.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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