设计一个用于统计一个班学生成绩的程序,需要完成以下功能: 1)输入学生成绩信息 2)按总平均成绩排序 3)按学号排序 4)输出学生成绩表 5)结束退出 根据以上描述,编写程序输出功能菜单,输入菜单选择,根据选择执行对应功能,每个功能只显示该功能名称,例如选2,则输出:“现在执行按总平均成绩排序功能!”
时间: 2024-02-18 14:05:30 浏览: 79
好的,这是一个比较典型的学生成绩管理系统,我可以帮您设计。以下是程序代码:
```python
# 定义学生类
class Student:
def __init__(self, name, id, scores):
self.name = name
self.id = id
self.scores = scores
# 定义输出格式
def __str__(self):
return f'{self.id}\t{self.name}\t{self.scores["Chinese"]}\t{self.scores["Math"]}\t{self.scores["English"]}\t{self.scores["Total"]:.2f}'
# 定义主程序
def main():
students = []
while True:
# 输出菜单
print("1. 输入学生成绩信息")
print("2. 按总平均成绩排序")
print("3. 按学号排序")
print("4. 输出学生成绩表")
print("5. 结束退出")
# 获取用户选择
choice = input("请输入菜单编号:")
# 执行对应功能
if choice == "1":
name = input("请输入学生姓名:")
id = input("请输入学生学号:")
Chinese = float(input("请输入语文成绩:"))
Math = float(input("请输入数学成绩:"))
English = float(input("请输入英语成绩:"))
total = Chinese + Math + English
scores = {"Chinese": Chinese, "Math": Math, "English": English, "Total": total}
student = Student(name, id, scores)
students.append(student)
print("学生成绩信息输入成功!\n")
elif choice == "2":
students.sort(key=lambda x: x.scores["Total"], reverse=True)
print("现在执行按总平均成绩排序功能!\n")
elif choice == "3":
students.sort(key=lambda x: x.id)
print("现在执行按学号排序功能!\n")
elif choice == "4":
# 输出表头
print("学号\t姓名\t语文\t数学\t英语\t总分")
for student in students:
print(student)
print("\n")
elif choice == "5":
print("程序结束,谢谢使用!")
break
else:
print("菜单编号输入有误,请重新输入!\n")
if __name__ == '__main__':
main()
```
您可以将代码保存为一个.py文件并运行,程序会依次输出菜单,根据用户选择执行对应功能。其中,学生信息通过`Student`类进行封装,可以更方便地进行排序和输出。
阅读全文