Python 学生管理系统:数据持久化改进
以下是修改后的程序:
class Student:
def __init__(self, name, number, gender, age, score):
self.name = name
self.number = number
self.gender = gender
self.age = age
self.score = score
def __str__(self):
return f'{self.name} {self.number} {self.gender} {self.age} {self.score}'
def __repr__(self):
return self.__str__()
def inputDatafromFile():
students = []
with open('students.txt', 'r') as f:
lines = f.readlines()
for line in lines:
data = line.strip().split(' ')
student = Student(data[0], data[1], data[2], int(data[3]), int(data[4]))
students.append(student)
return students
def outputDatatoFile(students):
with open('students.txt', 'w') as f:
for student in students:
f.write(str(student) + '\n')
def insertStudent(students):
name = input('请输入学生姓名:')
number = input('请输入学生学号:')
gender = input('请输入学生性别:')
age = int(input('请输入学生年龄:'))
score = int(input('请输入学生成绩:'))
student = Student(name, number, gender, age, score)
students.append(student)
outputDatatoFile(students)
def main():
students = inputDatafromFile()
while True:
print('1. 插入学生记录')
print('2. 删除学生记录')
print('3. 修改学生记录')
print('4. 查询学生记录')
print('5. 显示所有学生记录')
print('0. 退出程序')
choice = int(input('请输入你的选择:'))
if choice == 1:
insertStudent(students)
elif choice == 0:
break
else:
print('暂不支持此功能!')
if __name__ == '__main__':
main()
修改后的程序中,在 main() 函数之前调用了 inputDatafromFile() 函数,将文件中的学生记录读入到程序中。在 insertStudent() 函数中,增加了一个 outputDatatoFile() 函数的调用,将修改后的学生记录存储到文件中。这样,程序可以在每次插入学生记录时将修改后的学生记录存储到文件中,避免了程序结束时数据丢失的问题。
原文地址: https://www.cveoy.top/t/topic/oUxh 著作权归作者所有。请勿转载和采集!