学生管理系统

"""------ __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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容