Day10-学生管理系统

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)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

结束
==========================
欢迎进入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-学生管理系统)