''' 角色: 学生、管理员 功能: 登陆 : 管理员和学生都可以登陆,且登陆之后可以自动区分身份 选课 : 学生可以自由的为自己选择课程 创建用户 : 选课系统是面向本校学生的,因此所有的用户都应该由管理员完成 查看选课情况 :每个学生可以查看自己的选课情况,而管理员应该可以查看所有学生的信息 工作流程: 登陆 :用户输入用户名和密码 判断身份 :在登陆成果的时候应该可以直接判断出用户的身份 是学生还是管理员 学生用户 :对于学生用户来说,登陆之后有三个功能 1、查看所有课程 2、选择课程 3、查看所选课程 4、退出程序 管理员用户:管理员用户除了可以做一些查看功能之外,还有很多创建工作 1、创建课程 2、创建学生学生账号 3、查看所有课程 4、查看所有学生 5、查看所有学生的选课情况 6、退出程序 ''' import json class Student: def __init__(self,name): self.name = name def check_course(self): # 查看所有课程 with open("course", 'r', encoding="utf-8") as f: # course是课程文件 tmp = {} for index, i in enumerate(f.read().split("|"), 1): print(index, i) tmp[str(index)] = i return tmp def select_course(self): # 选择课程 tmp = self.check_course() n = input("请选择你要选的课程的序号") if n in tmp: # 判断选的课在不在课程列表里 with open("user_course", 'r', encoding="utf8") as f: # user_course是用户和所选课程的文件, user_course = json.load(f) # 是一个字典, 键是用户名, 值是所选课的列表 if user_course.get(self.name): # 用户和课程里有没有那个用户 user_course.get(self.name).append(tmp[n]) else: user_course.setdefault(self.name, [tmp[n]]) with open("user_course", 'w', encoding="utf-8") as f: json.dump(user_course, f, ensure_ascii=False) def check_select_course(self): # 查看所选课程 with open("user_course", 'r', encoding="utf8") as f: user_course = json.load(f) print(user_course.get(self.name)) def exit(self): # 退出程序 exit() def show(self): # student_func 这个字典是功能名和要执行的函数 student_func = {"查看课程": self.check_course, '选择课程': self.select_course, "查看所选课程": self.check_select_course,"退出":self.exit} while 1: tmp = {} # 修改gongneng这个字典, 保留索引和函数 for index, i in enumerate(student_func, 1): print(index, i) tmp[str(index)] = student_func[i] C = input("请输入你的选择") # 根据不同的选择, 执行不同的函数 if C in tmp: tmp[C]() class Administrator: def __init__(self, name): self.name = name def check_all_course(self): # 查看所有课程 with open("course", 'r', encoding="utf-8") as f: # course是课程文件 for index, i in enumerate(f.read().split("|"), 1): print(index, i) def create_course(self): # 创建课程 with open("course", 'r+', encoding="utf-8") as f: flag = 0 name =input('请输入需创建课程的名称:').strip() tmp = f.read().split("|") for i in range(len(tmp)): if tmp[i] == name: print('您创建的课程已经存在') flag = 1 break else: continue if flag == 0: f.write('|' + name) print('恭喜你课程创建成功') def check_all_select_course(self): # 查看所有学生的选课情况(每个学生的选课情况) with open("user_course", 'r', encoding="utf8") as f: user_course = json.load(f) print(user_course) def check_all_student(self): # 查看所有学生 with open('user', encoding="utf-8", mode='r+') as f: l1 = [] tmp = f.readlines() for i in range(len(tmp)): tmp[i] = tmp[i].split("|") l1.append(tmp[i][0]) for i in range(len(l1)): print(l1[i]) def create_student_account(self): # 创建学生账号 with open('user', encoding="utf-8", mode='r+') as f: name = input("请输入学生的姓名:").strip() password = input("请输入学生的密码:").strip() tmp = f.readlines() while 1: flag = 0 for i in range(len(tmp)): tmp[i] = tmp[i].split("|") if tmp[i][0] == name: print('您创建的用户名已存在,请重新输入') flag = 1 break else: continue if flag == 0: f.write(name + '|' + password + '|' + 'S' + '\n') print("恭喜你,学生用户创建成功") break else: break def exit(self): # 退出程序 exit() def show(self): # administrator_func 这个字典是功能名和要执行的函数 administrator_func = {"创建课程": self.create_course, '创建学生账号': self.create_student_account, "查看所有课程": self.check_all_course,'查看所有学生':self.check_all_student, '查看所有学生的选课情况':self.check_all_select_course,"退出": self.exit } while 1: tmp = {} # 修改gongneng这个字典, 保留索引和函数 for index, i in enumerate(administrator_func, 1): print(index, i) tmp[str(index)] = administrator_func[i] C = input("请输入你的选择") # 根据不同的选择, 执行不同的函数 if C in tmp: tmp[C]() with open('user', encoding='utf-8', mode='r') as f: tmp = f.readlines() while 1: name = input("请输入姓名:").strip() password = input("请输入密码:").strip() for i in range(len(tmp)): l2 = tmp[i].strip().split("|") # print(l2) if l2[0] == name and l2[1] == password and l2[2] == 'S': print('%s恭喜你登录成功' %(name)) s = Student(name) s.show() elif l2[0] == name and l2[1] == password and l2[2] == 'A': print('%s恭喜你登录成功' % (name)) a = Administrator(name) a.show() else: print('账号或者密码输入错误,请重新输入')
python基础(五) 作业题
猜你喜欢
转载自www.cnblogs.com/mayugang/p/9968033.html
今日推荐
周排行