def show_student(): key = value = '' # 指定查询类型 x = input('1.查看全部学生\n2.按姓名查询\n3.按学号查询\n4.返回\n请选择:') y = file_manager.read_json(name, {}) students = y.get('all_student', []) if not students: print('该教师未添加学员,请添加学员。') return if x == '1': # 查看全部学生相当于不指定查询类型 pass elif x == '2': value = input('请输入查询学生姓名:') key = 'name' elif x == '3': value = input('请输入查询学生id:') key = 's_id' else: return students = filter(lambda s: s.get(key, '') == value, students) if not students: print('未找到学员。') return for student in students: print('学号{s_id},姓名{name},年龄{age},性别{gender},电话{tel}'.format(**student))
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 show_student(): x = input('1.查看所有学生\n2.根据姓名查找\n3.根据学号查找\n其他: 返回\n请选择:') y = file_manager.read_json(name + '.json', {}) students = y.get('all_student', []) if not students: print('该老师还没有学员,请添加学员') return key = value = '' if x == '1': # 查询所有 pass elif x == '2': value = input('请输入学员姓名:') key = 'name' elif x == '3': value = input('请输入学员的id:') key = 's_id' else: return students = filter(lambda s: s.get(key, '') == value, students) if not students: print('未找到学员') return for student in students: print('学号:{s_id}, 姓名:{name},性别:{gender},年龄:{age}, ☎:{tel}'.format( **student))
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(): 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 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~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(): # 读取文件,查看文件里是否有数据。如果文件不存在,默认是一个字典 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 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 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(): 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 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 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 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(): 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 find_student(): all_student = file_manager.read_json(USER_NAME + '.json', {}).get(ALL_STUDENT, []) if not all_student: print('该账号没有可管理的学生!请先添加学生!') return print('1.查看所有学生\n2.根据姓名查找\n3.根据学号查找\n其他: 返回') value = input('请选择:') if value == '1': # 查看所有学生 for stu in all_student: print(get_stu_message(stu)) elif value == '2': # 根据姓名查找 name = input('请输入学生名字:') flag = True # 是否没有这个名字的学生 for stu in all_student: if stu['name'] == name: print(get_stu_message(stu)) flag = False if flag: print('没有该学生!') elif value == '3': # 根据学号查找 study_id = input('请输入学生学号:') for stu in all_student: if stu['s_id'] == study_id: print(get_stu_message(stu)) break else: print('没有该学生!') else: return
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 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 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 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 modify_student(): operator = input('1.查看所有学生\n2.根据姓名查找\n3.根据学号查找\n4.返回\n请选择(1~4):') stu_json_file = file_manager.read_json(name + '.json', {}) if operator == '1': pass elif operator == '2': pass elif operator == '3': pass else: pass
def show_student(): x = input('1.查看所有学生\n2.根据姓名查找\n3.根据学号查找\n其他:返回\n请选择:') student_json = file_manager.read_json(name + '.json', {}) # if not student_json: # students = [] # else: # students = student_json['all_student'] students = student_json.get('all_student', []) # if x == '1': # for student in students: # print('学号:{id},姓名:{name},性别:{gender},年龄:{age},电话:{tel}'.format(**student)) # elif x == '2': # count = 0 # s_name = input('请输入学生姓名:') # for student in students: # if student['name'] == s_name: # print('学号:{id},姓名:{name},性别:{gender},年龄:{age},电话:{tel}'.format(**student)) # count += 1 # if count == 0: # print('没有找到指定学生!') # elif x == '3': # count = 0 # s_id = input('请输入学号:') # for student in students: # if student['id'] == s_id: # print('学号:{id},姓名:{name},性别:{gender},年龄:{age},电话:{tel}'.format(**student)) # count += 1 # break # if count == 0: # print('没有找到指定学生!') # else: # return if x == '1': pass elif x == '2': s_name = input('请输入学生姓名:') students = filter(lambda s: s['name'] == s_name, students) elif x == '3': s_id = input('请输入学生ID:') students = filter(lambda s: s['s_id'] == s_id, students) else: return if not students: print('未找到学生') return for student in students: print('学号:{id},姓名:{name},性别:{gender},年龄:{age},电话:{tel}'.format( **student))
def login(): all_user = file_manager.read_json(USERS_FILE, {}) user_name = input('请输入账号:') if user_name not in all_user: print('登录失败!该账号没有注册!') else: password = input('请输入密码:') if tools.encrypt_password(password) == all_user[user_name]: # print('登录成功!') student_manager.USER_NAME = user_name student_manager.show_system()
def login(): data = file_manager.read_json('data.json', {}) teacher_name = input('请输入老师账号:') if teacher_name not in data: print('登录失败!该账户没有注册!') return password = input('请输入密码:') import tools if data[teacher_name] == tools.encrypt_password(password): student_manager.name = teacher_name student_manager.show_manager() else: print('密码错误!登录失败!')
def login(): # 读取文件,查看文件是否有数据。如果文件不存在默认是一个字典 teachers = file_manager.read_json('11 学生管理系统/files/users.json', {}) username = input('输入用户名:') if username not in teachers: print('用户不存在') return password = input('请输入密码:') if teachers[username] == Tools.encrypt_password(password): students_manger.username = username students_manger.show_manager() else: print('密码错误')
def show_students(): print('1. 查看所有学生') print('2. 根据姓名查找') print('3. 根据学号查找') print('4. 返回') choice = input('请输入(1~4):') students = file_manager.read_json('11 学生管理系统/files/' + username + '.json', {}) if not students: print('没有学生') return # if not students: # students = [] # else: # students = students['all_students'] # 或者 students = students.get('all_students', []) if choice == '1': for student in students: print( '学号:{id},\t 姓名:{name},\t 性别:{gender},\t 年龄:{age},\t 电话:{tel}'. format(**student)) elif choice == '2': s_name = input('输入姓名:') # same_name = [] # for student in students: # if student['name'] == s_name: # same_name.append(student) same_name = filter(lambda s: s['name'] == s_name, students) if not same_name: print('不存在') for student in same_name: print( '学号:{id},\t 姓名:{name},\t 性别:{gender},\t 年龄:{age},\t 电话:{tel}'. format(**student)) elif choice == '3': s_id = input('输入姓名:') same_id = filter(lambda s: s['id'] == s_id, students) if not same_id: print('不存在') for student in same_id: print( '学号:{id},\t 姓名:{name},\t 性别:{gender},\t 年龄:{age},\t 电话:{tel}'. format(**student)) else: pass
def login(): # 读取文件,查看文件里是否有数据。如果文件不存在,默认是一个字典 data = file_manager.read_json("data.json", {}) teacher_name = input("请输入老师账号:") if teacher_name not in data: print("登录失败!该账号没有注册!") return password = input("请输入密码:") if data[teacher_name] == tools.encrypt_password(password): print("登录成功") student_manager.show_manager() else: print("密码错误,登录失败!")
def login(): data = file_manager.read_json('data.json', {}) teacher_name = input('请输入账号(3-6位):') if teacher_name not in data: print('账号不存在,请重新输入!') return password = input('请输入密码:') if data[teacher_name] == tools.encrypt_password(password): print('密码正确,登录成功') student_manager.name = teacher_name student_manager.show_manager() else: print('密码错误,登录失败!')
def login(): # 读取文件,查看文件中有没有数据 data = file_manager.read_json('data.json', {}) teacher_name = input('请输老师的账号:') if teacher_name not in data: print('登陆失败!该账号没有注册!') return password = input('请输入密码:') import tools if data[teacher_name] == tools.encrypt_password(password): student_manager.name = teacher_name student_manager.show_manager('students_page.txt') else: print('密码错误,登陆失败!')
def login(): # 读取文件,查看文件里是否有数据。如果文件不存在,默认是一个字典 data = file_manager.read_json('data.json', {}) teacher_name = input('请输入老师账号:') if teacher_name not in data: print('登录失败!该账号没有注册!') return password = input('请输入密码:') import tools if data[teacher_name] == tools.encrypt_password(password): student_manager.name = teacher_name student_manager.show_manager() else: print('密码错误,登录失败!')