zoukankan      html  css  js  c++  java
  • Py学生信息管理系统 案例(优化版)


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

    # 定一个列表,用来存储所有的学生信息(每个学生是一个字典)
    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()
  • 相关阅读:
    An intriguing failing of convolutional neural networks and the CoordConv solution
    Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization
    Win10下用Anaconda安装TensorFlow
    批处理框架
    智能分单算法
    海量数据处理利器greenplum——初识
    使用R画地图数据
    跟我一起ggplot2(1)
    一文搞懂HMM(隐马尔可夫模型)
    借助亚马逊S3和RapidMiner将机器学习应用到文本挖掘
  • 原文地址:https://www.cnblogs.com/yunlongaimeng/p/8811202.html
Copyright © 2011-2022 走看看