挑战要求:

采用面向对象的编程思想,完成教务管理系统的开发。教务管理系统可以管理在校学生的成绩信息,通过控制台菜单与用户交互,具体的功能如下。

        1.添加学生成绩:根据输入的学生姓名、语文成绩、数学成绩、英语成绩,记录在系统中

 1.1输入学生姓名、语文成绩、数学成绩、英语成绩

 1.2检查学生姓名是否已存在,如果学生不存在,再添加(存在则,不添加)

1.3验证成绩范围(0-100分)

1.4 创建学生对象并添加到系统

        2.修改学生成绩:根据输入的学生姓名,修改对应的学生成绩 

2.1 输入要修改的学生姓名

2.2根据姓名查找该学生,显示该生当前成绩信息

 2.3 输入新的语文、数学、英语成绩

2.4更新学生成绩数据 

         3.删除学生成绩:根据输入的学生姓名,删除对应的学生成绩

        4.查询指定学生成绩:根据输入的学生姓名,查找对应的学生成绩,并输出

4.1输出格式为:"姓名:张三|语文:85|数学:90|英语:88 |总分:263"5.展示全部学生成绩:展示出系统中所有学生的成绩

✨提示:每个学生的数据可以用列表来保存

准备好了吗?码农们?

Aswer:

class Student:
    #初始化
    def __init__(self, name, chinise,math,english):
        self.name = name
        self. chinise=int(chinise)
        self.math=int(math)
        self.english=int(english)
    #定义输出形式
    def __str__(self):
        return f"姓名:{self.name}|语文:{self.chinise}|数学:{self.math}|英语: {self.english} |总分:{self.chinise+self.math+self.english}  "
    #更新数据
    def Update_score(self,chinise=None,math=None,english=None):
        if chinise is not None:
            self.chinise=chinise
        if math is not None:
            self.math=math
        if english is not None:
            self.english=english
        return self

class Edumanagement():
    #新建列表用于存储学生信息
    def __init__(self):
        self.newnum = []
    #添加
    def add_score(self):
        name=input('请输入名字 : ')
        chinise = int(input('请输入语文成绩 : '))
        math = int(input('请输入数学成绩 : '))
        english = int(input('请输入英语成绩 : '))
        # 检查学生姓名是否已存在,如果学生不存在,再添加(存在则,不添加)
        for i in self.newnum:
            if i.name == name:
                print('已经存储过该同学的信息!')
                #该同学已经存在函数什么也不返回
                return
        #  验证成绩范围(0-100分)
        if 0<=chinise<=100 and 0<=math<=100 and 0<=english<=100:
            #创建学生对象并添加到系统

            stu=Student(name,chinise,math,english)
            self.newnum.append(stu)
            print('添加成功!')
        else:
            print('输入成绩必须在1—100之间!')
    #修改
    def change_score(self):
        name=input('输入您想修改的学生名字 :')
        for i in self.newnum:
            if i.name == name:
                print(i)
                chinise = input('请输入新的语文成绩(直接回车不修改): ')
                math = input('请输入新的数学成绩(直接回车不修改): ')
                english = input('请输入新的英语成绩(直接回车不修改): ')

                new_chinise=int(chinise) if chinise else None
                new_math=int(math) if math else None
                new_english=int(english) if english else None

                i.Update_score(new_chinise,new_math,new_english)
                print(f'修改成功!{i}')
            else:
                print('教务系统没有该学生!')
            return
    #删除
    def delete_score(self):
        name=input('输入您想删除的学生名字 : ')
        #使用 py内置函数 enumerate 可以获取 索引和值
        for i, student in enumerate(self.newnum):
            if student.name == name:
                del self.newnum[i]
                print('删除成功!')
                return
            print('教务系统没有该学生!')

    # 查询
    def find_score(self):
        name=input('输入您想查找的学生名字 ')
        for i in self.newnum:
            if i.name == name:
                print(i)
                return
            print('教务系统没有该学生!')
    #展示所有信息
    def show_total(self):
        print('************全部成绩*****************')
        print(f'一共有{len(self.newnum)}个学生。')
        if len(self.newnum)==0:\
            print('教务系统中没有学生信息!')
        for i in self.newnum:
            print(i)
        return

    def show_menu(self):
        print("\n" + "=" * 50)
        print("教务管理系统")
        print("=" * 50)
        print("1. 添加学生成绩")
        print("2. 修改学生成绩")
        print("3. 删除学生成绩")
        print("4. 查询指定学生成绩")
        print("5. 展示全部学生成绩")
        print("0. 退出系统")
        print("=" * 50)

#测试
if __name__=="__main__":
    sys=Edumanagement()
    while True:
        sys.show_menu()
        choose=input('请输入(0-5): ')
        if choose=='0':
            print('您已成功退出系统!')
            break
        elif choose=='1':
            sys.add_score()
        elif choose=='2':
            sys.change_score()
        elif choose=='3':
            sys.delete_score()
        elif choose=='4':
            sys.find_score()
        elif choose=='5':
            sys.show_total()
        else:
            print('输入错误!')
        input('\n按下回车。再次输入')

希望我的博文能够对你有帮助!🎊

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐