以下是修改后的程序:

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

修改函数调用实训程序在 main前端调用读入学生记录函数 inputDatafromFile在插入学生记录函数中增加调用数据存盘函数 outputDatatoFile。

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

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