def add_student(): while True: x = file_manager.read_json(teacher_name + '.json', {}) if not x: students = [] num = 0 else: students = x['all_student'] num = int(x['num']) s_name = input('请输入学生姓名:') s_age = input('请输入年龄:') s_sex = input('请输入性别:') s_tel = input('请输入联系电话:') num += 1 # 字符串的zfill方法,在字符串的前面补0. s_id = 'stu_' + str(num).zfill(4) s = model.Student(s_id, s_name, s_age, s_sex, s_tel) students.append(s.__dict__) data = {'all_student': students, 'num': len(students)} file_manager.write_json(teacher_name + '.json', data) choice = input('添加成功!\n1.继续\n2.返回\n请选择(1-2):') if choice == '2': break
def register(): data = file_manager.read_json('data.json', {}) while True: teacher_name = input('请输入账号(3-6位)') if not 3 <= len(teacher_name) <= 6: print('输入有误请重新输入') else: break if teacher_name in data: print('用户存在,请重新输入') return while True: password = input('请输入密码(6-12位)') if not 3 <= len(password) <= 6: print('输入有误请重新输入') else: break # teacher[teacher_name] = password # # 把数据写进去 # file_manager.write_json('data.json', teacher) t = mod.Teacher(teacher_name, password) # 密码加密 data[t.name] = t.password file_manager.write_json('data.json', data)
def add_student(): x = file_manager.read_json(name, {}) if not x: students = [] num = 0 else: students = x['all_student'] num = int(x['num']) while True: s_name = input('请输入学生姓名:') s_age = input('请输入学生年龄:') s_gender = input('请输入学生性别:') s_tel = input('请输入学生电话号码:') num += 1 # zfill为字符串补齐方法,前面补0 s_id = 'stu_' + str(num).zfill(4) # num存在重复问题 # 创建一个Student对象 s = model.Student(s_id, s_name, s_age, s_gender, s_tel) students.append(s.__dict__) data = {'all_student': students, 'num': len(students)} file_manager.write_json(name, data) choice = input('添加成功!\n继续1\n返回2\n请选择:') if choice == '2': break
def delte_student(): y = file_manager.read_json('11 学生管理系统/files/' + username + '.json', {}) students = y.get('all_students', []) key = value = '' if not students: print('没有学生') return num = input('1. 按照姓名\n2. 按照学号\n 其他:返回') if num == '1': key = 'name' value = input('输入姓名') elif num == '2': key = 'id' value = input('请输入ID') else: return del_students = list(filter(lambda s: s.get(key, '') == value, students)) if not del_students: print('没有学生') return for i, student in enumerate(del_students): print('{x} 学号:{id}, 姓名:{name}, 性别:{gender}, 年龄:{age}, 电话:{tel}'.format( x=i, **student)) n = input('请输入要删除的序号(0~{}), 其他返回/n'.format(i)) if not n.isdigit() or not 0 <= int(n) <= i: print('输入内容不合法') return students.remove(del_students[int(n)]) y['all_stdents'] = students file_manager.write_json('11 学生管理系统/files/' + username + '.json', y)
def add_student(): x = file_manager.read_json('11 学生管理系统/files/' + username + '.json', {}) if not x: students = [] num = 0 else: students = x['all_students'] num = int(x['num']) while True: name = input('输入学生姓名:') age = input('请输入年龄') gender = input('请输入性别') tel = input('请输入电话') num += 1 # 字符串的zfill方法,再字符串前面补零 id = 'stu_' + str(num).zfill(4) # 创建一个student对象 student = model.Students(id, name, age, gender, tel) students.append(student.__dict__) data = {'all_students': students, 'num': len(students)} file_manager.write_json('11 学生管理系统/files/' + username + '.json', data) choice = input('添加成功\n1.继续\n2.返回\n请选择:') if choice == '2': break
def add_student(): system_data = file_manager.read_json(USER_NAME + '.json', {}) all_student = system_data.get(ALL_STUDENT, []) while True: # 1.输入学生信息 name = input('请输入姓名:') age = input('请输入年龄:') gender = input('请输入性别:') tel = input('请输入电话:') # 创建学号 count = system_data.get(COUNT, 0) count += 1 s_id = 'stu' + str(count).zfill(4) # 2.创建学生对象 s = model.Student(s_id, name, age, gender, tel) # 4. 更新数据 all_student.append(s.__dict__) system_data[ALL_STUDENT] = all_student system_data[COUNT] = count # 5. 更新文件 file_manager.write_json(USER_NAME + '.json', system_data) print('添加成功!') # 6.给出选择 value = input('1.继续\n2.返回\n请选择(1-2):') if value != '1': break
def add_student(): while True: # students = [] x = file_manager.read_json(name + '.json', {}) if not x: students = [] num = 0 else: students = x['all_student'] num = int(x['num']) s_name = input('输入姓名:') s_age = input('输入年龄:') s_gender = input('输入性别:') s_tel = input('输入电话号') num += 1 s_id = 'stu_' + str(num).zfill(4) s = mod.Student(s_id, s_name, s_age, s_gender, s_tel) students.append(s.__dict__) data = {'all_student': students, 'num': len(students)} file_manager.write_json(name + '.json', data) choice = input('添加成功!\n1继续\n2返回\n请选择(1-2):') if choice == '2': break
def register(): # 读取文件,查看文件中有没有数据 data = file_manager.read_json('data.json', {}) while True: teacher_name = input('请输入您的用户名:(3~12位):') if not 3 <= len(teacher_name) <= 12: print('用户名不符合要求,请重新输入') else: break if teacher_name in data: print('注册失败!该账号已经注册过!') return while True: password = input('请输入您的密码:(6~12):') if not 6 <= len(password) <= 12: print('您输入密码有误,请重新输入') else: break # 用户密码都已经输入正确以后,创建一个teacher对象 t = model.Teacher(teacher_name, password) data[t.name] = t.password # data[teacher_name] = password # print(teacher) file_manager.write_json('data.json', data)
def register(): # 读取teacher.json data = file_manager.read_file('files/teacher.json') while True: teacher_name = input('请输入账号(3~6位):') if not 3 <= len(teacher_name) <= 6: print('账号不符合,请重新输入!') else: break if teacher_name in data: print('注册失败!该账号已经注册过!') return while True: password = input('请输入密码(6~12位):') if not 6 <= len(password) <= 12: print('密码不符合,请重新输入!') else: break # teacher[teacher_name] = password t = bean.Teacher(teacher_name, password) data[t.name] = t.password file_manager.write_json('files/teacher.json', data)
def add_student(): x = file_manager.read_json('files/' + name + '.json') if not x: # 如果文件不存在 students = [] num = 0 else: students = x['all_student'] num = int(x['num']) while True: s_name = input('请输入学生姓名:') s_age = input('请输入学生年龄:') s_gender = input('请输入学生性别:') s_tel = input('请输入学生电话:') num = int(x['num']) num += 1 s_id = 'stu_' + str(num).zfill(4) # zfill方法,不够n位 在字符串前面补0 s = bean.Student(s_id, s_name, s_age, s_gender, s_tel) students.append(s.__dict__) # 转为字典 data = {'all_student': students, 'num': len(students)} file_manager.write_json('files/' + name + '.json', data) chioce = input('添加成功!\n1.继续\n2.返回\n请选择(1-2):') if chioce == '2': break
def register(): # 读取文件,查看文件里是否有数据。如果文件不存在,默认是一个字典 data = file_manager.read_json('data.json', {}) while True: teacher_name = input('请输入账号(3~6位):') if not 3 <= len(teacher_name) <= 6: print('账号不符合要求,请重新输入!') else: break if teacher_name in data: print('注册失败!该账号已经注册过!') return while True: password = input('请输入密码(6~12位):') if not 6 <= len(password) <= 12: print('密码不符合要求,请重新输入!') else: break # 用户名密码都已经输入正确以后,创建一个teacher对象 t = model.Teacher(teacher_name, password) data[t.name] = t.password file_manager.write_json('data.json', data)
def delete_student(): student_json = file_manager.read_json(name + '.json', {}) all_students = student_json.get('all_student', []) key = value = '' x = input('1.按姓名删除\n2.按学号删除\n其他:返回\n请选择:') if x == '1': key = 'name' value = input('请输入学生姓名:') elif x == '2': key = 'id' value = input('请输入学生ID:') else: return students = list(filter(lambda s: s.get(key, '') == value, all_students)) if not students: print('未找到学生') return for i, student in enumerate(students): print('{x} 学号:{id},姓名:{name},性别:{gender},年龄:{age},电话:{tel}'.format( x=i, **student)) del_index = input('请输入需要删除的学生的标号(0-{}),q-返回:'.format(i)) if not del_index.isdigit() or not 0 <= int(del_index) <= i: print('输入错误!') return # 删除学生 all_students.remove(students[int(del_index)]) student_json['all_student'] = all_students file_manager.write_json(name + '.json', student_json)
def add_student(): students_json = file_manager.read_json(name + '.json', {}) if not students_json: students = [] num = 0 else: students = students_json['all_student'] num = int(students_json['num']) while True: s_name = input('请输入学生姓名:') s_age = input('请输入年龄:') s_gender = input('请输入性别:') s_tel = input('请输入电话:') num += 1 s_id = 'stu_' + str(num).zfill(4) # 创建Student对象 s = model.Student(s_id, s_name, s_age, s_gender, s_tel) students.append(s.__dict__) # 拼接字典 data = {'all_student': students, 'num': len(students)} # 把数据写入文件 file_manager.write_json(name + '.json', data) choice = input('添加成功!\n1.继续\n2.返回\n请选择(1-2)') if choice == '2': break elif choice != '2' and choice != '1': print('输入有误!')
def delete_student(): y = file_manager.read_json(teacher_name + '.json', {}) all_students = y.get('all_student', []) key = value = '' operate = input('1.按姓名删\n2.按学号删\n其他:返回') if operate == '1': key = 'name' value = input('请输入要删除学生的姓名:') elif operate == '2': key = 's_id' value = input('请输入要删除学生的id:') else: return students = list(filter(lambda s: s.get(key, '') == value, all_students)) if not students: print('该老师没有学生,请先添加学生。') return for i, s in enumerate(students): print('{x} 学号:{s_id},姓名:{name},性别:{sex},年龄:{age},电话:{tel}'.format(x=i, **s)) n = input('请输入要删除学生的标号(0~{}),q-返回。'.format(i)) if not n.isdigit() or not 0 <= int(n) <= i: print('输入的内容不合法') return all_students.remove(students[int(n)]) y['all_student'] = all_students file_manager.write_json(teacher_name + '.json', y)
def register(): # 读取文件, 查看文件是否有数据. 如果文件不存在默认是一个字典 teachers = file_manager.read_json('11 学生管理系统/files/users.json', {}) while True: username = input('请输入账号(3~6位)') if not 3 <= len(username) <= 6: print('账号不符合要求,请重新输入') else: break if username in teachers: print('用户已存在') return while True: password = input('请输入密码(6~12位)') if not 6 <= len(password) <= 12: print('密码不符合要求,请重新输入') else: break # 使用对象 teacher = model.Teachers(username, password) teachers[teacher.username] = teacher.password # 不用对象 # teachers[username] = password file_manager.write_json('11 学生管理系统/files/users.json', teachers)
def delete_student(): data = file_manager.read_json(name + '.json', {}) students = data.get('all_student', []) key = value = '' if not students: print('文件未找到') return num = input('1.按姓名删\n2.按ID删\n3.其他返回') if num == '1': key = 'name' value = input('输入要删除的姓名:') elif num == '2': key = 's_id' value = input('输入要删除的id:') else: return student = filter(lambda s: s.get(key, '') == value, students) for i, s in enumerate(student): print('{x} 学号:{s_id}, 姓名:{name},性别:{gender},年龄:{age}, ☎:{tel}'.format( x=i, **s)) n = input('请输入需要删除的学生的标号(0~{}),q-返回:'.format(i)) # 使用变量 i 有潜在风险 if not n.isdigit() or not 0 <= int(n) <= i: print('输入的内容不合法') return # 将学生从all_students里删除 students.remove(students[int(n)]) data['all_student'] = students file_manager.write_json(name + '.json', data)
def register(): data = file_manager.read_json('data.json', {}) while True: teacher_name = input('请输入账号(3-6位):') if not 3 <= len(teacher_name) <= 6: print('账号不符合要求,请重新输入!') else: break if teacher_name in data: print('注册失败!该账户已经被注册了!') return while True: password = input('请输入账号(6-12位):') if not 6 <= len(password) <= 12: print('账号不符合要求,请重新输入!') else: break # 创建一个teacher对象,保存数据。 t = model.Teacher(teacher_name, password) data[t.name] = t.password file_manager.write_json('data.json', data)
def del_student(): key = value = '' y = file_manager.read_json(name, {}) all_students = y.get('all_student', []) if not all_students: print('该教师未添加学员,请添加学员。') return num = input('1.按姓名删\n2.按学号删\n3.返回\n请选择:') if num == '1': key = 'name' value = input('请输入要删除学生的姓名') elif num == '2': key = 's_id' value = input('请输入要删除学生的id') else: return students = list(filter(lambda s: s.get(key, '') == value, all_students)) # 值得好好看看 if not students: print('未找到学员。') return for i, student in enumerate(students): print('{x},学号{s_id},姓名{name},年龄{age},性别{gender},电话{tel}'.format( x=i, **student)) n = input('请输入要删除的学生标号(0~%d),q—退出:'.format(i)) # i有潜在风险(可能未被定义) if not n.isdigit() or not 0 <= int(n) <= i: print('输入内容不合法。') return all_students.remove(students[int(n)]) y['all_student'] = all_students file_manager.write_json(name, y)
def register(): while True: users = input('请输入一个3~6位的用户名 ') if 3 <= len(users) <= 6: user = users break while True: passwords = input('请输入一个6~12位的密码 ') if 6 <= len(passwords) <= 12: password = passwords break teacher = Teacher(user, password) teacher.teacher_list.append(teacher) teacher.teacher_dict[user] = password file_manager.write_json(teacher.teacher_dict, '老师信息.txt') file_manager.write_pickle(teacher.teacher_list, '老师对象.txt')
def del_student(): system_data = file_manager.read_json(USER_NAME + '.json', {}) all_student = system_data.get(ALL_STUDENT, []) if not all_student: print('该账号没有可管理的学生!请先添加学生!') return print('1.按姓名删\n2.按学号删\n其他:返回') del_studens = [] choice = input('请选择:') key = value = '' if choice == '1': key = 'name' value = input('请输入要删除的学生名字:') elif choice == '2': key = 's_id' value = input('请输入要删除的学生id:') else: return # 找到名字和删除学生名字相同的学生 for stu in all_student: if stu[key] == value: del_studens.append(stu) if not del_studens: print('没有该学生!') return length = len(del_studens) for index, s in enumerate(del_studens): print(index, get_stu_message(s)) try: choice = int(input('请输入需要删除的学生的标号(0~%d),q-返回:' % (length - 1))) except ValueError: return if not 0 <= choice <= length - 1: return # 删除对应的学生 all_student.remove(del_studens[choice]) system_data[ALL_STUDENT] = all_student file_manager.write_json(USER_NAME + '.json', system_data) print('删除成功!')
def add_student(): # 要先读取老师的json文件,没有时,创建一个新字典,有则拿出原有的数据再重写一遍这个json文件,保证数据的持久性 stu_tea_json = file_manager.read_json(name + '.json', {}) global count if not stu_tea_json: students_list = [] # num = 0 else: students_list = stu_tea_json['all_students'] count = int(stu_tea_json['num']) while True: stu_name = input('请输入学生的姓名:') stu_age = input('请输入学生的年龄:') stu_sex = input('请输入学生的性别:') stu_tel = input('请输入学生的电话:') count += 1 # 字符串的zfill()方法,在字符串前补0 s_id = 'stu' + str(count).zfill(4) # 导入model模块,创建一个学生类的实例对象 student = model.Student(s_id, stu_name, stu_age, stu_sex, stu_tel) students_list.append(student.__dict__) data = {'all_students': students_list, 'num': len(students_list)} # print(data) # 将data保存到一个json文件,调用file_manager模块中的write_json方法 file_manager.write_json(name + '.json', data) print('添加成功!') while True: choice = input('1.继续\n2.返回\n请选择(1~2):') if choice == '1': break elif choice == '2': return else: print('输入错误,请重新选择!') continue
def delete_student(): operator = input('1.按姓名删除\n2.按学号删除\n其他:返回\n请选择:') stu_json_file = file_manager.read_json(name + '.json', {}) all_students = stu_json_file.get('all_students', []) key = '' value = '' if not all_students: print('该老师还没有添加学生,请先添加!') return if operator == '1': key = 'name' value = input('请输入需要删除的学生姓名:') elif operator == '2': key = 's_id' value = input('请输入需要删除的学生ID:') else: return students = list(filter(lambda s: s.get(key, '') == value, all_students)) if not students: print('未找到此学员') return # 使用enumerate()方法拿到列表的下标 for i, stu in enumerate(students): print('{x} 学号:{s_id},姓名:{name},性别:{sex},年龄:{age},☎:{tel}'.format( x=i, **stu)) n = input('请输入您要删除的的学生的标号(0~{})'.format(i)) # 使用i变量会有潜在风险 if not n.isdigit() or not 0 <= int(n) <= i: print('输入的内容不合法,请重新输入') return all_students.remove(students[int(n)]) stu_json_file['all_student'] = all_students file_manager.write_json(name + '.json', stu_json_file)
def register(): # 读取json文件,如果文件不存在默认是个字典 data = file_manager.read_json('data') while True: teacher_name = input('请输入用户名(3~6位):') if not 3 <= len(teacher_name) <= 6: print('不符合要求,请重新输入!') else: break while True: password = input('请输入密码(6~12位):') if not 6 <= len(password) <= 12: print('不符合要求,请重新输入!') else: break # 输入正确后可创建一个对象 teacher = model.Teacher(data, password) # 建议将密码加密保存 data[teacher_name] = teacher.password file_manager.write_json('data', data)
def delte_student(): x = input('1.按姓名删\n2.按学号删\n其他:返回\n请选择:') y = file_manager.read_json('files/' + name + '.json') all_students = y.get('all_student', []) if not all_students: print('该老师还没有学员,请添加学员') return num = y.get('num', 0) if x == '1': key = 'name' value = input('请输入要删除学生的姓名:') elif x == '2': key = 's_id' value = input('请输入要删除学生的id:') else: print('输入有误') return students = list(filter(lambda s: s.get(key, '') == value, all_students)) if not students: print('没有找到对应的学生') return for i, student in enumerate(students): print('{x} 学号:{s_id},姓名:{name},性别:{gender},年龄:{age},电话:{tell}'.format( x=i, **student)) n = input('请输入需要删除的学生的标号(0~{}),q-返回:'.format(i)) # 使用i 可能有潜在风险 if not n.isdigit() or not 0 <= int(n) <= i: print('输入的内容不合法') return # 将学生从all_students里删除 all_students.remove(students[int(n)]) y['all_student'] = all_students file_manager.write_json('files/' + name + '.json', y)
def register(): while True: user_name = input('请输入账号(3~6位):') if 3 <= len(user_name) <= 6: break print('账号不符合要求,请重新输入!') all_user = file_manager.read_json(USERS_FILE, {}) if user_name in all_user: print("注册失败!该账号已经注册过!") return while True: password = input('请输入密码(6~12位):') if 6 <= len(password) <= 12: break print('密码不符合要求,请重新输入!') s = model.Teacher(user_name, password) all_user[s.name] = s.password file_manager.write_json(USERS_FILE, all_user)
def delte_student(): y = file_manager.read_json(name + '.json', {}) all_students = y.get('all_student', []) key = value = '' if not all_students: print('该老师还没有学员,请添加学员') return num = input('1.按姓名删\n2.按学号删\n其他:返回\n请选择:') if num == '1': key = 'name' value = input('请输入要删除的学生名字:') elif num == '2': key = 's_id' value = input('请输入要删除的学生id:') else: return students = list(filter(lambda s: s.get(key, '') == value, all_students)) if not students: print('没有找到对应的学生') return for i, s in enumerate(students): print('{x} 学号:{s_id}, 姓名:{name},性别:{gender},年龄:{age}, ☎:{tel}'.format( x=i, **s)) n = input('请输入需要删除的学生的标号(0~{}),q-返回:'.format(i)) # 使用变量 i 有潜在风险 if not n.isdigit() or not 0 <= int(n) <= i: print('输入的内容不合法') return # 将学生从all_students里删除 all_students.remove(students[int(n)]) y['all_student'] = all_students file_manager.write_json(name + '.json', y)
def add_student(): x = file_manager.read_json(name + '.json', {}) if not x: students = [] num = 0 else: students = x['all_student'] num = int(x['num']) while True: s_name = input('请输入学生姓名:') s_age = input('请输入年龄:') s_gender = input('请输入性别:') s_tel = input('请输入电话号码:') num += 1 # 字符串的zfill方法,在字符串的前面补 0 s_id = 'stu_' + str(num).zfill(4) # 创建一个Student对象 s = model.Student(s_id, s_name, s_age, s_gender, s_tel) # { # 'all_student': [ # {'name':'zhangsan','age':18,'gender':'男','tel':'110'}, # {'name':'zhangsan','age':18,'gender':'男','tel':'110'}, # ], # 'num': 2 # } students.append(s.__dict__) # 拼接字典 data = {'all_student': students, 'num': len(students)} # print(data) # 把数据写入到文件里 file_manager.write_json(name + '.json', data) choice = input('添加成功!\n1.继续\n2.返回\n请选择(1-2):') if choice == '2': break
def register(): # 读取文件,查看文件里是否有数据。如果文件不存在,默认是一个字典。 data = file_manager.read_json('data.json', {}) while True: teacher_name = input('请输入账号(3—6位):') if not 3 <= len(teacher_name) <= 6: print('账号不符合要求,请重新输入。') else: break if teacher_name in data: print('注册失败,该账号已经注册过了。') return while True: password = input('请输入密码(6—12位):') if not 6 <= len(password) <= 12: print('密码不符合要求,请重新输入。') else: break # 用户名和密码都创建正确以后,创建一个teacher对象。 t = model.Teacher(teacher_name, password) data[t.name] = t.password file_manager.write_json('data.json', data)
def register(): # 读取文件,查看文件里是否有数据。如果文件不存在,默认是一个字典 data = file_manager.read_json('data.json', {}) while True: teacher_name = input("请输入账号(3-6位)") if not 3 <= len(teacher_name) <= 6: print("账号输入有误") else: break if teacher_name in data: print("该账号已经注册") return while True: teacher_password = input("请输入密码(6-12位)") if not 6 <= len(teacher_password) <= 12: print("密码输入有误") else: break t = model.Teacher(teacher_name, tools.encrypt_password(teacher_password)) data[t.name] = t.password file_manager.write_json("data.json", data)
def start(): while True: content = "----------------------\n歡迎來到成績管理系統\n1.管理員登入\n2.學生登入\n3.教授登入\n4.退出\n----------------------\n請選擇1-4\n" operator = input(content) if operator == "1": username = input("請輸入帳號:\n") password = input("請輸入密碼:\n") data = file_manager.read_json("manager.json", {}) if username in data: if password == data[username]: while True: print("---------------") op = input("1.新增學生\n2.新增教授\n3.新增課程\n4.退出\n") if op == "1": student_data = file_manager.read_json( "student.json", {}) student_dataC = student_data.get("all_students") student_size = student_data.get("nums") std_num = "std" + str(int(student_size) + 1) username = input("請輸入帳號:") password = input("請輸入密碼:") enter_year = input("請輸入入學年份(2020):") gender = input("請輸入性別(male/female):") birth = input("請輸入生日(1970/12/25):") s = model.Student(std_num, username, password, enter_year, gender, birth) student_dataC.append(s.__dict__) student_data['all_students'] = student_dataC student_data['nums'] = student_size + 1 file_manager.write_json('student.json', student_data) print("添加成功") op = input("繼續請輸入1,退出請輸入2\n") if op == "2": break elif op == "2": professor_data = file_manager.read_json( "professor.json", {}) professor_dataC = professor_data.get( "all_professor") professor_size = professor_data.get("nums") pid = "pid" + str(int(professor_size) + 1) username = input("請輸入帳號:") password = input("請輸入密碼:") gender = input("請輸入性別(male/female):") birth = input("請輸入生日(1970/12/25):") p = model.Professor(pid, username, password, gender, birth) professor_dataC.append(p.__dict__) professor_data = { "all_professor": professor_dataC, "nums": professor_size + 1 } file_manager.write_json("professor.json", professor_data) print("新增成功\n") elif op == "3": classData = file_manager.read_json( "classname.json", {}) num = input("請輸入課程代號:") classname = input("請輸入課程名稱:") points = input("請輸入學分數:") professor = input("請輸入授課教授:") tp = input("請輸入必選修:") c = model.Class(num, classname, points, professor, tp) classData["all_classname"].append(c.__dict__) file_manager.write_json("classname.json", classData) print("新增成功\n") elif op == "4": break else: print("輸入錯誤") break else: print('管理員帳號密碼錯誤,一秒後跳轉\n') time.sleep(1) start() break elif operator == "2": username = input("請輸入帳號:\n") password = input("請輸入密碼:\n") data = file_manager.read_json("student.json", {}) for ii in data['all_students']: if ii['username'] == username and password == ii['password']: user = ii else: print('學生不存在,一秒後跳轉\n') time.sleep(1) start() while True: print(f"歡迎回來,學生{ii['username']}") op = input("-----------\n1.選課\n2.學生資訊\n3.退出\n") if op == "1": classData = file_manager.read_json('classname.json', {}) classData = classData['all_classname'] for i in classData: print( f"課程號碼: {i['num']}, 課程名稱: {i['classname']}, 學分數: {i['points']}, 教授: {i['professor']},類型:{i['tp']}" ) op = input("請輸入課程號碼:\n") for i in classData: if i['num'] == op: chooseClass = i print(chooseClass['classname']) c = model.Class(chooseClass['num'], chooseClass['classname'], chooseClass['points'], chooseClass['professor'], chooseClass['tp']) for i, j in enumerate(data['all_students']): if j['username'] == user['username']: data['all_students'][i]['classname'].append( c.__dict__) file_manager.write_json('student.json', data) print("新增成功") elif op == "2": testclass = [] for k in user['classname']: testclass.append(k['classname']) print( f"姓名:{user['username']},入學年:{user['enter_year']},性別:{user['gender']},生日:{user['birth']},修課:{testclass}" ) else: break elif operator == "3": username = input("請輸入帳號:\n") password = input("請輸入密碼:\n") data = file_manager.read_json("professor.json", {}) for ii in data['all_professor']: if ii['username'] == username and password == ii['password']: user = ii else: print('教授不存在,一秒後跳轉\n') time.sleep(1) start() while True: print(f"歡迎回來,教授{user['username']}") op = input("-----------\n1.查看修課學生\n2.退出\n") if op == "1": std = [] checkdata = file_manager.read_json("student.json", {}) for i in checkdata['all_students']: for j in i['classname']: if j['professor'] == user['username']: std.append(i['username']) for i in range(len(std)): print(f'學生:{std[i]}') elif op == "2": break elif operator == "4": sys.exit(0) else: print("輸入錯誤!")