zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    poj2594 Treasure Exploration 二分匹配之最小路径覆盖+传递闭包
    Qsort和Sort排序函数用法
    poj1696 Space Ant 卷包裹法 向量叉积比较
    poj1113 Wall 凸包问题 官方数据
    poj2187 Beauty Contest 凸包求点集的直径
    printf 里面的 %lf 要改成 %f G++,G++的浮点型需要%f输出,%lf就是WA!!!
    让IE6支持Fixed
    更改input type="file" 的样式
    Repeater心得
    Windows服务删除
  • 原文地址:https://www.cnblogs.com/kangwenju/p/12847038.html
Copyright © 2011-2022 走看看