• 选课系统创建一个学生类和教师类两种身份权限,功能不同。
# -*- coding: utf-8 -*-


class Student:
    """
    学生类
    """

    # 学生初始化
    def __init__(self, name, password, dic_course=[]):
        self.name = name
        self.password = password
        self.dic_course = dic_course

    # 添加课程
    def add_course(self, password, course):
        """
        :param password: 密码
        :param course: 字符类型
        :return:
        """
        if password == self.password:
            self.dic_course.append(course)
            print(f'{self.name}学生成功添加课程{course}')
            self.print_course()
            return True
        return False

    def find_course(self, password):
        """
        查找课程
        :param password:  密码
        :return:
        """
        if password == self.password:
            self.print_course()
            return True
        return False

    def close(self, password):
        if password == self.password:
            self.name = ''
            self.password = ''
            self.dic_course = ''
            print('注销成功')

        else:
            print('请输入正确的账户密码')

    def print_course(self):
        """
        输出课程函数
        :return:
        """
        print("已有课程", end="")
        if self.dic_course != None and self.dic_course != []:
            for index_course in self.dic_course:
                print(f'{index_course}', end=" ")
        else:
            print("没有添加课程")


class Teacher:
    """
    老师类
    """

    def __init__(self, name, password, dic_course=[]):
        self.name = name
        self.password = password
        self.dic_course = dic_course

    def add_course(self, password, course):
        """
        添加课程
        :param password: 密码
        :param course: 字符类型
        :return:
        """
        if password == self.password:
            self.dic_course.append(course)
            print(f'{self.name}老师成功添加课程{course}')
            self.print_course()
            return self.dic_course
        return False

    def delete_course(self, password, course):
        if password == self.password:
            if isinstance(course, (str,)):
                try:
                    self.dic_course.remove(course)
                    print(f'{self.name}老师成功删除课程{course}')
                    self.print_course()
                    return self.dic_course
                except Exception:
                    print(f"不存在{course}课程")
            else:
                print("请输入正确的课程名字")

        return False

    def change_course(self, password, course, course_new):
        """
        修改课程表
        :param password: 密码

        :param course: 修改的课程
        :param course_new: 修改后的课程
        :return:
        """
        if password == self.password:
            if isinstance(course, (str,)):
                if self.dic_course.count(course) != 0:
                    try:
                        # 修改元素
                        for index_course in self.dic_course:
                            if index_course == course:
                                self.dic_course.remove(index_course)
                                self.dic_course.append(course_new)
                                print("修改成功")
                        return self.dic_course
                    except Exception:
                        print(f"不存在{course}课程")
                else:
                    print(f"不存在{course}课程")
            else:
                print("请输入正确的课程名字")

        return False

    def find_course(self, password):
        """
        查找课程
        :param password:  密码
        :return:
        """
        if password == self.password:
            self.print_course()
            return self.dic_course
        return False

    def close(self, password):
        if password == self.password:
            self.name = ''
            self.password = ''

            print('注销成功')
            return self.dic_course

        else:
            print('请输入正确的账户密码')

    def print_course(self):
        """
        输出课程函数
        :return:
        """

        print("已有课程", end="")
        for index_course in course_list:
            print(f'{index_course}', end=" ")


def func_student(num_student):
    """
    学生登陆后的函数
    :param num_student: 学生命令标志
    :return: 用户对象
    """

    # 请选择您的操作:1.查询/2.选课/3.销户/4.退出(请输入序号)
    if num_student == '1':
        pwd2 = input('请输入您的密码:')
        while pwd2 != student.password:
            print('您输入的密码不正确,请重新输入!')
            pwd2 = input('请输入您的密码:')


        else:
            student.find_course(pwd2)

        # return user_list

    elif num_student == '2':

        pwd2 = input('请输入您的密码:')
        while pwd2 != student.password:
            print('您输入的密码不正确,请重新输入!')
            pwd2 = input('请输入您的密码:')
        else:
            course = input('请输入课程:')
            student.add_course(pwd2, course)

        # return user_list

    elif num_student == '3':
        pwd2 = input('请输入您的密码:')
        while pwd2 != student.password:
            print('您输入的密码不正确,请重新输入!')
            pwd2 = input('请输入您的密码:')
        else:
            student.close(pwd2)
            user_list.remove(user1)
            return True

        # return user_list

    elif num_student == '4':
        print('您已成功退出!')
        return True

    else:
        print('请输入正确的选项!')

    # return user_list


def func_teacher(num_teacher):
    """
    老师登陆后执行的操作
    :param num_teacher: 命令
    :return:
    """
    # 请选择您的操作:1.查询/2.选课/3.修改课程/4.删除课程/5.销户/6.退出(请输入序号)
    if num_teacher == '1':
        pwd2 = input('请输入您的密码:')
        while pwd2 != teacher.password:
            print('您输入的密码不正确,请重新输入!')
            pwd2 = input('请输入您的密码:')
        else:

            teacher.find_course(pwd2)

        # return user_list
    elif num_teacher == '2':

        pwd2 = input('请输入您的密码:')
        while pwd2 != teacher.password:
            print('您输入的密码不正确,请重新输入!')
            pwd2 = input('请输入您的密码:')
        else:
            for index in course_list:
                print(f"{index}、", end=" ")
            course = input('请输入课程:')
            teacher.add_course(pwd2, course)

        # return user_list

    elif num_teacher == '3':
        pwd2 = input('请输入您的密码:')
        while pwd2 != teacher.password:
            print('您输入的密码不正确,请重新输入!')
            pwd2 = input('请输入您的密码:')
        else:
            for index in course_list:
                print(f"{index}、", end=" ")
            course = input('请输入修改的课程:')
            course_new = input('请输入修改后的课程:')
            teacher.change_course(pwd2, course, course_new)

        # return user_list

    elif num_teacher == '4':
        pwd2 = input('请输入您的密码:')
        while pwd2 != teacher.password:
            print('您输入的密码不正确,请重新输入!')
            pwd2 = input('请输入您的密码:')
        else:
            for index in course_list:
                print(f"{index}、", end=" ")
            course = input('请输入修改删除的课程:')
            teacher.delete_course(pwd2, course=course)

    elif num_teacher == '5':
        pwd2 = input('请输入您的密码:')
        while pwd2 != teacher.password:
            print('您输入的密码不正确,请重新输入!')
            pwd2 = input('请输入您的密码:')
        else:
            teacher.close(pwd2)
            user_list.remove(user1)
            return True


    elif num_teacher == '6':
        print('您已成功退出!')
        return True

    else:
        print('请输入正确的选项!')


def func(flag):
    """
    登陆后函数
    :param flag: 为1是学生  为2是教师
    :param user_list: 用户列表
    :param course_list: 课程
    :return:
    """
    # print(course_list)

    while True:
        # 学生操作
        if flag == 1:
            print('\n')
            num_student = input('请选择您的操作:1.查询/2.选课/3.销户/4.退出(请输入序号)')
            st_flag = func_student(num_student)
            if st_flag:
                break


        # 教师操作
        elif flag == 2:
            print('\n')
            num_teacher = input('1.查询/2.选课/3.修改课程/4.删除课程/5.销户/6.退出(请输入序号)')
            te_flag = func_teacher(num_teacher)
            if te_flag:
                break


if __name__ == '__main__':
    user_list = []
    course_list = ['语文', '数学', '英语', '计算机']

    while True:
        print("========欢迎来到选课系统==========")
        num = input('请选择您的操作:1.创建学生账号/2.创建老师账号/3.登录/4.退出(请输入序号)')

        if num == '1':
            index_user = []
            user = input('请输入您的账户名:')
            pwd = input('请输入您的密码:')
            pwd1 = input('请再次输入您的密码:')
            if pwd == pwd1:
                student = Student(user, pwd)
                index_user.append(user)
                index_user.append(pwd)
                index_user.append('1')
                user_list.append(index_user)
                index_user = []

                print('创建学生账户成功!')
            else:
                print('您两次输入的密码不一致,请重新输入!')

        elif num == '2':
            index_user = []
            user = input('请输入您的账户名:')
            pwd = input('请输入您的密码:')
            pwd1 = input('请再次输入您的密码:')
            if pwd == pwd1:
                teacher = Teacher(user, pwd, course_list)
                index_user.append(user)
                index_user.append(pwd)
                index_user.append('2')
                user_list.append(index_user)
                print('创建教师账户成功!')
            else:
                print('您两次输入的密码不一致,请重新输入!')

        if num == '3':
            state = False
            while True:
                flag = False
                user = input('请输入您的账户名:')
                pwd = input('请输入您的密码:')

                for user_flag in user_list:
                    # print(user_flag,type(user_flag))
                    if user == user_flag[0]:
                        flag = True
                        break

                if flag:
                    for user1 in user_list:
                        if user1[0] == user and user1[1] == pwd:
                            # 学生
                            if user1[2] == '1':
                                func(1)
                                state = True

                                break
                            elif user1[2] == '2':
                                # 老师
                                func(2)
                                state = True
                                break

                            print('您已登录成功!')

                            break
                    else:
                        print('您输入的账户名或者密码错误,请重新输入!')


                else:
                    print("没有创建该用户")
                    break

                if state:
                    state = False
                    break

        elif num == '4':
            print('您已成功退出,欢迎下次再来!')
            break

        else:
            print('请输入正确的选项!')

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐