day7-作业:学生管理系统(功能ok 操作错误有bug哦)

#==============1.数据结构的设置================
"""
数据关系:一个学生管理系统可以保存多个学生信息。一个学生保存姓名、年龄、电话、学号等信息。
一个学生管理系统对应的数据模型:一个列表
一个学生对应的数据类型:一个字典
整个数据结构:
student_system=
[
    {'name':x,'age':x,'tel':x,'id':x},
    {'name':x,'age':x,'tel':x,'id':x},
    {'name':x,'age':x,'tel':x,'id':x},
]
"""
#==============2.页面设计和控制================
page = """=============================
    ^(* ̄(oo) ̄)^欢迎ddf:
    1.添加学生
    2.查看学生
    3.修改学生信息
    4.删除学生
    5.返回
============================="""
#函数声明变量赋值
#添加学生函数
def add_student():
    dict1 = {}
    student_id = 'stu' + str(i).rjust(3, '0')
    name = input('请输入学生姓名:')
    age = input('请输入学生的年龄:')
    tel = input('请输入学生的电话:')
    dict1.update({'学号': student_id, '姓名': name, '年龄': age, '电话': tel})
    dict2 = dict1.copy()
    list1.append(dict2)
    return list1


#按姓名查找
def name_find(name):
    global j,list9
    list9 = []
    j = 0
    for item in list1:
        if item['姓名'] == name:
            print(j,item)
            list9.append({j: item})
            j += 1
    return list9

#按学号查找
def id_find(id):
    for item in list1:
        if item['学号'] == id:
            return item

#按姓名修改
def name_change(n: int):
    x = list9[n].get(n)
    x['姓名'] = input('请修改姓名:')
    x['年龄'] = input('请修改年龄:')
    x['电话'] = input('请修改电话:')


#按学号修改
def id_change(id):
    print(id_find(id))
    id_find(id)['姓名'] = input('请修改姓名:')
    id_find(id)['年龄'] = input('请修改年龄:')
    id_find(id)['电话'] = input('请修改电话:')
    return id_find(id)

#按姓名删除
def name_del(n: int):
    x = list9[n].get(n)
    list1.remove(x)
    del list9[n]
    return list1


#按学号删除
def id_delete(id):
    list1.remove(id_find(id))
    return list1


#学生信息保存的列表
list1 = []
#学号自动生成初始值
i = 0
#主程序
while True:
    #显示主界面
    print(page)
    #给出选择
    value = input('请选择(1-5):')
    #根据不同的选择做不一样的反应
    if value == '1':
        # 添加学生
        while True:
            i += 1
            add_student()
            print('添加成功!')
            print('1. 继续\n2. 返回')
            value1 = input('请选择(1-2):')
            if value1 == '1':
                continue#继续执行while True这个循环
            #输错提示
            else:
                break#跳出while True这个循环
    elif value == '2':
        #查看学生
        while True:
            print('1.查看所有学生')
            print('2.按姓名查找')
            print('3.按学号查找')
            print('4.返回')
            value2 = input('请选择(1-4):')
            if  value2 == '1':
                for item in list1:
                    print(item)
                continue
            elif value2 == '2':
                name = input('请输入姓名:')
                name_find(name)
                continue
            elif value2 == '3':
                id = 'stu' + input('请输入学号(别超过三位数):').rjust(3, '0')
                print(id_find(id))
                continue
            else:
                break
    elif value == '3':
        #修改学生
        while True:
            print('1.按姓名修改')
            print('2.按学号修改')
            print('3.返回')
            value3 = input('请选择(1-3):')
            if value3 == '1':
                name = input('请输入姓名:')
                while True:
                    name_find(name)
                    print('q 返回上一层')
                    value31 = input('请输入要修改学生对应的标号')  # 不能将q转换为int型
                    if value31 == 'q':
                        break
                    elif int(value31) <= j:
                        name_change(int(value31))
                        continue
            if value3 == '2':
                id = 'stu' + input('请输入学号(别超过三位数):').rjust(3, '0')
                print(id_change(id))
            else:
                break
    elif value == '4':
        #删除学生
        while True:
            print('1.按姓名删除')
            print('2.按学号删除')
            print('3.返回')
            value4 = input('请选择(1-3):')
            if value4 == '1':
                name = input('请输入姓名:')
                while True:
                    name_find(name)
                    print('q 返回上一层')
                    value41 = input('请输入要删除学生对应的标号')  # 不能将q转换为int型
                    if value41 == 'q':
                        break
                    elif int(value41) <= j:
                        name_del(int(value41))
                        continue
            if value4 == '2':
                id = 'stu' + input('请输入学号(别超过三位数):').rjust(3, '0')
                print(id_delete(id))
            else:
                break
    else:
        #退出
        print('\t退出成功!')
        break
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容

  • 给出一个列表:numbers = [23, 45, 78, 32, 90, 89, 123, 155, 121] ...
    魅影_0d2e阅读 176评论 0 0
  • 1.编写一个函数,求1+2+3+...+N 结果 2.编写一个函数,求多个数中的最大值 结果 3.编写一一个函数,...
    旧时初_2e8d阅读 198评论 0 4
  • 1.写一个程序 a.用一个变量来保存一个班级的学生信息,学生信息:姓名、学号、成绩(英语、体育、美术、数学)、年龄...
    HavenYoung阅读 272评论 0 2
  • 学生管理系统 代码如下:
    C0mpass阅读 200评论 0 0
  • 从小到大,所有人都对我有很大的期待,在他们的眼里我似乎看到了极大期待,所以我每次的考试都争取考好,在家里努力让自己...
    牛涵葳阅读 362评论 0 0