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))
示例#2
0
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
示例#3
0
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))
示例#4
0
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
示例#6
0
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
示例#7
0
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)
示例#8
0
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)
示例#9
0
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
示例#10
0
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)
示例#11
0
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
示例#12
0
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)
示例#13
0
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)
示例#14
0
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)
示例#15
0
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)
示例#16
0
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
示例#17
0
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
示例#18
0
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)
示例#20
0
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('输入有误!')
示例#21
0
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
示例#22
0
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))
示例#23
0
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()
示例#24
0
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('密码错误!登录失败!')
示例#25
0
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('密码错误')
示例#26
0
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
示例#27
0
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("密码错误,登录失败!")
示例#28
0
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('密码错误,登录失败!')
示例#29
0
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('密码错误,登陆失败!')
示例#30
0
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('密码错误,登录失败!')