美文网首页
学生管理系统

学生管理系统

作者: 跟我念一遍 | 来源:发表于2018-07-25 20:28 被阅读0次

    学生管理系统---》管理的是多个学生 ----》需要容器存储学生-----》考虑使用哪种容器
    ----》列表?字典?-----》系统对应的大的容器是字典 ----》字典中的某一个key对应的值是所有的学生(用列表作为容器)
    ----》每一个学生是一个字典
    [1,2,3,4]
    {'a':1,'b':2}

    {‘student’:[学生1,学生2,学生3 。。。],‘’}

    # 声明所有的key值
    key_all_student = 'students'   # 所有学生
    key_name = 'name'
    key_age = 'age'
    key_tel = 'tel'
    key_id = 'id'
    
    # 系统容器
    
    
    
    
    # 添加学生函数:
    def add_student():
        number = 0
        stu ={}
        while True:
            print('===添加学生===')
    
            # 输入信息
            add_name = input('请输入姓名:')
            add_age = input('请输入年龄:')
            add_tel = input('请输入电话:')
    
            # 产生学号
            '''1,2,3,4,5,6,7,8'''
            number += 1
            add_id = 'py1805' + str(number).rjust(3, '0')
    
            # 创建学生(一个学生就是一个字典)
            add_student = {key_name: add_name, key_age: add_age, key_tel: add_tel, key_id: add_id}
    
            # 获取存学生的容器
            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('添加学生%s成功' % add_name)
            # print(system_info)
    
            # 给出选择
            print('1.继续添加\n其他:返回上一层')
            add_input = input('>>>')
            if add_input != '1':
                break
    
    
    # 查看学生函数:
    def find_student():
        while True:
            '''给出选择'''
            print('1.查看所有的学生信息')
            print('2.根据姓名查看学生信息')
            print('3.根据学号查看学生信息')
            print('4.返回上一层')
            find_input = input('>>>')
    
            # 直接回到上一层
    
            if find_input == '4':
                break
    
            # =====查看所有=====
            if find_input == '1':
                '''拿到所有的学生'''
                all_students = system_info.get(key_all_student)
    
                '''系统还没有添加过学生'''
                '''
                 or 和 and 的短路操作:
                 表达式1 or 表达式2 :如果表达式1的值是True,那么不会执行表达式2,结果直接为True
                 表达式1 and 表达式2 :如果表达式1的值是False,那么不会执行表达式2,结果直接是False
                None[]
                '''
                if (not all_students) or (not len(all_students)):
                    print('系统还没有学生')
                    break
                '''有学生的时候'''
    
                for student in all_students:
                    print('姓名:%s, 年龄:%s,电话:%s,学号:%s' %\
                          (student[key_name], student[key_age], student[key_tel], student[key_id]))
            # =====根据姓名=====
            elif find_input == '2':
                find_name = input('请输入要查看的学生的名字')
                flag = True  # 表示是否找不到
                for student in all_students[:]:
                    # 如果学生的名字和输入的名字相同,就打印这个学生的信息
                    if find_name == student[key_name]:
                        print('姓名:%s, 年龄:%s,电话%s,学号:%s' % \
                              (student[key_name], student[key_age], student[key_tel], student[key_id]))
                        flag = False
                        break
                if flag:
                        print('找不到该学生的信息!')
    
    
            # =====根据学号=====
            elif find_input == '3':
                find_id = input('请输入要查看的学生的学号:')
                flag = True
                for student in all_students[:]:
                    if find_id == student[key_id]:
                        print(student)
                        flag = False
                        break
                if flag:
                    print('找不到该学生的信息!')
    
    
    # 删除学生函数:
    def delete_student():
        while True:
            print('1.按姓名删除\n2.按学号删除\n3.返回')
            del_input = input('请选择;')
            if del_input == '3':
                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 = input('请选择要删除的学生的编号:')
                del_student = del_students[int(del_num)]
                # 从系统中删除这个学生
                system_info[key_all_student].remove(del_student)
                print('删除成功')
    
            if del_input == '2':
                del_number =input('请输入要删除的学生的学号:')
                del_students = []
                for student in all_students:
                    if del_number == student[key_id]:
                        # 保存可能要删除的学生
                        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 = input('请选择要删除的学生的编号:')
                del_student = del_students[int(del_num)]
                # 从系统中删除这个学生
                system_info[key_all_student].remove(del_student)
                print('删除成功')
    
    
    # 修改学生函数:
    
    
    
    
    
    import json
    key_username = 'username'
    key_password = 'password'
    
    
    def denglu():
        try:
            with open('./files/users.json', 'r', encoding='utf-8') as f:
                content = json.load(f)
        except:
            print('系统中没有用户,请先注册')
        while True:
            username_input = input('用户名:')
            password_input1 = input('密码:')
            if (username_input in content) and (password_input1 == content[username_input][key_password]):
                print('登陆成功')
                return True
            else:
                print('用户名或密码错误!!')
    
            break
    
    
    def zhuce():
        try:
            with open('./files/users.json', 'r', encoding='utf-8') as f:
                content = json.load(f)
        except FileNotFoundError:
            content = []
            with open('./files/users.json', 'w', encoding='utf-8') as f:
                json.dump({}, f)
        username_input = input('请输入用户名:')
        while True:
            if username_input in content:
                print('用户名已存在!')
                username_input = input('请重新输入用户名:')
                continue
            else:
                print('用户名可用!')
                flag = True
                while flag:
                    password_input1 = input('请输入密码:')
                    password_input2 = input('请再次输入密码:')
                    if password_input1 == password_input2:
                        content[username_input] = {key_username: username_input, key_password: password_input1}
    
                        with open('./files/users.json', 'w', encoding='utf-8') as f:
                            json.dump(content, f)
                        print('注册成功')
                        flag = False
                    else:
                        print('两次密码输入不一致,请重新输入!!')
            break
    
    
    
    
    
    
    
    # main:
    while True:
        # 显示主页
        print('欢迎进入千锋学生管理系统')
        print('1.登录\n2.注册\n3.退出')
        # 注册
        input_value1 = input('请输入操作:')
    
        if input_value1 == '1':
            if denglu() == True:
                system_info = {}
                # 当前已经添加过的学生人数
                number = 0
                stu = {}
    
                while True:
                    # ===========显示主页==============
                    print('=======================')
                    print('欢迎进入前锋学生管理系统')
                    print('1.添加学生信息\n2.查看学生信息\n3.删除学生信息\n4.修改学生信息\n0.退出系统')
                    print('=======================')
                    # ===========退出系统==============
                    input_value = input('请选择:')
                    if input_value == '0':
                        print('已退出')
                        break
    
                    # ===========添加学生==============
                    if input_value == '1':
                        add_student()
                        continue
                    # ==========查看学生===============
                    if input_value == '2':
                        print('===查看学生===')
                        find_student()
                        continue
                    # ============删除学生==============
                    if input_value == '3':
                        delete_student()
                        continue
                    # ========修改信息===============
                    if input_value == '4':
                        print('修改信息')
                        continue
    
        if input_value1 == '2':
            zhuce()
    
        if input_value1 == '3':
            break
    
    

    相关文章

      网友评论

          本文标题:学生管理系统

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