students = [
{"id": 1, "scores": [85, 90, 88]},
{"id": 2, "scores": [79, 82, 91]},
{"id": 3, "scores": [95, 89, 92]}
]
def get_student(target_id):
for student in students:
if student["id"] == target_id:
return student
return None
def show_students():
print("所有学生成绩:")
for student in students:
print("id:", student["id"], " 成绩:", student["scores"])
def add_student():
print("请输入新学生id(整数):")
new_id = int(input())
if get_student(new_id) is not None:
print("id已存在,添加失败")
return
print("请输入成绩数量(整数,至少1):")
score_count = int(input())
if score_count < 1:
print("成绩数量至少为1,添加失败")
return
scores = []
for i in range(score_count):
print(f"请输入第{i+1}个成绩:")
score = int(input())
scores.append(score)
students.append({"id": new_id, "scores": scores})
print("添加成功")
def modify_student():
print("请输入要修改的学生id(整数):")
target_id = int(input())
student = get_student(target_id)
if student is None:
print("未找到该学生,修改失败")
return
print("请输入新的成绩数量(整数):")
new_count = int(input())
new_scores = []
for i in range(new_count):
print(f"请输入第{i+1}个新成绩:")
score = int(input())
new_scores.append(score)
student["scores"] = new_scores
print("修改成功")
def delete_student():
print("请输入要删除的学生id(整数):")
target_id = int(input())
student = get_student(target_id)
if student is None:
print("未找到该学生,删除失败")
return
students.remove(student)
print("删除成功")
def analyze_scores():
total_students = len(students)
print("成绩统计分析:")
print("1. 班级总人数:", total_students)
if total_students == 0:
return
total_scores = []
for student in students:
total = sum(student["scores"])
total_scores.append(total)
avg_total = sum(total_scores) / total_students
print("2. 平均总分:", round(avg_total, 1))
max_total = max(total_scores)
print(f"3. 最高分学生(总分{max_total}):")
for i in range(total_students):
if total_scores[i] == max_total:
print(" id=", students[i]["id"], ",总分=", total_scores[i], sep="")
id_total = [(students[i]["id"], total_scores[i]) for i in range(total_students)]
sorted_id_total = sorted(id_total, key=lambda x: x[1], reverse=True)
print("4. 按总分排名:")
for rank, (sid, total) in enumerate(sorted_id_total, 1):
print(f" 排名{rank}:id={sid},总分={total}")
def main():
while True:
print("\n班级成绩管理系统")
print("1. 查看所有学生成绩")
print("2. 添加新学生")
print("3. 修改学生成绩")
print("4. 删除学生")
print("5. 成绩统计分析")
print("6. 退出系统")
print("请输入功能编号(1-6):")
try:
choice = int(input())
if choice == 1:
show_students()
elif choice == 2:
add_student()
elif choice == 3:
modify_student()
elif choice == 4:
delete_student()
elif choice == 5:
analyze_scores()
elif choice == 6:
print("系统退出,再见!")
break
else:
print("请输入1-6之间的整数")
except ValueError:
print("输入错误,请输入一个整数")
if __name__ == "__main__":
main()
2万+

被折叠的 条评论
为什么被折叠?



