美文网首页
学生管理系统3.0

学生管理系统3.0

作者: 我是一只菜鳥 | 来源:发表于2018-07-24 20:54 被阅读0次
"""__author__==xx"""

"""
学生管理系统-->管理多个学生-->需要容器存储学生-->
最外层的容器是字典-->字典的某一个key对应的是所有的学生-->
每个学生是一个字典
"""

# 声明所有的key值
key_all_student = 'students'  # 所有学生
key_name = 'name'  # 学生姓名
key_id = 'stu_id'  # 学生学号
key_age = 'age'  # 学生年龄
key_tel = 'tel'  # 学生电话
key_scores = 'scores'  # 学生成绩
key_english = 'english'  # 英语成绩
key_math = 'math'  # 数学成绩


# 系统容器
system_info = {key_all_student: [{key_name: '张三', key_id: 'py1805001', key_age: 18, key_tel: '1234', key_scores:{key_english: 66, key_math:88}}]}

# 当前已经添加过的学生个数计数
count = 1

# 系统入口
while True:
    # ========显示主页========
    print('==================')
    print('  欢迎进入学生成绩管理系统')
    print('1.添加学生\n2.查看学生信息\n3.删除学生\n4.修改学生\n0.退出系统')
    print('==================')

    input_value = input('>>>')

    # ========退出系统========
    if input_value == '0':
        break

    # ========添加学生========
    if input_value == '1':
        while True:
            print('==添加学生==')
            # 输入信息
            add_name = input('姓名:')
            add_age = int(input('年龄:'))
            add_tel = input('电话:')
            # 产生学号
            count += 1
            """1,2,3,4,5,6,7,"""
            add_id = 'py1805'+str(count).rjust(3, '0')
            # 输入成绩
            add_english = int(input('英语成绩:'))
            add_math = int(input('数学成绩:'))

            # 创建一个学生字典
            add_student = {key_name: add_name, key_id: add_id, key_age: add_age, key_tel: add_tel, key_scores:{key_english: add_english, key_math: add_math}}
            # 获取存学生的容器
            all_students = system_info.get(key_all_student)
            # 判断学生列表是否为空
            if all_students == None:
                all_students == []
            # 将学生添加到容器中
            all_students.append(add_student)
            system_info[key_all_student] = all_students

            print(system_info)

            # 给出选择
            print('1.继续添加\n其它:返回上一层')
            add_input = input('>>>')
            if add_input != '1':
                break

        continue

    # ========查看学生信息========
    if input_value == '2':
        print('==查看学生信息==')
        # 给出选择
        print('1.查看所有的学生信息\n2.根据姓名查看学生信息\n3.根据学号查看学生信息\n其它.返回上一层')
        find_input = input('>>>')
        # 直接返回上一层
        if find_input != '1' and find_input != '2' and find_input != '3':
            continue
        # 获取到所有学生
        all_students = system_info.get(key_all_student)
        # 系统还没有添加过学生
        """
        or和and的短路操作:
        表达式1 or 表达式2;如果表达式1为True,结果就是True,不会判断表达式2
        表达式1 and 表达式2:如果表达式1为False,结果就是False,不会判断表达式2
        """
        if (not all_students) or (not len(all_students)):
            print('系统中没有学生')
            continue

        # 查看所有
        if find_input == '1':
            for student in all_students:
                print('姓名:%s,学号:%s,年龄:%d,电话:%s,英语成绩:%d,数学成绩:%d' % (student[key_name], student[key_id],
                    student[key_age], student[key_tel], student[key_scores][key_english], student[key_scores][key_math]))

        # 根据姓名查找
        elif find_input == '2':
            find_name = input('请输入要查找的学生姓名')
            flag = True
            for student in all_students:
                # 如果学生的名字和输入的相同,就打印
                if find_name == student[key_name]:
                    print(student)
                    flag = False
            if flag:
                print('找不到该学生!')

        # 根据学号查找
        elif find_input == '3':
            find_id = input('请输入要查找的学生学号f')
            flag = True  # 表示是否找不到
            for student in all_students:
                # 如果学生的学号和输入的相同,就打印
                if find_id == student[key_id]:
                    print(student)
                    flag = False
                    break
            if flag:
                print('找不到该学生信息!')

        continue

    # ========删除学生========
    if input_value == '3':
        print('==删除学生==')
        while True:
            print('1.按姓名删除\n2.按学号删除\n其它.返回上一层')
            del_input = input('>>>')
            if del_input !='1' and del_input != '2':
                print('aaa')
                break

            # 把所有的学生拎出来
            all_students = system_info.get(key_all_student)
            if (not all_students) or (not len((all_students))):
                print('该系统没有学生')
                break
            # 按名字删除学生
            if del_input == '1':
                del_name = input('输入要删除的学生姓名:')
                del_students = []
                # 找到所有可能要删除的学生
                for student in all_students:
                    if del_name == student[key_name]:
                        # 保存可能要删除的学生
                        del_students.append(student)
                # 判断是否找到
                if not len(del_students):
                    print('没有找到相关的学生信息!')
                    continue
                index = 0
                for student in del_students:
                    print(index, student)
                    index += 1

                del_num = int(input('请输入要删除的学生下标:'))
                del_students = del_students[del_num]
                # 从系统中删除学生
                system_info[key_all_student].remove(del_students)
                print('删除成功!')

            # 按学号删除学生
            if del_input == '2':
                del_id = input('输入要删除的学生学号:')
                flag = True
                # 找到要删除的学生,并删除
                for student in all_students:
                    if del_id == student[key_id]:
                        # 保存可能要删除的学生
                        system_info[key_all_student].remove(student)
                        print('删除成功!')
                        flag = False
                    break
                # 判断是否找到
                if flag:
                    print('没有找到相关的学生信息!')
                    continue
        continue

    # ========修改信息========
    if input_value == '4':
        print('==修改信息==')

        while True:
            print('1.按姓名修改\n2.按学号修改\n其它.返回上一层')
            rev_input = input('>>>')
            if rev_input !='1' and rev_input != '2':
                break

            # 把所有的学生拎出来
            all_students = system_info.get(key_all_student)
            if (not all_students) or (not len((all_students))):
                print('该系统没有学生')
                break
            # 按名字修改学生
            if rev_input == '1':
                rev_name = input('输入要修改的学生姓名:')
                rev_students = []
                # 找到所有可能要修改的学生
                for student in all_students:
                    if rev_name == student[key_name]:
                        # 保存可能要修改的学生
                        rev_students.append(student)
                # 判断是否找到
                if not len(rev_students):
                    print('没有找到相关的学生信息!')
                    continue
                index = 0
                for student in rev_students:
                    print(index, student)
                    index += 1

                rev_num = int(input('请输入要修改的学生下标:'))
                rev_students = rev_students[rev_num]

                # 从系统中先删除学生
                system_info[key_all_student].remove(rev_students)

                # 输入信息
                add_name = input('姓名:')
                add_age = int(input('年龄:'))
                add_tel = input('电话:')
                # 输入成绩
                add_english = int(input('英语成绩:'))
                add_math = int(input('数学成绩:'))

                rev_students[key_name] = add_name
                rev_students[key_age] = add_age
                rev_students[key_tel] = add_tel
                rev_students[key_scores][key_english] = add_english
                rev_students[key_scores][key_math] = add_math

                # 从系统中添加学生,从而实现修改
                system_info[key_all_student].append(rev_students)
                print('修改成功!')

            # 按学号修改学生
            if rev_input == '2':
                rev_id = input('输入要修改的学生学号:')
                flag = True
                # 找到要修改的学生,并修改
                for student in all_students:
                    if rev_id == student[key_id]:
                        # 先删除的学生
                        system_info[key_all_student].remove(student)

                        # 输入信息
                        add_name = input('姓名:')
                        add_age = int(input('年龄:'))
                        add_tel = input('电话:')
                        # 输入成绩
                        add_english = int(input('英语成绩:'))
                        add_math = int(input('数学成绩:'))

                        student[key_name] = add_name
                        student[key_age] = add_age
                        student[key_tel] = add_tel
                        student[key_scores][key_english] = add_english
                        student[key_scores][key_math] = add_math

                        # 从系统中添加学生,从而实现修改
                        system_info[key_all_student].append(student)

                        print('修改成功!')
                        flag = False
                    break
                # 判断是否找到
                if flag:
                    print('没有找到相关的学生信息!')
                    continue
        continue

相关文章

网友评论

      本文标题:学生管理系统3.0

      本文链接:https://www.haomeiwen.com/subject/dnnymftx.html