学生管理系统

"""------ __author__ ==  李  墨  ------"""
import json
def lm_welcome():
    print('='*40)
    print('❀❀欢迎李墨❀❀',end='\n')
    print('❤ 1. 添加学生','❤ 2. 查看学生','❤ 3. 修改学生信息','❤ 4. 删除学生','❤ 5. 返回',sep='\n',)
    print('='*40)
#欢迎界面
def read_stu_data(filename):
    with open(filename,encoding='utf-8') as f_read:
        stu_data=f_read.read()
        if not stu_data:
            stu_data='[{"学号":"stu000","姓名":"李四","年龄":"18","电话":"123456789"}]'
        stu_data=json.loads(stu_data)
    return stu_data

def write_stu_data(filename,stu_data):
    with open(filename,'w',encoding='utf-8') as f_write:
        stu_data=json.dumps(stu_data)
        f_write.write(stu_data)

def get_stu_id(list_stu):
    stu_id=list_stu[-1]["学号"]
    return stu_id[:3]+str(int(stu_id[3:])+1).zfill(3)
#自动生成学号

def lm_main_choose():
    main_choose=int(input('请选择(1~5):'))
    return main_choose
#做第一步选择

def add_stu(list_stu=[]):
    dict_stu = {}
    print('=============添加学生================')
    dict_stu['学号'] = get_stu_id(list_stu)
    name=input('输入学生姓名:')
    dict_stu['姓名']=name
    age=int(input('输入学生年龄:'))
    dict_stu['年龄'] = age
    tel=input('输入学生电话:')
    dict_stu['电话'] = tel
    list_stu.append(dict_stu)
    print('添加成功!','1.继续','2.返回',sep='\n')
    choose_2=int(input('请选择(1~2):'))
    return choose_2,list_stu
#添加学生

def lm_look(list_stu):
    print('1.查看所有学生','2.按姓名查找','3.按学号查找','4.返回',sep='\n')
    choose_3=int(input('请选择(1~4):'))
    if choose_3==1:
        for item in list_stu:
            for data in item:
                print(data,item[data],sep=':',end=';')
            print()
    elif choose_3==2:
        look_name=input('请输入该学生姓名:')
        for item in list_stu:
            if item['姓名']==look_name:
                for data in item:
                    print(data, item[data], sep=':', end=';')
                print()
    elif choose_3==3:
        look_name=input('请输入该学生学号:')
        for item in list_stu:
            if item['学号']==look_name:
                for data in item:
                    print(data, item[data], sep=':', end=';')
                print()
    else:
        return choose_3
#查看学生

def lm_change_stu(list_stu):
    change_stu_id=input('请输入修改学生的学号:')
    print('1.修改学生姓名','2.修改学生年龄','3.修改学生电话','4.返回',sep='\n')
    choose_4=int(input('请选择(1~4):'))
    if choose_4!=4:
        change_choose=['姓名','年龄','电话'][choose_4-1]
        change_data=input('请输入新'+change_choose+':')
        for stu in list_stu:
            if stu['学号']==change_stu_id:
                if change_choose=='年龄':
                    stu[change_choose] = int(change_data)
                else:
                    stu[change_choose]=change_data
        print('修改成功!', '1.继续', '2.返回', sep='\n')
        choose_4_1 = int(input('请选择(1~2):'))
        if choose_4_1==2:
            choose_4=4
    return list_stu,choose_4
#修改学生信息

def lm_delete(list_stu):
    delete_data=input('请输入删除学生学号:')
    for item in list_stu:
        if item['学号']==delete_data:
            list_stu.remove(item)
            break
    print('删除成功!','1.继续','2.返回',sep='\n')
    choose_5=int(input('请选择(1~2):'))
    return choose_5,list_stu
#删除学生信息
filename='stu_management_data.txt'
list_stu = read_stu_data(filename)

while True:
    lm_welcome()
    choose_1 = lm_main_choose()

    if choose_1==1:
        choose_2=1
        while choose_2==1:
            choose_2, list_stu=add_stu(list_stu)
            write_stu_data(filename, list_stu)
    elif choose_1==2:
        choose_3=0
        while choose_3!=4:
            list_stu = read_stu_data(filename)
            choose_3=lm_look(list_stu)
    elif choose_1==3:
        choose_4=0
        while choose_4!=4:
            list_stu, choose_4=lm_change_stu(list_stu)
        write_stu_data(filename, list_stu)
    elif choose_1==4:
        choose_5=0
        while choose_5!=2:
            choose_5,list_stu=lm_delete(list_stu)
        write_stu_data(filename, list_stu)
    else:
        print('see you!')
        break

你可能感兴趣的:(学生管理系统)