1. 需求说明

2.需求实现代码
python
# 学生类
class Student:
def __init__(self, name, chinese, math, english):
self.name = name
self.chinese = chinese
self.math = math
self.english = english
@property
def total_score(self):
# 计算总分
return self.chinese + self.math + self.english
def __str__(self):
return f"姓名: {self.name} | 语文: {self.chinese} | 数学: {self.math} | 英语: {self.english} | 总分: {self.total_score}"
# 教务管理系统类
class EduSystem:
def __init__(self):
self.student_list = [] # 存储所有学生对象
# 获取合法成绩:异常捕获 + 0‑100范围校验
def get_valid_score(self, tip):
while True:
try:
score = int(input(tip))
if 0 <= score <= 100:
return score
else:
print("❌ 成绩必须在 0‑100 之间,请重新输入!")
except ValueError:
print("❌ 输入错误!成绩必须是数字,请重新输入!")
# 1. 添加学生
def add_student(self):
name = input("请输入学生姓名:")
# 1.2 判断学生是否已经存在
for stu in self.student_list:
if stu.name == name:
print(f"❌ 学生【{name}】已经存在,不能重复添加!")
return
# 1.1输入成绩 + 1.3校验分数范围
chinese = self.get_valid_score("请输入语文成绩:")
math = self.get_valid_score("请输入数学成绩:")
english = self.get_valid_score("请输入英语成绩:")
# 1.4 创建学生对象并添加
new_stu = Student(name, chinese, math, english)
self.student_list.append(new_stu)
print("✅ 添加学生成功!")
# 2. 修改学生成绩
def update_student(self):
# 2.1输入姓名
name = input("请输入要修改的学生姓名:")
# 2.2查找学生
for stu in self.student_list:
if stu.name == name:
print("📋 当前学生信息:")
print(stu)
# 2.3输入新成绩
stu.chinese = self.get_valid_score("输入新的语文成绩:")
stu.math = self.get_valid_score("输入新的数学成绩:")
stu.english = self.get_valid_score("输入新的英语成绩:")
# 2.4更新完成
print("✅ 修改成绩成功!")
return
print(f"❌ 学生【{name}】不存在!")
# 3. 删除学生成绩
def del_student(self):
name = input("请输入要删除的学生姓名:")
for stu in self.student_list:
if stu.name == name:
self.student_list.remove(stu)
print("✅ 删除学生成功!")
return
print(f"❌ 学生【{name}】不存在!")
# 4. 查询指定学生成绩
def search_student(self):
name = input("请输入要查询的学生姓名:")
for stu in self.student_list:
if stu.name == name:
print(stu)
return
print(f"❌ 学生【{name}】不存在!")
# 5. 展示全部学生成绩
def show_all(self):
if len(self.student_list) == 0:
print("📭 暂无任何学生数据!")
return
for stu in self.student_list:
print(stu)
# 菜单页面(带菜单输入异常捕获)
def menu(self):
while True:
print("\n========教务管理系统========")
print("1. 添加学生成绩")
print("2. 修改学生成绩")
print("3. 删除学生成绩")
print("4. 查询指定学生成绩")
print("5. 展示全部学生成绩")
print("0. 退出系统")
# 捕获菜单输入非数字异常
try:
choice = int(input("请输入您的选择:"))
except ValueError:
print("⚠️ 请输入有效的数字选项!")
continue
match str(choice):
case "1":
self.add_student()
case "2":
self.update_student()
case "3":
self.del_student()
case "4":
self.search_student()
case "5":
self.show_all()
case "0":
print("👋 系统退出,再见!")
break
case _:
print("⚠️ 选项超出范围,请重新选择!")
# 启动程序
if __name__ == '__main__':
app = EduSystem()
app.menu()