- 选课系统创建一个学生类和教师类两种身份权限,功能不同。
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: 用户对象 """ if num_student == '1': pwd2 = input('请输入您的密码:') while pwd2 != student.password: print('您输入的密码不正确,请重新输入!') pwd2 = input('请输入您的密码:') else: student.find_course(pwd2) elif num_student == '2': pwd2 = input('请输入您的密码:') while pwd2 != student.password: print('您输入的密码不正确,请重新输入!') pwd2 = input('请输入您的密码:') else: course = input('请输入课程:') student.add_course(pwd2, course) elif num_student == '3': pwd2 = input('请输入您的密码:') while pwd2 != student.password: print('您输入的密码不正确,请重新输入!') pwd2 = input('请输入您的密码:') else: student.close(pwd2) user_list.remove(user1) return True elif num_student == '4': print('您已成功退出!') return True else: print('请输入正确的选项!') def func_teacher(num_teacher): """ 老师登陆后执行的操作 :param num_teacher: 命令 :return: """ if num_teacher == '1': pwd2 = input('请输入您的密码:') while pwd2 != teacher.password: print('您输入的密码不正确,请重新输入!') pwd2 = input('请输入您的密码:') else: teacher.find_course(pwd2) 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) 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) 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: """ 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: breakif __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: 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 breakelif user1[2] == '2': func(2) state = True breakprint('您已登录成功!')break else: print('您输入的账户名或者密码错误,请重新输入!') else: print("没有创建该用户") break if state: state = False break elif num == '4': print('您已成功退出,欢迎下次再来!') break else: print('请输入正确的选项!')