学生信息管理系统

# 第一题:设计一个全局变量,来保存很多个学生信息;学生(学号, 姓名,年龄);思考要用怎样的结构来保存;
# 第二题:在第一题基础上,完成:让用户输入一个新的学生信息(学号,姓名,年龄);你将其保存在全局变量中;并提供给用户查看当前有多少个学生的功能;
# 第三题:向用户提供根据学号查看指定学员具体信息,指定学号删除学员功能
# 定一个列表,用来存储所有的学生信息(每个学生是一个字典)
info_list = []

def print_menu():
    print("=" * 42)
    print("*" * 10 + "简单的学生信息管理系统" + "*" * 10)
    print("=" * 42)
    print("1.添加学生信息")
    print("2.删除学生信息")
    print("3.给定学号查询学生信息")
    print("4.显示当前所有学生信息")
    print("5.保存数据")
    print("0.退出系统")
    print("=" * 42)

def add_new_info():
    """添加学生信息"""
    global info_list
    new_sno = input("请输入学生的学号:")
    new_stuName = input("请输入学生的姓名:")
    new_sutAge = input("请输入学生的年龄:")
    for temp_info in info_list:
        if temp_info['sno'] == new_sno:
            print("此用户名已经被占用,请重新输入")
            return # 如果一个函数只有return就相当于让函数结束,没有返回值
    # 定义一个字典,用来存储用户的学生信息(这是一个字典)
    info = {}
    # 向字典中添加数据
    info["sno"] = new_sno
    info["name"] = new_stuName
    info["age"] = new_sutAge
    # 向列表中添加这个字典
    info_list.append(info)

def del_info():
    """删除学生信息"""
    global info_list
    del_sno = input("请输入要删除的学生学号:")
    i = 0
    for temp_info in info_list:
        if temp_info['sno'] == del_sno:
            del_flag = input("你确定要删除么?(yes or no)")
            if del_flag == "yes":
                del info_list[i]
                print("

删除成功!")
        else:
            print("输入学号有误,请重新输入")
        i += 1

def search_info():
    """查询学生信息"""
    search_sno = input("请输入要查询的学生学号:")
    for temp_info in info_list:
        if temp_info['sno'] == search_sno:
            print("查询到的信息如下:")
            print("sno:%s, stuName:%s, stuAge:%s" % (temp_info['sno'],
            temp_info['name'], temp_info['age']))
            break
    else:
        print("没有您要找的信息....")

def print_all_info():
    """遍历学生信息查询当前所有学生信息"""
    print("序号	学号		姓名		年龄")
    i = 0
    for temp in info_list:
        # temp是一个字典
        print("%d	%s		%s		%s" % (i, temp['sno'], temp['name'], temp['age']))
        i += 1

def save_data():
    """加载之前存储的数据"""
    f = open("info_data.data","w")
    f.write(str(info_list))
    f.close()


def load_data():
    global info_list
    """加载之前存储的数据"""
    f = open("info_data.data")
    content = f.read()
    info_list = eval(content)
    f.close()

def main():
    """用来控制整个流程"""
    # 加载数据(先存好数据再打开这个就可以直接读数据了)
    # load_data()
    while True:
        # 1. 打印功能
        print_menu()
        # 2. 获取用户的选择
        key = input("请输入要进行的操作(数字):")
        # 3. 根据用户选择,做相应的事情
        if key == "1":
            # 添加学生
            add_new_info()
        elif key == "2":
            # 删除学生
            del_info()
        elif key == "3":
            # 给定学号查询学生信息
            search_info()
        elif key == "4":
            # 遍历所有的信息
            print_all_info()
        elif key == "5":
            # 保存数据
            save_data()
        elif key == "0":
            # 退出系统
            exit_flag = input("你确定要退出么?(yes or no) ")
            if exit_flag == "yes":
                break
        else:
            print("输入有误,请重新输入......")
            input("


按回车键继续....")
            continue
# 程序的开始
main()
原文地址:https://www.cnblogs.com/zcok168/p/9251107.html