Python学生信息管理系统:增删改查功能实现
Python学生信息管理系统:增删改查功能实现
本程序使用Python实现简单的学生信息管理系统,包含增加、查询、修改、删除四种功能。
import re
fields = ['学号', '姓名', '性别', '生日', '电话']
fmt = '{0:12}{1:12}{2:12}{3:12}{4:12}'
stus = []
def print_menu():
while True:
print('=' * 20)
print('1. 增加学生信息')
print('2. 打印所有学生信息')
print('3. 查询学生信息')
print('4. 修改学生电话号码')
print('5. 删除学生信息')
print('0. 退出')
print('=' * 20)
choice = int(input('请输入选项:'))
if choice == 1:
stu_add()
elif choice == 2:
stu_print()
elif choice == 3:
stu_find()
elif choice == 4:
stu_modify()
elif choice == 5:
stu_delete()
elif choice == 0:
break
else:
print('输入错误:只能输入0-5')
def stu_add():
msg = ''
values = input('请输入学号、姓名、性别、生日、电话, 空格隔开\n').split()
if not re.match('\d{10}', values[0]):
msg += '学号只能是 10 位数字. \n'
if len(values[1]) < 1:
msg += '姓名至少包含两个字符. \n'
if values[2] not in ('男', '女'):
msg += '性别只能是男和女. \n'
if not re.match('\d{4}-\d{2}-\d{2}', values[3]):
msg += '生日只能是 yyyy-mm-dd 格式, 如 2020-12-31. \n'
if not re.match('\d{11}', values[4]):
msg += '电话只能是11位数字组成. \n'
if len(msg) == 0:
stus.append(dict(zip(fields, values)))
print('增加数据成功.')
else:
print('增加数据失败:\n' + msg)
def stu_print():
if len(stus) == 0:
print('没有学生信息')
else:
print(fmt.format(*fields))
for stu in stus:
print(fmt.format(stu['学号'], stu['姓名'], stu['性别'], stu['生日'], stu['电话']))
def stu_find():
id = input('请输入要查询的学生学号:')
for stu in stus:
if stu['学号'] == id:
print(fmt.format(*fields))
print(fmt.format(stu['学号'], stu['姓名'], stu['性别'], stu['生日'], stu['电话']))
return
print('没有找到该学生')
def stu_modify():
id = input('请输入要修改电话号码的学生学号:')
for stu in stus:
if stu['学号'] == id:
phone = input('请输入新的电话号码:')
stu['电话'] = phone
print('修改电话号码成功')
return
print('没有找到该学生')
def stu_delete():
id = input('请输入要删除的学生学号:')
for stu in stus:
if stu['学号'] == id:
stus.remove(stu)
print('删除学生信息成功')
return
print('没有找到该学生')
print_menu()
代码功能说明:
print_menu()函数: 打印菜单选项,并根据用户输入调用相应的函数。stu_add()函数: 输入学生信息,进行数据验证,并将验证通过的信息保存到stus列表中。stu_print()函数: 打印所有学生信息。stu_find()函数: 输入学生学号,查询并打印学生信息。stu_modify()函数: 输入学生学号,修改该学生的电话号码。stu_delete()函数: 输入学生学号,删除该学生信息。
优化说明:
- 使用
re模块进行数据验证,提高代码效率和可靠性。 - 使用
fmt格式化字符串,使输出结果更美观。 - 代码注释清晰,方便理解代码逻辑。
未来改进:
- 添加更多字段,如地址、班级等。
- 使用文件存储学生信息,实现数据持久化。
- 使用图形界面,提升用户体验。
- 使用数据库进行数据管理,提高系统性能。
总结:
本程序实现了简单的学生信息管理系统,并进行了一定的优化。未来可以根据需求进行进一步改进,使其功能更强大,性能更优越。
原文地址: https://www.cveoy.top/t/topic/nBHR 著作权归作者所有。请勿转载和采集!