这个很多不懂希望Dao佬指导一下

编写一个学生管理系统,使用面向对象编程思想

系统支持4个功能:

查询全部学生

新增一个学生

根据学号修改成绩

根据学号删除学生

该项目分为3个类,学生类、学生数据库类以及学生管理系统类

学生类有4个属性,学号、姓名、性别、成绩以及一个获取自身信息的函数

学生数据库类用于存储学生类实例,并提供增删改查各种函数

学生管理系统类用于展示菜单、接收用户输入、展示功能结果

学生学号不允许重复,学生顺序有序

具体代码实现如下,分别对集中状态进行判断输出实例就行,按照面向对象的思想,望采纳!

class Student:
    def __init__(self, id, name, gender, score):
        self.id = id
        self.name = name
        self.gender = gender
        self.score = score

    def get_info(self):
        return f"学号:{self.id},姓名:{self.name},性别:{self.gender},成绩:{self.score}"


class StudentDB:
    def __init__(self):
        self.students = []

    def add_student(self, student):
        for s in self.students:
            if s.id == student.id:
                return False
        self.students.append(student)
        self.students.sort(key=lambda x: x.id)
        return True

    def remove_student(self, id):
        for i, s in enumerate(self.students):
            if s.id == id:
                self.students.pop(i)
                return True
        return False

    def update_score(self, id, score):
        for s in self.students:
            if s.id == id:
                s.score = score
                return True
        return False

    def query_all_students(self):
        return [s.get_info() for s in self.students]


class StudentManagementSystem:
    def __init__(self):
        self.db = StudentDB()

    def show_menu(self):
        print("1. 查询全部学生")
        print("2. 新增一个学生")
        print("3. 根据学号修改成绩")
        print("4. 根据学号删除学生")
        print("0. 退出系统")

    def run(self):
        while True:
            self.show_menu()
            choice = input("请输入您的选择:")
            if choice == "1":
                students = self.db.query_all_students()
                for s in students:
                    print(s)
            elif choice == "2":
                id = input("请输入学号:")
                name = input("请输入姓名:")
                gender = input("请输入性别:")
                score = input("请输入成绩:")
                student = Student(id, name, gender, score)
                if self.db.add_student(student):
                    print("添加成功!")
                else:
                    print("学号已存在,添加失败!")
            elif choice == "3":
                id = input("请输入学号:")
                score = input("请输入成绩:")
                if self.db.update_score(id, score):
                    print("修改成功!")
                else:
                    print("学号不存在,修改失败!")
            elif choice == "4":
                id = input("请输入学号:")
                if self.db.remove_student(id):
                    print("删除成功!")
                else:
                    print("学号不存在,删除失败!")
            elif choice == "0":
                print("谢谢使用,再见!")
                break
            else:
                print("输入错误,请重新输入!")


if __name__ == "__main__":
    system = StudentManagementSystem()
    system.run()