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')

Python 学生信息管理系统:基于顺序表的实现

原文地址: https://www.cveoy.top/t/topic/nZIH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录