Python实现学生系统

# 4. 修改之前的学生信息管理程序,实现添加菜单和选择菜单操作功能:
#    菜单:
#      +-----------------------------+
#      |  1) 添加学生信息              |
#      |  2) 查看所有学生信息          |
#      |  3) 修改学生的成绩            |
#      |  4) 删除学生信息              |
#      |  q) 退出                     |
#      +-----------------------------+
#    请选择: 1
#      请输入姓名:....
#    请选择: 3
#      请输入修改学生的姓名: ....
#   (要求每个功能都对应一个函数)


def input_student():
    # 此函数获取学生信息,并返回学生信息的字典的列表
    L = []
    # d = {}  # 此处所有学生将共用一个字典,会出错
    while True:
        name = input("请输入学生姓名: ")
        if not name:
            break
        age = int(input("请输入学生年龄: "))
        score = int(input("请输入学生成绩: "))
        d = {}  # 重新创建一个新的字典
        d['name'] = name
        d['age'] = age
        d['score'] = score
        L.append(d)
    return L


def output_student(L):
    # 以表格形式再打印学生信息
    print('+------------+------+-------+')
    print('|   name     | age  | score |')
    print('+------------+------+-------+')
    for d in L:  # d绑定的是字典
        t = (d['name'].center(12),
             str(d['age']).center(6),
             str(d['score']).center(7))
        line = "|%s|%s|%s|" % t  # t是元组
        print(line)
    print('+------------+------+-------+')

# 写一个打印菜单的函数
def show_menu():
    print('+-----------------------------+')
    print('|  1) 添加学生信息            |')
    print('|  2) 查看所有学生信息        |')
    print('|  3) 修改学生的成绩          |')
    print('|  4) 删除学生信息            |')
    print('|  q) 退出                    |')
    print('+-----------------------------+')

# 此函数用来存改学生的信息
def modify_student_info(lst):
    name = input("请输入要修改学生的姓名: ")
    for d in lst:
        if d['name'] == name:
            score = int(input("请输入新的成绩: "))
            d['score'] = score
            print("修改", name, '的成绩为', score)
            return
    else:
        print("没有找到名为:", name, '的学生信息')

# 定义一个删除学生信息的函数
def delete_student_info(lst):
    name = input("请输入要删除学生的姓名: ")
    for i in range(len(lst)):  # 从0开始把所有索引取出一遍
        if lst[i]['name'] == name:
            del lst[i]
            print("已成功删除: ", name)
            return True
    else:
        print("没有找到名为:", name, "的学生")

# 定义一个主函数,用来获取键盘操作,实现选择的功能
def main():
    docs = []  # 此列表用来存储所有学生的信息的字典
    while True:
        show_menu()
        s = input("请选择: ")
        if s == '1':
            docs += input_student()
        elif s == '2':
            output_student(docs)
        elif s == '3':  # 修改学生成绩
            modify_student_info(docs)
        elif s == '4':  # 删除学生成绩
            delete_student_info(docs)
        elif s == 'q':
            return  # 结束此函数执行,直接退出


main()
 

总结一下思路:学生的所有信息都是输入进变量里,然后将变量指向字典对应键的值,由此单个学生的信息都存入字典中,再将这些字典存在列表中,遍历列表遍历学生信息
posted @ 2019-12-26 14:07  kelly-凯莉  阅读(1321)  评论(0编辑  收藏  举报