Day7—作业

学生管理系统

代码如下:

"""__author__=Zeng"""
student_sys = [{'姓名': '张三', '年龄': '18', '学号': '001', '电话': '123456'},
               {'姓名': '李四', '年龄': '19', '学号': '002', '电话': '456789'}]


def interface_menu():    # 系统界面菜单
    print('='*7,'*','欢迎进入学生管理系统','*','='*7)
    print(' 1. 添加学生\n',
          '2. 删除学生\n',
          '3. 修改信息\n',
          '4. 查找信息\n',
          'q. 退出系统')
    print('=' * 37)
    # 根据输入数值进入相应操作界面
    select_num = input('请选择:')
    if select_num == '1':
        add_menu()
    elif select_num == '2':
        del_menu()
    elif select_num == '3':
        re_menu()
    elif select_num == '4':
        find_menu()
    elif select_num == 'q':
        exit(0)
    else:
        print('选择错误,请选择重新')
        interface_menu()


# 添加学生功能部分
def add_menu():     # 添加学生界面菜单
    print('=' * 37)
    print(' 1. 开始添加\n',
          '2. 返回上一级\n',
          'q. 退出系统')
    print('=' * 37)
    # 根据输入数值进入相应操作界面
    select_num = input('请选择:')
    if select_num == '1':
        add_stud()
    elif select_num == '2':
        interface_menu()
    elif select_num == 'q':
        exit(0)
    else:
        print('选择错误,请选择重新')
        add_menu()


def add_stud():
    stu_name = input('请输入学生姓名:')
    stu_age = input('请输入学生年龄:')
    stu_num = input('请输入学生学号:')
    stu_tel = input('请输入学生电话:')
    stu_info = {'姓名': stu_name,
                '年龄': stu_age,
                '学号': stu_num,
                '电话': stu_tel}
    student_sys.append(stu_info)
    print('添加成功!!!')
    cont_add()


def cont_add():
    print('=' * 37)
    print(' 1. 继续添加\n',
          '2. 返回首页\n',
          'q. 退出系统')
    print('=' * 37)
    # 根据输入数值进入相应操作界面
    select_num = input('请选择:')
    if select_num == '1':
        add_stud()
    elif select_num == '2':
        interface_menu()
    elif select_num == 'q':
        exit(0)
    else:
        print('选择错误,请选择重新')
        cont_add()


# 删除学生功能部分
def del_menu():     # 删除学生界面菜单
    print('=' * 37)
    print(' 1. 根据姓名删除\n',
          '2. 根据学号删除\n',
          '3. 返回上一级\n',
          'q. 退出系统')
    print('=' * 37)
    # 根据输入数值进入相应操作界面
    select_num = input('请选择:')
    if select_num == '1':
        del_stud(1)
    elif select_num == '2':
        del_stud(2)
    elif select_num == '3':
        interface_menu()
    elif select_num == 'q':
        exit(0)
    else:
        print('选择错误,请选择重新')
        del_menu()


def del_stud(id):
    if id == 1:
        s_name = input('请输入学生姓名:')
        name_list = []    # 创建一个新的列表,用来存放在student_sys获取的与输入姓名相同的学生信息
        id_list = []      # 创建一个新的列表,用来存放在在student_sys获取的与输入姓名相同的索引值
        i = 0            # 计算索引值
        count = 0         # 计算student_sys获取的与输入姓名相同的元素个数
        for item in student_sys[:]:
            if item['姓名'] == s_name:
                name_list.append(item)   # 遍历student_sys中与输入姓名相同的同学,并将信息存入name_list列表中
                id_list.append(i)        # 将存入name_list列表中的同学信息在student_sys的索引值存入id_list列表中
                count += 1               # 统计名字相同的个数
            i += 1                       # 每循环一次,索引值+1
        if not count:
            print('未找到该名字学生,请重新输入')
            del_menu()
        else:
            for j in range(count):
                print(j+1,'. ',name_list[j])
        del_id = int(input('请删除学生对应的编号(1 - %d):' % count)) - 1
        for x in range(count):
            if x == del_id:
                del student_sys[id_list[x]]
                print('删除成功!!!')
                cont_del(0)
    else:
        s_num = input('请输入学生学号:')
        y = 0  # 计算索引值
        for item in student_sys[:]:
            if item['学号'] == s_num:
                del student_sys[y]   # 遍历student_sys中与输入学号相同的同学,并删除
                print('删除成功!!!')
                break
            y += 1
        else:
            print('未找到该名字学生,请重新选择')
            del_menu()
        cont_del(1)

def cont_del(did):
    did1 = did
    print('=' * 37)
    print(' 1. 继续删除\n',
          '2. 返回上一级\n',
          'q. 退出系统')
    print('=' * 37)
    # 根据输入数值进入相应操作界面
    select_num = input('请选择:')
    if select_num == '1':
        if did1 == 0:
            del_stud(1)
        else:
            del_stud(2)
    elif select_num == '2':
        del_menu()
    elif select_num == 'q':
        exit(0)
    else:
        print('选择错误,请选择重新')
        cont_del(did1)


# 修改学生功能部分
def re_menu():     # 修改学生界面菜单
    print('=' * 37)
    print(' 1. 根据姓名修改\n',
          '2. 根据学号修改\n',
          '3. 返回上一级\n',
          'q. 退出系统')
    print('=' * 37)
    # 根据输入数值进入相应操作界面
    select_num = input('请选择:')
    if select_num == '1':
        re_stud(1)
    elif select_num == '2':
        re_stud(2)
    elif select_num == '3':
        interface_menu()
    elif select_num == 'q':
        exit(0)
    else:
        print('选择错误,请选择重新')
        del_menu()


def re_stud(id):
    if id == 1:
        s_name = input('请输入学生姓名:')
        name_list = []    # 创建一个新的列表,用来存放在student_sys获取的与输入姓名相同的学生信息
        id_list = []      # 创建一个新的列表,用来存放在在student_sys获取的与输入姓名相同的索引值
        i = 0            # 计算索引值
        count = 0         # 计算student_sys获取的与输入姓名相同的元素个数
        for item in student_sys[:]:
            if item['姓名'] == s_name:
                name_list.append(item)   # 遍历student_sys中与输入姓名相同的同学,并将信息存入name_list列表中
                id_list.append(i)        # 将存入name_list列表中的同学信息在student_sys的索引值存入id_list列表中
                count += 1               # 统计名字相同的个数
            i += 1                       # 每循环一次,索引值+1
        if not count:
            print('未找到该名字学生,请重新选择')
            re_menu()
        else:
            for j in range(count):
                print(j+1,'. ',name_list[j])
        del_id = int(input('请输入需修改学生对应的编号(1 - %d):' % count)) - 1
        for x in range(count):
            if x == del_id:
                re_info(x)
    else:
        s_num = input('请输入学生学号:')
        y = 0  # 计算索引值
        for item in student_sys[:]:
            if item['学号'] == s_num:
                print('该同学信息为:\n', student_sys[y])
                re_info(y)   # 遍历student_sys中与输入学号相同的同学,并修改
                print('修改成功!!!')
                break
            y += 1
        else:
            print('未找到该名字学生,请重新选择')
            re_menu()


def re_info(fid):
    fid2 = fid
    print('=' * 37)
    print(' 1. 修改学生姓名\n',
          '2. 修改学生年龄\n',
          '3. 修改学生学号\n',
          '4. 修改学生电话\n',
          '5. 返回上一级\n',
          'q. 退出系统')
    print('=' * 37)
    # 根据输入数值进入相应操作界面
    select_num = input('请选择:')
    if select_num == '1':
        re_name = input('请输入修改后的姓名:')
        student_sys[fid]['姓名'] = re_name
        print('修改成功!!!\n修改结果为:\n',student_sys[fid])
    elif select_num == '2':
        re_age = int(input('请输入修改后的年龄:'))
        student_sys[fid]['年龄'] = re_age
        print('修改成功!!!\n修改结果为:\n', student_sys[fid])
    elif select_num == '3':
        re_num = input('请输入修改后的学号:')
        student_sys[fid]['年龄'] = re_num
        print('修改成功!!!\n修改结果为:\n', student_sys[fid])
    elif select_num == '4':
        re_tel = input('请输入修改后的电话:')
        student_sys[fid]['年龄'] = re_tel
        print('修改成功!!!\n修改结果为:\n', student_sys[fid])
    elif select_num == '5':
        re_menu()
    elif select_num == 'q':
        exit(0)
    else:
        print('选择错误,请选择重新')
        interface_menu()
    re_info(fid2)


# 查找学生功能部分
def find_menu():     # 查找学生界面菜单
    print('=' * 37)
    print(' 1. 查找所有学生\n',
          '2. 根据姓名查找\n',
          '3. 根据学号查找\n',
          '4. 返回上一级\n',
          'q. 退出系统')
    print('=' * 37)
    # 根据输入数值进入相应操作界面
    select_num = input('请选择:')
    if select_num == '1':
        find_stud(1)
    elif select_num == '2':
        find_stud(2)
    elif select_num == '3':
        find_stud(3)
    elif select_num == '4':
        interface_menu()
    elif select_num == 'q':
        exit(0)
    else:
        print('选择错误,请选择重新')
        del_menu()


def find_stud(id):
    if id == 1:
        print('所有同学信息如下所示:')
        for item in student_sys[:]:
            print(item)
        print('查找成功!!!')
        find_menu()
    elif id == 2:
        s_name = input('请输入学生姓名:')
        name_list = []    # 创建一个新的列表,用来存放在student_sys获取的与输入姓名相同的学生信息
        id_list = []      # 创建一个新的列表,用来存放在在student_sys获取的与输入姓名相同的索引值
        i = 0            # 计算索引值
        count = 0         # 计算student_sys获取的与输入姓名相同的元素个数
        for item in student_sys[:]:
            if item['姓名'] == s_name:
                name_list.append(item)   # 遍历student_sys中与输入姓名相同的同学,并将信息存入name_list列表中
                id_list.append(i)        # 将存入name_list列表中的同学信息在student_sys的索引值存入id_list列表中
                count += 1               # 统计名字相同的个数
            i += 1                       # 每循环一次,索引值+1
        if not count:
            print('未找到该名字学生,请重新查找')
            cont_find(0)
        else:
            for j in range(count):
                print(j+1,'. ',name_list[j])
        print('查找成功!!!')
        cont_find(0)
    else:
        s_num = input('请输入学生学号:')
        y = 0  # 计算索引值
        for item in student_sys[:]:
            if item['学号'] == s_num:
                print(student_sys[y])   # 遍历student_sys中与输入学号相同的同学,并输出
                print('查找成功!!!')
                break
            y += 1
        else:
            print('未找到该学号学生,请重新输入')
        cont_find(1)


def cont_find(id2):
    id3 = id2
    print('=' * 37)
    print(' 1. 继续查找\n',
          '2. 返回上一级\n',
          'q. 退出系统')
    print('=' * 37)
    # 根据输入数值进入相应操作界面
    select_num = input('请选择:')
    if select_num == '1':
        if id2 == 0:
            find_stud(2)
        else:
            find_stud(3)
    elif select_num == '2':
        find_menu()
    elif select_num == 'q':
        exit(0)
    else:
        print('选择错误,请选择重新')
        cont_find(id3)


interface_menu()

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

推荐阅读更多精彩内容