实例2:学生信息管理系统
学生信息管理系统是用于管理学生信息的管理软件,它具备学生信息的查找、修改、增加和删除功能,利用该系统可实现学生信息管理的电子化,提高信息管理效率。
本实例要求编写程序,实现学生信息管理系统。
实例目标
- 熟练地定义函数
- 熟练地在函数中访问全局变量
实例分析
由实例描述可知,本实例的学生管理系统具备5个功能,分别是打印功能菜单、添加学生信息、删除学生信息、修改学生信息和显示学生信息,每个功能可以抽取成一个函数,在程序执行的过程中调用即可。
除此之外,还可以定义一个主函数main(),该函数主要描述使用一次学生管理系统的过程,包括打印功能菜单、接收用户的输入、根据输入调用函数执行相应的功能。
代码实现
(1)定义一个打印功能菜单的函数print_menu(),该函数的定义如下所示:
# 功能菜单打印
def print_menu():
print('=' * 30)
print('学生管理系统')
print('1.添加学生信息')
print('2.删除学生信息')
print('3.修改学生信息')
print('4.显示所有学生信息')
print('0.退出系统')
print('=' * 30)
(2)定义一个添加学生信息的函数add_stu_info(),该函数需提示用户输入学生的基本信息:姓名、性别和手机号码,将输入的信息以键值的形式存储到字典new_info中,再将该字典添加到代表学生管理系统的列表stu_info中。add_stu_info()函数的定义如下所示:
# 新建一个列表,用来保存学生的所有信息
stu_info = []
# 添加学生信息
def add_stu_info():
# 提示并获取学生的姓名
new_name = input('请输入新学生的姓名:')
# 提示并获取学生的性别
new_sex = input('请输入新学生的性别:')
# 提示并获取学生的手机号
new_phone = input('请输入学生的手机号码:')
new_info = dict()
new_info['name'] = new_name
new_info['sex'] = new_sex
new_info['phone'] = new_phone
stu_info.append(new_info)
(3)定义一个用于删除学生信息的函数del_stu_info(),该函数需提示用户输入待删除学生的序号,之后便从列表stu_info中删除存有该学生信息的字典。del_stu_info()函数的定义如下所示:
# 删除学生信息
def del_stu_info(student):
del_num = int(input('请输入要删除的序号:')) – 1
del student[del_num]
(4)定义一个用于修改学生信息的函数modify_stu_info(),该函数需在列表stu_info不为空的情况下进行修改,先提示用户输入待修改学生的序号,再要求用户输入修改后的学生信息进行替换。modify_stu_info()函数的定义如下所示:
# 修改学生信息
def modify_stu_info():
if len(stu_info) !=0:
stu_id = int(input('请输入学生序号:'))
new_name = input('请输入学生姓名:')
new_sex = input('请输入学生性别(男/女):')
new_phone = input('请输入学生的手机号码:')
stu_info[stu_id - 1]['name'] = new_name
stu_info[stu_id - 1]['sex'] = new_sex
stu_info[stu_id - 1]['phone'] = new_phone
else:
print('学生信息表为空')
(5)定义一个用于显示所有学生信息的函数show_stu_info (),该函数需遍历列表stu_info,并采用固定的格式打印列表中的所有信息。show_stu_info ()函数的定义如下所示:
# 显示学生信息
def show_stu_info():
print('学生的信息如下:')
print('=' * 30)
print('序号 姓名 性别 手机号码')
i = 1
for temp_info in stu_info:
print("%d %s %s %s" %
(i, temp_info['name'], temp_info['sex'], temp_info['phone']))
i += 1
(6)定义一个主函数main(),该函数中包含运行一次程序的完整过程,包括打印功能菜单、接收用户选择的功能序号、调用函数执行相应的功能,另外还需在用户输入0时处理退出程序的业务。main()函数的定义如下所示:
# 主函数
def main():
while True:
print_menu() # 打印菜单
key = input("请选择功能:") # 获取用户输入的序号
if key == '1': # 添加学生信息
add_stu_info()
elif key == '2': # 删除学生信息
del_stu_info(stu_info)
elif key == '3': # 修改学生信息
modify_stu_info()
elif key == '4': # 查看所有学生的信息
show_stu_info()
elif key == '0':
quit_confirm = input('亲,真的要退出么?(Yes or No):')
if quit_confirm == 'Yes':
break # 跳出循环
else:
print('输入有误,请重新输入')
(7)在末尾添加调用main()函数的代码,具体如下所示。
if __name__ == '__main__':
main()
代码测试
运行程序,在控制台输入“1”之后的结果如下所示:
==============================
学生管理系统
1.添加学生信息
2.删除学生信息
3.修改学生信息
4.显示所有学生信息
0.退出系统
==============================
请选择功能:1
请输入新学生的姓名:小红
请输入新学生的性别:女
请输入学生的手机号码:123456
在控制台输入“3”之后的结果如下所示:
请选择功能:3
请输入学生序号:1
请输入学生姓名:小明
请输入学生性别(男/女):男
请输入学生的手机号码:123
在控制台输入“4”之后的结果如下所示:
请选择功能:4
学生的信息如下:
==============================
序号 姓名 性别 手机号码
1 小明 男 123
在控制台输入“0”之后的结果如下所示:
请选择功能:0
亲,真的要退出么?(Yes or No):Yes