Python实现可存储的学生信息管理系统(文件+Excel)
Posted 爱敲代码的三毛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python实现可存储的学生信息管理系统(文件+Excel)相关的知识,希望对你有一定的参考价值。
目录
学生信息管理系统
1. 功能汇总
- 新增学生
- 显示学生
- 查找学生
- 删除学生
- 修改学生信息
- 信息持久保存(文件/Excel)
2. 创建函数入口
-
创建一个全局的列表
students
保存每个学生的信息 -
使用自定义菜单函数
menu
和用户交互 -
使用
add
、delete
、find
、update
、show
这几个自定义函数完成增删改查显示学生操作 -
使用
sys.exit
退出程序
# 这个列表用来保存学生
students = []
def main():
"""
程序入口
:return:
"""
print('---------------------------------------------------------------')
print('| |')
print('| 欢迎使用学生信息管理系统! |')
print('| |')
print('---------------------------------------------------------------')
while True:
operation = menu()
if operation == 1:
add()
elif operation == 2:
delete()
elif operation == 3:
find()
elif operation == 4:
update()
elif operation == 5:
show()
elif operation == 0:
sys.exit(0)
else:
print('输入错误,请重新输入')
3. 实现菜单函数
菜单函数就是简单打印信息,提示用户输入,并返回输入值给主函数
def menu():
"""
打印菜单函数
:return:
"""
print('1.新增学生信息')
print('2.删除学生信息')
print('3.查找学生信息')
print('4.修改学生信息')
print('5.显示所有学生信息')
print('0.退出')
operation = input('请输入——> ')
return int(operation)
4. 实现增删改查操作
1)新增功能实现
简单约定一些学生信息,每个学生用一个字典保存
- 姓名、性别(男、女)、年龄、学号、班级、电话
def add():
"""
新增学生信息
:return:
"""
print('开始新增学生')
name = input('请输入学生姓名:')
sex = input('请输入学生性别(男/女):')
if sex not in ('男', '女'):
print('性别输入错误,新增失败')
return
age = input('请输入年龄:')
student_id = input('请输入学号:')
class_id = input('请输入班级:')
phone = input('请输入电话号码:')
student =
'姓名': name,
'性别': sex,
'年龄': age,
'学号': student_id,
'班级': class_id,
'电话': phone
students.append(student)
print('新增学生信息成功')
2) 删除功能实现
这里通过学号删除学生
def delete():
"""
删除学生信息
:return:
"""
student_id = input('请输入要删除的学生的学号')
for student in students:
if student['学号'] == student_id:
students.remove(student)
print(f'删除成功,删除的学生信息为student')
return
print(f'删除失败,没有找到学号为student_id的学生')
3) 查找功能实现
这里简单实现通过学号和姓名查找
def find():
"""
查找学生信息
:return:
"""
operation = input('通过学号查找(1)/通过姓名查找(2)')
if operation == '1':
student_id = input('请输入要查找的学生的学号')
for student in students:
if student['学号'] == student_id:
print(student)
elif operation == '2':
name = input('请输入要查找学生的姓名')
for student in students:
if student['姓名'] == name:
print(student)
else:
print('输入错误')
4) 修改学生信息
输入学生的学号来修改学生信息
def update():
"""
修改学生信息
:return:
"""
student_id = input('请输入要修改信息的学生的学号')
for student in students:
if student['学号'] == student_id:
print(f'查找到的学生信息为student')
flag = input('是否要进行修改(y/n)')
if flag == 'y' or flag == 'Y':
name = input('请输入学生姓名:')
sex = input('请输入学生性别(男/女):')
if sex not in ('男', '女'):
print('性别输入错误,新增失败')
return
age = input('请输入年龄:')
student_id = input('请输入学号:')
class_id = input('请输入班级:')
phone = input('请输入电话号码:')
print(f'信息修改前student')
student['姓名'] = name
student['性别'] = sex
student['年龄'] = age
student['学号'] = student_id
student['班级'] = class_id
student['电话'] = phone
print(f'信息修改后student')
return
5) 显示所有学生信息
之间遍历列表就好
def show():
"""
显示所有学生信息
:return:
"""
if len(students) == 0:
print('没有任何学生的信息')
return
for student in students:
print(student)
5. 使用文件保存
1)打开文件
实现函数read
每次程序启动就打开文件读取学生信息,做出约定以分号间隔
姓名;性别;年龄;学号;班级;电话
def read():
"""
读取文件已经保存的学生信息
:return:
"""
# 如果没有文件就跳过读取
if not os.path.exists('students.txt'):
return
# 先清空全局的list
global students
students = []
with open('students.txt', 'r', encoding='utf8') as file:
for line in file:
# 约定以分号间隔,就以分号分割
student_list = line.split(';')
if len(student_list) != 6:
print(f'这行数据格式错误读取失败line')
continue
student =
'姓名': student_list[0],
'性别': student_list[1],
'年龄': student_list[2],
'学号': student_list[3],
'班级': student_list[4],
'电话': student_list[5]
students.append(student)
print(f'从文件数据读取len(students)条记录成功')
2) 保存文件
每次退出程序就保存学生信息到文件,实现保存函数save
def save():
"""
保存功能
:return:
"""
with open('students.txt', 'w', encoding='utf8') as file:
for student in students:
file.write(student['姓名']+';')
file.write(student['性别']+';')
file.write(student['年龄']+';')
file.write(student['学号']+';')
file.write(student['班级']+';')
file.write(student['电话']+'')
print('数据已经保存到文件')
6. 使用Excel保存
想要保存到Excel只需要修改save
和read
,这里通过xlrd
和xlwt
这两个库操作Excel版本为1.2.0
save保存函数
def save():
"""
保存功能
:return:
"""
# 创建一个excel文件
work_book = xlwt.Workbook(encoding='utf8')
# 新建页表
work_sheet = work_book.add_sheet('学生信息表')
# 往表中写入数据
count = 0
for my_student in students:
work_sheet.write(count, 0, my_student['姓名'])
work_sheet.write(count, 1, my_student['性别'])
work_sheet.write(count, 2, my_student['年龄'])
work_sheet.write(count, 3, my_student['学号'])
work_sheet.write(count, 4, my_student['班级'])
work_sheet.write(count, 5, my_student['电话'])
count += 1
# 保存
work_book.save('student.xls')
print('数据已经保存到文件')
read读取函数
def read():
"""
读取文件已经保存的学生信息
:return:
"""
# 如果没有文件就跳过读取
if not os.path.exists('student.xls'):
return
# 先清空全局的list
global students
students = []
# 打开Excel文件
xls_file = xlrd.open_workbook('student.xls')
# 获取第0页表格
table = xls_file.sheet_by_index(0)
# 获取表格总行数
rows = table.nrows
for i in range(0, rows):
student =
'姓名': table.cell_value(i, 0),
'性别': table.cell_value(i, 1),
'年龄': table.cell_value(i, 2),
'学号': table.cell_value(i, 3),
'班级': table.cell_value(i, 4)
students.append(student)
print(f'从文件数据读取len(students)条记录成功')
以上是关于Python实现可存储的学生信息管理系统(文件+Excel)的主要内容,如果未能解决你的问题,请参考以下文章