編与一个程序,买现一下功能, 要求 1设计一个学生student兴,包含学号、姓名、出生日期、性别等字段 2.从input.txt(从附件下载)中读取其中的学生信息,并存入学生集合list中 3•对学生集合lis七行排序,按照出生日期从早到晚排序(即年龄由大到小) 4.将相序后的字生集合1ist的出到outputut文件中,输曲格式后imnput txt :一行一个学生,依次输出学号、 姓名、正山生日期、性別并用空格隔
时间: 2024-02-03 15:14:22 浏览: 57
以下是对应的 Python 代码实现:
```python
class Student:
def __init__(self, sno, name, birthdate, gender):
self.sno = sno
self.name = name
self.birthdate = birthdate
self.gender = gender
def __str__(self):
return f"{self.sno} {self.name} {self.birthdate} {self.gender}"
def __repr__(self):
return self.__str__()
def read_students(filename):
students = []
with open(filename, "r") as f:
for line in f:
sno, name, birthdate, gender = line.strip().split()
students.append(Student(sno, name, birthdate, gender))
return students
def sort_students(students):
students.sort(key=lambda s: s.birthdate)
def write_students(filename, students):
with open(filename, "w") as f:
for student in students:
f.write(str(student) + "\n")
if __name__ == "__main__":
students = read_students("input.txt")
sort_students(students)
write_students("output.txt", students)
```
输入文件 `input.txt` 中每行为一个学生信息,包含学号、姓名、出生日期、性别,以空格隔开。程序首先定义了一个 `Student` 类表示学生,包含学号、姓名、出生日期和性别等字段。然后通过 `read_students` 函数读取 `input.txt` 文件中的学生信息,存入一个学生集合 `students` 中。接着通过 `sort_students` 函数对学生集合进行排序,按照出生日期从早到晚排序(即年龄由大到小)。最后通过 `write_students` 函数将排序后的学生集合写入到输出文件 `output.txt` 中,每行输出一个学生的信息,包含学号、姓名、出生日期、性别,以空格隔开。
阅读全文