参考案例来源:python快速编程入门(黑马程序员),与原案例有些区别
学生管理系统的功能包括:添加、删除、修改、显示、保存、退出系统,每个功能都对应这一个响应的序号,由用户通过键盘输入选择
具体步骤:
- 新建一个列表,用来保存学生的信息
- 定义一个打印功能菜单的函数,提示用户可以进行那些操作
- 定义一个用于添加学生信息的函数。要求用户根据提示输入学生的信息,并使用一个字典将该学生的信息保存起来
- 定义一个用于删除学生信息的函数。根据序号删除对应的学生信息
- 定义一个用于修改学生信息的函数。根据序号,跟新学生信息
- 定义一个显示学生所有信息的函数。按照一定的格式进行输出
- 定义一个保存数据的函数,将数据保存到文件中
- 定义一个main函数,用于控制整个程序的流程。该函数中,使用一个无限循环保证程序一直能接收用户的输入
注:
1、 代码的大部分函数中都存在global关键字,当在函数中要修改全局变量时必须要用global关键字进行声明
2、input函数接收的数据最终都以字符串的形式保存
代码:
# 保存学生的所有信息
student_infos = {}
# 打印功能提示
def print_menu():
print("="*30)
print("学生管理系统v1.0")
print("1.添加学生信息")
print("2.删除学生信息")
print("3.修改学生信息")
print("4.显示学生信息")
print("5.保存学生信息")
print("0.退出管理系统")
print("="*30)
# 添加一个学生信息
def add_info():
global student_infos
new_id = input("请输入新学生的学号:")
new_name = input("请输入新学生的名字:")
new_sex = input("请输入新学生的性别:")
new_phone = input("请输入新学生的手机号码:")
new_info = {}
new_info['id'] = new_id
new_info['name'] = new_name
new_info['sex'] = new_sex
new_info['phone'] = new_phone
student_infos[new_id] = new_info
# 删除一个学生信息
def del_info():
global student_infos
del_id = input("请输入要删除的学生学号:")
if student_infos.get(del_id, 0):
del student_infos[del_id]
print("删除成功")
else:
print("该学生不存在")
# 修改一个学生的信息
def modify_info():
global student_infos
new_id = input("请输入要修改的学生学号:")
new_name = input("请输入新学生的名字:")
new_sex = input("请输入新学生的性别:")
new_phone = input("请输入新学生的手机号码:")
if student_infos.get(new_id, 0):
student_infos[new_id]['name'] = new_name
student_infos[new_id]['sex'] = new_sex
student_infos[new_id]['phone'] = new_phone
print("修改成功")
else:
print("该学生不存在")
# 显示所有学生的信息
def show_info():
print("*"*30)
print("学生信息如下:")
print("*"*30)
print("学号\t姓名\t性别\t手机号码\t")
for id in student_infos.keys():
print("%s\t%s\t%s\t%s\t" % (
id, student_infos[id]['name'], student_infos[id]['sex'], student_infos[id]['phone']))
# 保存数据
def save_to_file():
file=open("student_info.txt","a+",encoding="utf-8")
file.write(str(student_infos))
file.close()
# main 函数,控制流程
def main():
while True:
print_menu() # 打印菜单
key = input("请输入功能对应的数字:")
if key == '1': # 添加学生信息
add_info()
elif key == '2': # 删除学生信息
del_info()
elif key == '3': # 修改学生信息
modify_info()
elif key == '4': # 查看所有学生信息
show_info()
elif key == '5': # 保存数据
save_to_file()
elif key == '0': # 退出系统
quit_info = input("确定要退出吗?(Y/N):")
if quit_info.upper() == 'Y':
break # 结束循环
else:
print("输入错误,请重新输入")
# 启动系统
main()