> 文档中心 > python选课系统

python选课系统

  • 选课系统创建一个学生类和教师类两种身份权限,功能不同。
# -*- 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_listdef 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:  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:      # 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    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('请输入正确的选项!')