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_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('请输入正确的选项!')
更多推荐
已为社区贡献1条内容
所有评论(0)