Python顺序表实现学生信息管理系统:代码示例与讲解
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')
代码解释
-
SequenceTSet类__init__方法初始化一个空列表self.TSet来存储学生信息。readFile方法读取文件,将每行信息解析成元组并添加到self.TSet列表中。writeFile方法将self.TSet中的每个学生信息写入文件。sortAndprint方法对self.TSet中的学生按身高升序排序,并打印排序后的信息。cntHeight方法统计身高大于给定值的学生数量。splitSet方法删除性别为给定值的全部学生。del方法删除学号为给定值的单个学生。insert方法插入一个新的学生信息,并保持身高升序排列。
-
主程序
- 创建
SequenceTSet对象student_info,并从student.txt文件读取学生信息。 - 调用各个函数进行操作,例如排序、统计、删除、插入等。
- 最后将更新后的学生信息写入
student.txt文件。
- 创建
代码运行结果
运行代码后,student.txt 文件将被更新,包含排序后的学生信息。
总结
本文以学生信息管理系统为例,展示了使用 Python 列表实现顺序表的代码示例。顺序表是数据结构中基础且重要的概念,它在实际应用中广泛用于存储和管理数据。通过学习本文,您可以更好地理解顺序表的特点和应用方法。
原文地址: http://www.cveoy.top/t/topic/n30D 著作权归作者所有。请勿转载和采集!