Python顺序表实现学生信息管理系统:代码示例与讲解

顺序表是一种线性表,它采用顺序存储结构,即用一组地址连续的存储单元依次存储线性表中的数据元素。顺序表中的元素可以通过下标来访问和修改。在Python中,可以使用列表来实现顺序表的功能。

代码示例

class SequenceTSet():
   def __init__(self):
     self.TSet = []

   def readFile(self, filname):
     #补充代码,能将文件中的信息,读入到self.Tset中
     with open(filname, 'r') as f:
         for line in f:
             sid, name, gender, height = line.strip().split()
             self.TSet.append((int(sid), name, int(gender), float(height)))

   def writeFile(self, filname):
     #补充代码,能将self.Tset信息,写入到文件filname中
     with open(filname, 'w') as f:
         for student in self.TSet:
             f.write(f'{student[0]} {student[1]} {student[2]} {student[3]}
')

   def sortAndprint(self,filename):
      #补充代码,对TSet中的学生的身高进行升序排序
      self.TSet.sort(key=lambda x: x[3])
      print(f'排序后的学生信息:\n{self.TSet}')

   def cntHeight(self, y):
     #补充代码,输出TSet中身高大于y的学生个数
     count = 0
     for student in self.TSet:
         if student[3] > y:
             count += 1
     print(f'身高大于{y}的学生人数为:{count}')

   def splitSet(self, x,filename):
      #补充代码,能将TSet中性别为x的学生都删除
      self.TSet = [student for student in self.TSet if student[2] != x]
      print(f'删除性别为{x}的学生后的学生信息:\n{self.TSet}')

   def del(self, sid):
      #补充代码,删除TSet中学号为sid的学生
      for i, student in enumerate(self.TSet):
          if student[0] == sid:
              del self.TSet[i]
              print(f'删除学号为{sid}的学生后的学生信息:\n{self.TSet}')
              return
      print(f'学号为{sid}的学生不存在!')

   def insert(self, hei):
      #补充代码,添加身高为hei的学生到TSet中,要求添加学生后,学生表中的身高保持有升序。
      new_student = (len(self.TSet) + 1, '新学生', 0, hei)
      self.TSet.append(new_student)
      self.TSet.sort(key=lambda x: x[3])
      print(f'添加身高为{hei}的学生后的学生信息:\n{self.TSet}')

# 建立学生信息文件
student_info = SequenceTSet()
student_info.readFile('student.txt')

# 调用学生类中的所有函数
student_info.sortAndprint('student.txt')
student_info.cntHeight(1.70)
student_info.splitSet(0,'student.txt')
student_info.del(2)
student_info.insert(1.75)

# 重新存回到文件 student.txt
student_info.writeFile('student.txt')

代码解释

  1. SequenceTSet

    • __init__ 方法初始化一个空列表 self.TSet 来存储学生信息。
    • readFile 方法读取文件,将每行信息解析成元组并添加到 self.TSet 列表中。
    • writeFile 方法将 self.TSet 中的每个学生信息写入文件。
    • sortAndprint 方法对 self.TSet 中的学生按身高升序排序,并打印排序后的信息。
    • cntHeight 方法统计身高大于给定值的学生数量。
    • splitSet 方法删除性别为给定值的全部学生。
    • del 方法删除学号为给定值的单个学生。
    • insert 方法插入一个新的学生信息,并保持身高升序排列。
  2. 主程序

    • 创建 SequenceTSet 对象 student_info,并从 student.txt 文件读取学生信息。
    • 调用各个函数进行操作,例如排序、统计、删除、插入等。
    • 最后将更新后的学生信息写入 student.txt 文件。

代码运行结果

运行代码后,student.txt 文件将被更新,包含排序后的学生信息。

总结

本文以学生信息管理系统为例,展示了使用 Python 列表实现顺序表的代码示例。顺序表是数据结构中基础且重要的概念,它在实际应用中广泛用于存储和管理数据。通过学习本文,您可以更好地理解顺序表的特点和应用方法。

Python顺序表实现学生信息管理系统:代码示例与讲解

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

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