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()
原文地址:https://www.cnblogs.com/yunlongaimeng/p/8811202.html