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, filename):
with open(filename, 'r') as f:
for line in f:
sid, name, gender, height = line.strip().split()
student = Student(sid, name, int(gender), float(height))
self.TSet.append(student)
def writeFile(self, filename):
with open(filename, 'w') as f:
for student in self.TSet:
f.write('{} {} {} {}
'.format(student.sid, student.name, student.gender, student.height))
def sortAndprint(self, filename):
sorted_TSet = sorted(self.TSet, key=lambda x: x.height)
with open(filename, 'w') as f:
for student in sorted_TSet:
f.write('{} {} {} {}
'.format(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('身高大于{}的学生个数为{}'.format(y, cnt))
def splitSet(self, x, filename):
new_TSet = []
for student in self.TSet:
if student.gender != x:
new_TSet.append(student)
self.TSet = new_TSet
self.writeFile(filename)
def delStudent(self, sid):
new_TSet = []
for student in self.TSet:
if student.sid != sid:
new_TSet.append(student)
self.TSet = new_TSet
def insert(self, height):
new_student = Student(str(len(self.TSet) + 1), '', 0, height)
self.TSet.append(new_student)
self.TSet = sorted(self.TSet, key=lambda x: x.height)
seqTSet = SequenceTSet() seqTSet.readFile('student.txt')
进行数据维护
seqTSet.sortAndprint('sorted_student.txt') seqTSet.cntHeight(1.7) seqTSet.splitSet(0, 'female_student.txt') seqTSet.delStudent('1') seqTSet.insert(1.75)
重新存回文件
seqTSet.writeFile('student.txt')
原文地址: https://www.cveoy.top/t/topic/nZIH 著作权归作者所有。请勿转载和采集!