美文网首页
Day10-学生管理系统

Day10-学生管理系统

作者: 晓晓的忍儿 | 来源:发表于2018-07-28 00:44 被阅读0次

    student_main.py

    '''__author__==fubo'''
    
    '''
    '''
    import doc_method as doc
    import student_method as met
    import student_doc as stu
    
    if __name__ == '__main__':
        # 管理系统
        while True:
            flage = False
            mul=met.manage_boundary()
            mul2=met.choose_login(mul,'./files/manages.json')
           #学生模块
            while mul2=='4':
                mul3=met.student_boundary()
                # address=input('请输入地址:')
                while mul3:
                    if mul3=='1':
                        mul3=stu.add_student('./files/students.json')
                        print(type(mul3))
                        continue
                    if mul3 == '2':
                        mul3 = stu.find_student('./files/students.json')
                        continue
                    if mul3 == '3':
                        mul3 = stu.del_student('./files/students.json')
                        continue
                    if mul3 == '4':
                        mul3 = stu.updata_student('./files/students.json')
                        continue
                    if mul3 == '5':
                        print('结束')
                        break
                    else:
                        flage=True
                        break
                if flage:
                    break
            #退出
            if mul=='3':
                print('退出管理系统')
                break
    
    

    doc_method.py

    #判断方法'./files/manages.json'
    '''
    import json
    def get_r_doc(address):
        '''
        判断address对应的文件是否存在或者文件是否为空
        :param address: 文件地址
        :return: 返回1文档存在且不为空和2文档不存在,3文档存在但为空
        '''
        try:
            with open(address, 'r', encoding='utf-8') as f:
                dict = json.load(f)
                dict=get_python_data(dict)
                return dict
        except FileNotFoundError:
            # print('系统中没有该文档')
            return 2
        except json.decoder.JSONDecodeError:
            # print('文档为空')
            return 3
    def set_doc(*data):
        """
        创建一个.json文档
        :param address: 地址
        :param type: 写的类型
        :param data:
        :return:
        """
    
        with open(data[0], 'w', encoding='utf-8') as f:
            if len(data)==2:
                write_doc=json.dump(get_json_data(data[1]),f)
                return write_doc
            else:
                return
    
    def get_json_data(data):
        '''
        将python数据转换成json数据
        :param data: 数据
        :return: 返回json数据
        '''
        json_data=json.dumps(data)
        return json_data
    def get_python_data(data):
        '''
        将json数据转换成python数据
        :param data: json数据
        :return: 返回python数据
        '''
        python_data=json.loads(data)
        return python_data
    
    if __name__ == '__main__':
        # if not get_r_judge('./files/text.json'):
        #     print('你是第一个分组')
        # if  get_r_doc('./files/manages.json'):
            set_doc('./files/manages.json','name')
            print(get_r_doc('./files/manages.json'))
    
    

    student_doc

    from student_method import add_dict
    import doc_method as doc
    def add_student(address):
        dict = doc.get_r_doc(address)
        if dict == 2 or dict == 3:
            print('首次添加')
            name = input('请输入姓名:')
            age = input('年龄:')
            tel=input('电话')
            num1=1
            id = 'py1805' + str(num1).rjust(3, '0')
            dict = {}  # 最外层字典
            list1 = []
            list2 = ['name','age','tel', 'id']
            list3 = [name, age,tel,id]
            dict1 = add_dict(list2, list3)
            list1.append(dict1)
            # dict = doc.get_json_data(dict)
            dict['all_student'] = list1
            doc.set_doc(address, doc.get_json_data(dict))
            print('添加成功')
            print('1.继续添加')
            print('2.返回首页')
            mul5 = input('>>>')
            return mul5
        else:
            print('添加学生')
            name = input('请输入姓名:')
            age = input('年龄:')
            tel = input('电话')
            dict = doc.get_python_data(dict)
            num1=0
            for item in dict['all_student']:
                print(item['id'])
                if str(num1)<item['id']:
                    num=item['id']
            mul2=int(num[-1])
            mul3 = int(num[-2])
            mul4 = int(num[-3])
            if mul2+1>9:
                mul2=0
                if (mul3+1)>9:
                    mul3=0
                    mul4=mul4+1
                else:
                    mul3=mul3+1
            else:
                mul2=mul2+1
            id = 'py1805' + str(mul4)+str(mul3)+str(mul2)
            list2 = ['name', 'age', 'tel', 'id']
            list3 = [name, age, tel, id]
            dict1 = add_dict(list2, list3)
            dict['all_student'].append(dict1)
            doc.set_doc(address, doc.get_json_data(dict))
            print('1.继续添加')
            print('5.返回首页')
            mul5 = input('>>>')
            return mul5
    def find_student(address):
        dict = doc.get_r_doc(address)
        dict=doc.get_python_data(dict)
        if dict == 2 or dict == 3 or not dict['all_student']:
            print('系统中还未录入信息')
            mul1=input('1.添加,5.返回首页,其他退出系统')
            if mul1=="1" or mul1=='5':
                return mul1
            else:
                return
        else:
            print('1.查看所有的学生信息')
            print('2.根据学生姓名查看学生信息')
            print('3.根据学生学号查看学生信息')
            print('4.返回上一层')
            mul2=input(">>>")
            if mul2=='1':
                for student in dict['all_student']:
                    print('姓名:%s,年龄:%s,电话:%s,学号:%s' % \
                      (student['name'], student['age'], student['tel'], \
                       student['id']))
                return '5'
            if mul2 == '2':
                find_name(dict)
                return '5'
            if mul2=='3':
                find_id = input("请输入你想查看的学生学号:")
                for student in dict['all_student']:
                    if find_id==student['id']:
                        print('姓名:%s,年龄:%s,电话:%s,学号:%s' % \
                              (student['name'], student['age'], student['tel'], \
                               student['id']))
                return '5'
            if mul2=='4':
                return '5'
            else:
                return
    
    def del_student(address):
        dict = doc.get_r_doc(address)
        dict=doc.get_python_data(dict)
        if dict == 2 or dict == 3:
            print('系统中还未录入信息')
            mul1 = input('1.添加,5.返回首页,其他退出系统')
            if mul1 == "1" or mul1 == '5':
                return mul1
            else:
                return
        else:
            print('1.按姓名删除学生')
            print('2.按学号删除学生')
            print('3.返回')
            mul2=input('>>>')
            if mul2=='1':
                list1=find_name(dict)
                mul3=int(input('>>>'))
                dict['all_student'].remove(list1[mul3])
                dict=doc.get_json_data(dict)
                doc.set_doc(address,dict)
                return '5'
            if mul2=='2':
                find_id = input("请输入你想查看的学生学号:")
                for student in dict['all_student']:
                    if find_id == student['id']:
                        dict['all_student'].remove(student)
                        dict = doc.get_json_data(dict)
                        doc.set_doc(address, dict)
                return '5'
            if mul2=='3':
                return "5"
    
    def updata_student(address):
        dict = doc.get_r_doc(address)
        dict=doc.get_python_data(dict)
        if dict == 2 or dict == 3:
            print('系统中还未录入信息')
            mul1 = input('1.添加,5.返回首页,其他退出系统')
            if mul1 == "1" or mul1 == '5':
                return mul1
            else:
                return
        else:
            print('1.按姓名修改学生')
            print('2.按学号修改学生')
            print('3.返回')
            mul2=input('>>>')
            if mul2=='1':
                list=find_name(dict)
                if list:
                    mul3 = int(input('>>>'))
                    while True:
                        str2=input('修改项:')
                        str3 = input('修改内容:')
                        # if str2 not in list[mul3]:
                        print('该修改项不存在')
                        # dict=doc.get_python_data(dict)
                        # else:
                        dict['all_student'][mul3][str2] = str3
                        if not str2 and not str3:
                            break
                    dict = doc.get_json_data(dict)
                    doc.set_doc(address, dict)
                    return '5'
                else:
                    print('没有该学生')
                    return '5'
            if mul2=='2':
                find_id = input("请输入你想修改的学生学号:")
                for student in dict['all_student']:
                    if find_id == student['id']:
                        while True:
                            str2 = input('修改项:')
                            str3 = input('修改内容:')
                            # if str2 not in student:
                            # print('该修改项不存在')
                            # dict=doc.get_python_data(dict)
                            # else:
                            student[str2]=str3
                            if not str2 and not str3:
                                break
                dict = doc.get_json_data(dict)
                doc.set_doc(address, dict)
            if mul2=='3':
                return "5"
    def find_name(dict)  :
        find_name = input('请输入学生的姓名:')
        list1 = []
        for student in dict['all_student']:
            if find_name == student['name']:
                list1.append(student)
        for item in range(len(list1)):
            print(item, '姓名:%s,年龄:%s,电话:%s,学号:%s' % \
                  (list1[item]['name'], list1[item]['age'], list1[item]['tel'], \
                   list1[item]['id']))
        if list1:
            return list1
        else:
            return
    
    if __name__ == '__main__':
        # add_student( './files/students.json')
        # find_student('./files/students.json')
        # del_student('./files/students.json')
        updata_student('./files/students.json')
    

    student_method.py

    import doc_method as doc
    def student_boundary():
        print('==========================')
        print('欢迎进入XXX学生管理系统')
        print('1.添加学生\n2.查看学生\n3.删除学生\n4.修改学生信息\n0.退出')
        print('==========================')
        mul1=input_value = input('请输入:')
        return mul1
    def manage_boundary():
        print('***********************************')
        print('1.登录')
        print('2.注册')
        print('3.退出')
        print('***********************************')
        # 模块1 manage管理 列表 字典
        num1 = input('请选择操作:')
        return num1
    def add_dict(list1,list2):
        dict1=dict.fromkeys(list1)
        num=0
        for item in dict1:
            dict1[item]=list2[num]
            num+=1
        return dict1
    def choose_login(num,address):
        while True:
            dict = doc.get_r_doc(address)
            if num=='1':
                print('请登录')
                user_name = input('请输入姓名:')
                password = input('请输入密码:')
                if dict==2:
                    print('系统中没有该文档')
                    doc.set_doc(address,'')
                    num=input('注册请输入2,退出请输入5:')
                    if num==5:
                        num=0
                    continue
                elif dict==3:
                    print('系统中还未录入任何信息')
                    num = input('注册请输入2,退出请输入5:')
                    if num == 5:
                        num = 0
                    continue
                else:
                    num2 = 0
                    dict=doc.get_python_data(dict)
                    for item in dict['all_manage']:
                        # print(item['manage_name'],item['password'])
                        if item['manage_name'] == user_name and item['password'] == password:
                            print('登录成功')
                            num2 = 0.1
                            return '4'
                        if item['manage_name'] != user_name :
                            num2 += 1
                    if num2 == len(dict['all_manage']) :
                        print('系统没有该用户,请注册')
                        num = input('>>>')
                        continue
                    elif num2 == 0:
                        print('登录有误,请重新登录')
                        num = '1'
                        continue
            if num=='2':
                num=add_people(dict,address)
                if num:
                    return num
                else:
                    continue
    def add_people(dict,address):
        if dict == 2 or dict == 3:
            print('恭喜你,你是第一个登录本系统')
            name = input('请输入姓名:')
            password = input('请输入密码:')
            dict = {}  # 最外层字典
            list1 = []
            list2 = ['manage_name', 'password']
            list3 = [name, password]
            dict1 = add_dict(list2, list3)
            list1.append(dict1)
            # dict = doc.get_json_data(dict)
            dict['all_manage'] = list1
            doc.set_doc(address, doc.get_json_data(dict))
            num = input('请选择其他功能:')
            if num == '2':
                print('您已经注册,系统将让你返回登录界面')
                return
            elif num=='3':
                return num
            else:
                return
    
        else:
            print('欢迎您来注册')
            name = input('请输入姓名:')
            password = input('请输入密码:')
            list2 = ['manage_name', 'password']
            list3 = [name, password]
            dict1 = add_dict(list2, list3)
            dict = doc.get_python_data(dict)
            dict['all_manage'].append(dict1)
            doc.set_doc(address, doc.get_json_data(dict))
            num = input('请选择其他功能:')
            if num == '2':
                print('您已经注册,系统将让你返回登录界面')
            elif num=='3':
                return num
            else:
                return
    
    if __name__ == '__main__':
        choose_login('1','./files/manages.json')
        # print(add_dict([1,2], [3,4]))
    

    结果:

    D:\Python项目\Day10-管理系统\code\venv\Scripts\python.exe D:/Python项目/Day10-管理系统/code/student_main.py
    ***********************************
    1.登录
    2.注册
    3.退出
    ***********************************
    请选择操作:1
    请登录
    请输入姓名:we
    请输入密码:123
    登录成功
    ==========================
    欢迎进入XXX学生管理系统
    1.添加学生
    2.查看学生
    3.删除学生
    4.修改学生信息
    0.退出
    ==========================
    请输入:1
    添加学生
    请输入姓名:we
    年龄:234
    电话2151
    py1805003
    py1805005
    py1805007
    1.继续添加
    5.返回首页
    >>>5
    <class 'str'>
    结束
    ==========================
    欢迎进入XXX学生管理系统
    1.添加学生
    2.查看学生
    3.删除学生
    4.修改学生信息
    0.退出
    ==========================
    请输入:2
    1.查看所有的学生信息
    2.根据学生姓名查看学生信息
    3.根据学生学号查看学生信息
    4.返回上一层
    >>>1
    姓名:tr,年龄:235,电话:35,学号:py1805003
    姓名:we,年龄:24,电话:2352,学号:py1805005
    姓名:we,年龄:12415,电话:536,学号:py1805007
    姓名:we,年龄:234,电话:2151,学号:py1805008
    结束
    ==========================
    欢迎进入XXX学生管理系统
    1.添加学生
    2.查看学生
    3.删除学生
    4.修改学生信息
    0.退出
    ==========================
    请输入:3
    1.按姓名删除学生
    2.按学号删除学生
    3.返回
    >>>1
    请输入学生的姓名:we
    0 姓名:we,年龄:24,电话:2352,学号:py1805005
    1 姓名:we,年龄:12415,电话:536,学号:py1805007
    2 姓名:we,年龄:234,电话:2151,学号:py1805008
    >>>0
    结束
    ==========================
    欢迎进入XXX学生管理系统
    1.添加学生
    2.查看学生
    3.删除学生
    4.修改学生信息
    0.退出
    ==========================
    请输入:2
    1.查看所有的学生信息
    2.根据学生姓名查看学生信息
    3.根据学生学号查看学生信息
    4.返回上一层
    >>>1
    姓名:tr,年龄:235,电话:35,学号:py1805003
    姓名:we,年龄:12415,电话:536,学号:py1805007
    姓名:we,年龄:234,电话:2151,学号:py1805008
    结束
    ==========================
    欢迎进入XXX学生管理系统
    1.添加学生
    2.查看学生
    3.删除学生
    4.修改学生信息
    0.退出
    ==========================
    请输入:4
    1.按姓名修改学生
    2.按学号修改学生
    3.返回
    >>>1
    请输入学生的姓名:we
    0 姓名:we,年龄:12415,电话:536,学号:py1805007
    1 姓名:we,年龄:234,电话:2151,学号:py1805008
    >>>0
    修改项:age
    修改内容:12
    修改项:
    修改内容:
    结束
    ==========================
    欢迎进入XXX学生管理系统
    1.添加学生
    2.查看学生
    3.删除学生
    4.修改学生信息
    0.退出
    ==========================
    请输入:2
    1.查看所有的学生信息
    2.根据学生姓名查看学生信息
    3.根据学生学号查看学生信息
    4.返回上一层
    >>>1
    姓名:tr,年龄:12,电话:35,学号:py1805003
    姓名:we,年龄:12415,电话:536,学号:py1805007
    姓名:we,年龄:234,电话:2151,学号:py1805008
    结束
    ==========================
    欢迎进入XXX学生管理系统
    1.添加学生
    2.查看学生
    3.删除学生
    4.修改学生信息
    0.退出
    ==========================
    请输入:5
    结束
    ==========================
    欢迎进入XXX学生管理系统
    1.添加学生
    2.查看学生
    3.删除学生
    4.修改学生信息
    0.退出
    ==========================
    请输入:0
    ***********************************
    1.登录
    2.注册
    3.退出
    ***********************************
    请选择操作:3
    

    相关文章

      网友评论

          本文标题:Day10-学生管理系统

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