编写程序1.从键盘输入5个学生的信息,包括学号、姓名、数学成绩、计算机成绩2.计算每个学生的平均分和总分3.按照总分从高到低排序
时间: 2023-12-16 18:55:54 浏览: 228
好的,这是一个比较复杂的程序,需要涉及到输入、计算和排序等多个步骤。以下是一个可能的实现:
```python
# 定义一个学生类
class Student:
def __init__(self, id, name, math_score, cs_score):
self.id = id
self.name = name
self.math_score = math_score
self.cs_score = cs_score
self.total_score = math_score + cs_score
self.avg_score = self.total_score / 2
# 定义一个输入函数,用于从键盘读取学生信息
def input_students():
students = []
for i in range(5):
id = input("请输入学号:")
name = input("请输入姓名:")
math_score = float(input("请输入数学成绩:"))
cs_score = float(input("请输入计算机成绩:"))
student = Student(id, name, math_score, cs_score)
students.append(student)
return students
# 定义一个排序函数,按照总分从高到低排序
def sort_students(students):
students.sort(key=lambda x: x.total_score, reverse=True)
# 定义一个输出函数,用于输出学生信息
def output_students(students):
print("学号\t姓名\t数学成绩\t计算机成绩\t总分\t平均分")
for student in students:
print(f"{student.id}\t{student.name}\t{student.math_score}\t\t{student.cs_score}\t\t{student.total_score}\t{student.avg_score}")
# 主函数
def main():
students = input_students() # 输入学生信息
for student in students:
student.total_score = student.math_score + student.cs_score # 计算总分
student.avg_score = student.total_score / 2 # 计算平均分
sort_students(students) # 排序
output_students(students) # 输出学生信息
# 调用主函数
main()
```
运行程序后,会提示输入每个学生的信息,然后会按照总分从高到低排序输出所有学生的信息,包括学号、姓名、数学成绩、计算机成绩、总分和平均分。
阅读全文