以下是修改后的程序:

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() 函数的调用,将修改后的学生记录存储到文件中。这样,程序可以在每次插入学生记录时将修改后的学生记录存储到文件中,避免了程序结束时数据丢失的问题。

Python 学生管理系统:数据持久化改进

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

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