python实现一个简易的学生管理系统
1、需求分析:包含哪些学生信息
学号、姓名、班级、性别,联系电话
2、学生的信息用什么保存起来(列表、字典)
使用列表 + 字典 吗 还是 字典 + 列表
使用列表 + 字典形式吧,列表的每一个索引值代表一个学生
3、为什么要使用文件保存数据?
因为变量不能持久保存数据,每次运行结束之后,变量中保存的数据都会随之消失
def menu():
print('-' * 25)
print('-----学生管理系统 v1.0------')
print('【1】添加学生信息')
print('【2】删除学生信息')
print('【3】修改学生信息')
print('【4】查询学生信息')
print('【5】遍历所有学生信息')
print('【6】退出学生管理系统')
print('-' * 25)
students = []
def add_student():
student = {}
student['name'] = input('请您输入学生的姓名:')
student['id'] = int(input('请您输入学生的学号:'))
student['gender'] = input('请你输入学生的性别:')
student['grade'] = input('请您输入学生的班级:')
print(f'您已经导入学生信息:{student}')
students.append(student)
print('成功录入学生信息!')
print(students)
def del_student():
ID = int(input('请您输入要删除的学生的学号:'))
for i in students:
if i['id'] == ID:
students.remove(i)
print('成功删除学生信息!')
print(students)
break
else:
print(f'很抱歉,未找到学号为{ID}的学生')
def edit_student():
ID = int(input('请您输入要修改的学生的学号:'))
for i in students:
if i['id'] == ID:
i['name'] = input('请您输入修改后的姓名:')
i['id'] = int(input('请您输入修改后的学号:'))
i['gender'] = input('请您输入修改后的性别:')
i['grade'] = input('请您输入修改后的班级:')
print('已经修改成功!')
print(students)
break
else:
print(f'很抱歉,未找到学号为{ID}的学生!')
def find_student():
ID = int(input('请您输入要查询的学生的学号:'))
for i in students:
if ID == i['id']:
print(f'学生信息:{i}')
break
else:
print(f'很抱歉,未找到学号为:{ID}的学生!')
def show_students():
for i in range(len(students)):
print(f'{i + 1}:{students[i]}')
def save_file():
file = open('学生信息.txt', 'w', encoding='utf-8')
for i in students:
file.write(f'{i}\n')
file.close()
def load_student():
file1 = open('学生信息.txt', 'r', encoding='utf-8')
global students
while True:
content = file1.readline()
if not content:
break
else:
students.append(eval(content))
file1.close()
load_student()
if __name__ == '__main__':
while True:
menu()
choice_num = int(input('请输入您的功能选择:'))
if choice_num == 1:
add_student()
elif choice_num == 2:
del_student()
elif choice_num == 3:
edit_student()
elif choice_num == 4:
find_student()
elif choice_num == 5:
show_students()
elif choice_num == 6:
print('已经退出学生管理系统,欢迎下次使用!')
save_file()
break
else:
print('请输入正确的功能编号!:')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架