Python 学生信息管理系统:使用类实现学生信息读取、排序、筛选和维护
class Student():
def __init__(self, sid, name, gender, height):
self.sid = sid
self.name = name
self.gender = gender
self.height = height
class SequenceTSet():
def __init__(self):
self.TSet = []
def readFile(self, filname):
with open(filname, 'r') as f:
for line in f:
sid, name, gender, height = line.strip().split()
self.TSet.append(Student(sid, name, int(gender), float(height)))
def writeFile(self, filname):
with open(filname, 'w') as f:
for student in self.TSet:
f.write(f"{student.sid} {student.name} {student.gender} {student.height}
")
def sortAndprint(self,filename):
sorted_TSet = sorted(self.TSet, key=lambda student: student.height)
with open(filename, 'w') as f:
for student in sorted_TSet:
f.write(f"{student.sid} {student.name} {student.gender} {student.height}
")
for student in sorted_TSet:
print(f"{student.sid} {student.name} {student.gender} {student.height}")
def cntHeight(self, y):
cnt = 0
for student in self.TSet:
if student.height > y:
cnt += 1
print(f"There are {cnt} students whose height is greater than {y}.")
def splitSet(self, x,filename):
new_TSet = [student for student in self.TSet if student.gender != x]
self.TSet = new_TSet
self.writeFile(filename)
def del(self, sid):
new_TSet = [student for student in self.TSet if student.sid != sid]
self.TSet = new_TSet
def insert(self, hei):
new_student = Student(str(len(self.TSet) + 1), "New Student", 0, hei)
self.TSet.append(new_student)
self.TSet = sorted(self.TSet, key=lambda student: student.height)
TSet = SequenceTSet()
TSet.readFile("student.txt")
TSet.sortAndprint("sorted_student.txt")
TSet.cntHeight(1.7)
TSet.splitSet(1, "student_without_male.txt")
TSet.del("1")
TSet.insert(1.8)
TSet.writeFile("student.txt")
该代码定义了两个类:Student 类用于存储单个学生的信息,SequenceTSet 类用于管理学生信息列表,包括读取、写入、排序、筛选、删除和添加学生等功能。
使用方法:
- 确保存在名为
student.txt的文件,其中包含学生信息,每行信息以空格分隔,分别为学号、姓名、性别(0 代表女性,1 代表男性)、身高。 - 运行代码,程序会自动读取
student.txt文件中的信息,并进行以下操作:- 对学生按身高进行升序排序,并将排序后的结果写入
sorted_student.txt文件。 - 统计身高大于 1.7 米的学生人数并打印结果。
- 删除性别为 1 (男性)的学生,并将结果写入
student_without_male.txt文件。 - 删除学号为 1 的学生。
- 添加一个身高为 1.8 米的新学生。
- 将更新后的学生信息写入
student.txt文件。
- 对学生按身高进行升序排序,并将排序后的结果写入
程序功能:
- readFile: 从文件读取学生信息,并将信息存储到
TSet列表中。 - writeFile: 将
TSet列表中的学生信息写入文件。 - sortAndprint: 对
TSet列表中的学生按身高进行升序排序,并将结果打印到控制台和写入文件。 - cntHeight: 统计
TSet列表中身高大于指定高度的学生数量。 - splitSet: 从
TSet列表中删除指定性别的学生,并将结果写入文件。 - del: 从
TSet列表中删除指定学号的学生。 - insert: 添加一个新学生到
TSet列表中,并保持列表按身高升序排序。
该代码示例展示了如何使用 Python 类来实现一个简单但功能强大的学生信息管理系统。您可以根据自己的需求进行修改和扩展,例如添加其他功能,例如搜索、统计等。
原文地址: https://www.cveoy.top/t/topic/n30S 著作权归作者所有。请勿转载和采集!