60.函数应用:学生管理系统

函数应用:学生管理系统

import time
import os

# 定一个列表,用来存储所有的学生信息(每个学生是一个字典)
info_list = []


def print_menu():
    print("---------------------------")
    print("      学生管理系统 V1.0")
    print(" 1:添加学生")
    print(" 2:删除学生")
    print(" 3:修改学生")
    print(" 4:查询学生")
    print(" 5:显示所有学生")
    print(" 6:退出系统")
    print("---------------------------")


def add_new_info():
    """添加学生信息"""
    global info_list

    new_name = input("请输入姓名:")
    new_tel = input("请输入手机号:")
    new_qq = input("请输入QQ:")

    for temp_info in info_list:
        if temp_info['name'] == new_name:
            print("此用户名已经被占用,请重新输入")
            return  # 如果一个函数只有return就相当于让函数结束,没有返回值

    # 定义一个字典,用来存储用户的学生信息(这是一个字典)
    info = {}

    # 向字典中添加数据
    info["name"] = new_name
    info["tel"] = new_tel
    info["qq"] = new_qq

    # 向列表中添加这个字典
    info_list.append(info)


def del_info():
    """删除学生信息"""
    global info_list

    del_num = int(input("请输入要删除的序号:"))
    if 0 <= del_num < len(info_list):
        del_flag = input("你确定要删除么?yes or no")
        if del_flag == "yes":
            del info_list[del_num]
    else:
        print("输入序号有误,请重新输入")


def modify_info():
    """修改学生信息"""
    global info_list

    modify_num = int(input("请输入要修改的序号:"))
    if 0 <= modify_num < len(info_list):
        print("你要修改的信息是:")
        print("name:%s, tel:%s, QQ:%s" % (info_list[modify_num]['name'],
            info_list[modify_num]['tel'],info_list[modify_num]['qq']))
        info_list[modify_num]['name'] = input("请输入新的姓名:")
        info_list[modify_num]['tel'] = input("请输入新的手机号:")
        info_list[modify_num]['qq'] = input("请输入新QQ:")
    else:
        print("输入序号有误,请重新输入")


def search_info():
    """查询学生信息"""
    search_name = input("请输入要查询的学生姓名:")
    for temp_info in info_list:
        if temp_info['name'] == search_name:
            print("查询到的信息如下:")
            print("name:%s, tel:%s, QQ:%s" % (temp_info['name'],
                temp_info['tel'], temp_info['qq']))
            break
    else:
        print("没有您要找的信息....")


def print_all_info():
    """遍历学生信息"""
    print("序号	姓名		手机号		QQ")
    i = 0
    for temp in info_list:
        # temp是一个字典
        print("%d	%s		%s		%s" % (i, temp['name'], temp['tel'], temp['qq']))
        i += 1


def main():
    """用来控制整个流程"""
    while True:
        # 1. 打印功能
        print_menu()

        # 2. 获取用户的选择
        num = input("请输入要进行的操作(数字)")

        # 3. 根据用户选择,做相应的事情
        if num == "1":
            # 添加学生
            add_new_info()
        elif num == "2":
            # 删除学生
            del_info()
        elif num == "3":
            # 修改学生
            modify_info()
        elif num == "4":
            # 查询学生
            search_info()
        elif num == "5":
            # 遍历所有的信息
            print_all_info()
        elif num == "6":
            # 退出系统
            exit_flag = input("亲,你确定要退出么?~~~~(>_<)~~~~(yes or no) ")
            if exit_flag == "yes":
                break
        else:
            print("输入有误,请重新输入......")


        input("


按回车键继续....")
        os.system("clear")  # 调用Linux命令clear完成清屏

# 程序的开始
main()

例子:

学生管理系统分析

# 每个学生的信息 (名字 年龄)
# 小明 20
# 小红 19

# 基本数据类型 pass
# list dict

# 保存数据类型为list
# all_list = [{"name": "小明", "age": 20}, {"name": "小红", "age": 19}]

# 删除
# 引导用户输入学生的名字 -> 小明
# for i, dict in enumerate(all_list):
#     if "小明" in dict.values():
#

# 最终的方案:
all_dict = {"小明": {"name": "小明", "age": 20}, "小红": {"name": "小红", "age": 19}}
if "小明" in all_dict:
    del all_dict["小明"]

学生管理系统实现:

# 公共函数
def get_name(desc):
    return input("请输入需要%s信息的名字:" % desc)

# 定义一个字典 保存所有学生的信息
all_dict = {"小明": {"name": "小明", "age": "20"}, "小红": {"name": "小红", "age": "19"}}
print("      学生管理系统 V1.0")
print(" 1:添加学生")
print(" 2:删除学生")
print(" 3:修改学生")
print(" 4:查询学生")
print(" 5:显示所有学生")
index = input("请选择:")
#all_dict = {"小明": {"name": "小明", "age": 20}, "小红": {"name": "小红", "age": 19}}
# 判断
# 1:添加学生
if index == "1":
    # 引导用户输入名字和年龄
    my_name = input("请输入您的名字:")
    my_age = input("请输入您的年龄:")
    # 构造内部字典
    my_dict = {"name": my_name, "age": my_age}
    # 保存数据
    all_dict[my_name] = my_dict
    print("保存数据成功...")
# 2:删除学生
elif index == "2":
    # 引导用户输入
    # my_name = input("请输入需要删除信息的名字:")
    my_name = get_name("删除")
    # 判断
    if my_name in all_dict:
        # 删除键值对
        del all_dict[my_name]
        print("删除数据成功...")
    else:
        print("您输入的名字有误!!!")
# 3:修改学生
elif index == "3":
    # 引导用户
    # my_name = input("请输入需要修改信息的名字:")
    my_name = get_name("修改")
    if my_name in all_dict:
        # 引导用户输入新的年龄
        my_age = input("请输入您新的年龄:")
        all_dict[my_name]["age"] = my_age
        print("修改数据成功...")
    else:
        print("您输入的名字有误!!!")
# 4:查询学生
elif index == "4":
    # 引导用户
    # my_name = input("请输入需要查询信息的名字:")
    my_name = get_name("查询")
    if my_name in all_dict:
        print("姓名:%s" % my_name)
        print("年龄:%s" % all_dict[my_name]["age"])
    else:
        print("您输入的名字有误!!!")
# 5:显示所有学生
elif index == "5":
    for k, v in all_dict.items():
        print("姓名:%s" % k)
        print("年龄:%s" % v["age"])
        print("-"*30)

print(all_dict)
原文地址:https://www.cnblogs.com/kangwenju/p/12847038.html