6. 添加学生功能的实现

实现方法

import student
from student import Student
import tools


class ClassRoom:
    '''班级类型'''
    def __init__(self, class_name):
        self.class_name = class_name  # 班级名称
        self.student = []  # 保存学生信息

    def add_student(self):
        student_name = input('请输入学生姓名: ')
        if tools.get_display_width(student_name) >= 20:
            print('学生的名字太长,添加失败!')
            return
        chinese_score = int(input('请输入学生的语文成绩: '))
        if chinese_score < 0 or chinese_score > 100:
            print('学生成绩不在合法范围内,添加失败!')
            return
        math_score = int(input('请输入学生的数学成绩: '))
        if math_score < 0 or math_score > 100:
            print('学生成绩不在合法范围内,添加失败!')
            return
        stu = Student(student_name, chinese_score, math_score)
        self.student.append(stu)
        print('添加学生', student_name, '成功!')

    def show_class_menu(self):
        '此函数用来显示操作菜单'
        print(f'        {self.class_name}-班级管理')
        print('+-----------------------------------+')
        print('| 1) 添加学生                       |')
        print('| 2) 修改学生的语文成绩             |')
        print('| 3) 修改学生的数学成绩             |')
        print('| 4) 删除学生                       |')
        print('| 5) 列出所有学生的成绩             |')
        print('| 6) 按语文成绩从高到低显示学生成绩 |')
        print('| 7) 按数学成绩从高到低显示学生成绩 |')
        print('| 0) 退出班级                       |')
        print('+-----------------------------------+')

    def student_manager(self):
        '''此函数用来学生数据'''
        while True:
            self.show_class_menu()
            sel = input('请选择:')
            match sel:
                case '1':  # 1) 添加学生
                    self.add_student()
                case '2':  # 2) 修改学生的语文成绩
                    pass
                case '3':  # 3) 修改学生的数学成绩
                    pass
                case '4':  # 4) 删除学生
                    pass
                case '5':  # 5) 列出所有学生的成绩
                    pass
                case '6':  # 6) 按语文成绩从高到低显示学生成绩
                    pass
                case '7':  # 7) 按数学成绩从高到低显示学生成绩
                    pass
                case '0':  # 0) 退出班级
                    return
                case _:
                    print('不存在的选项,请重新输入')
                    import time
                    time.sleep(2)  # 让程序睡眠2秒


if __name__ == '__main__':
    cr1 = ClassRoom('一年1班')
    cr1.student.append(Student('张三', 100, 61))
    cr1.student.append(Student('李四', 70, 81))
    cr1.student.append(Student('王五', 90, 71))
    cr1.student.append(Student('赵六', 80, 91))
    cr1.student_manager()