实验准备: 定义学生类型,包括学号、姓名、三门课成绩等。 定义函数实现5名学生信息的输入、输出、求总分、排序等操作; 编写主函数(数据结构)
时间: 2024-09-06 17:08:09 浏览: 80
实验准备通常涉及创建数据结构和定义相关的函数来处理特定任务。在这个场景下,我们想要模拟一个管理学生信息的系统:
首先,我们可以定义一个名为`Student`的类,它包含学生的属性如`student_id`, `name`, 和`grades`(例如,一个包含三门课程分数的列表)。这个类可能会有构造函数用于初始化这些属性,以及一些方法如`input_info()`用于接收学生信息输入,`output_info()`展示学生信息,`calculate_total_score()`计算总分,和`sort_students()`对学生成绩进行排序。
```python
class Student:
def __init__(self, student_id, name):
self.student_id = student_id
self.name = name
self.grades = [0, 0, 0] # 初始化为三个0,代表未分配成绩
def input_info(self, course1, course2, course3):
self.grades[0] = course1
self.grades[1] = course2
self.grades[2] = course3
def output_info(self):
print(f"学生ID: {self.student_id}, 姓名: {self.name}, 成绩: {self.grades}")
def calculate_total_score(self):
return sum(self.grades)
@staticmethod
def sort_students(students):
sorted_students = sorted(students, key=lambda x: x.calculate_total_score(), reverse=True)
return sorted_students
```
接下来,在主函数`main()`中,可以创建一个包含五名学生的列表,并调用上述方法来完成输入、输出、求总分和排序的操作:
```python
def main():
students_list = []
for _ in range(5):
student_id = int(input("请输入学生ID: "))
name = input("请输入学生姓名: ")
grades = [int(x) for x in input("请输入三门课程的成绩, 分数之间用逗号隔开: ").split(",")]
new_student = Student(student_id, name)
new_student.input_info(*grades)
students_list.append(new_student)
# 输出原始信息
for student in students_list:
student.output_info()
# 求总分并排序
total_scores = [student.calculate_total_score() for student in students_list]
sorted_students = Student.sort_students(students_list)
print("\n按总分从高到低排序的学生:")
for student in sorted_students:
print(student.output_info())
if __name__ == "__main__":
main()
```
阅读全文