之前在最初的学习中,我就写过一个Python的学生管理系统,但是那个很粗糙,很简陋
今天在学习过程中,再次拿出来,重新优化书写
希望对初学者以及需要的朋友有帮助。
系统开发环境:
- 操作系统:win11
- Python解释器版本:python3.10
- 开发工具:Pychram
- Python内置模块:os,re
1.实现功能
学生管理系统具备功能
- 添加学生及成绩信息
- 将学生信息保存到文件中
- 修改和删除学生信息
- 查询学生信息
- 根据学生成绩进行排序
- 统计学生的总分
2.系统设计
项目目录结构:
3.主函数设计
功能设计:.
实现代码:
def main(): while True: menm() choice = input('请选择') if choice in [0,1,2,3,4,5,6,7]: if choice == 0: answer=input('您确定要退出系统吗?y/n') if answer=='y' or answer=='Y': print('谢谢您的使用!') break # 退出系统 else: continue elif choice==1: insret() # 录入学生信息 elif choice==2: search() elif choice==3: delete() elif choice==4: modify() elif choice==5: sort() elif choice==6: total() elif choice==7: show() def menm(): print('========================学生信息管理系统===================================') print('--------------------------功能菜单----------------------------------------') print('\t\t\t\t\t\t1.录入学生信息') print('\t\t\t\t\t\t2.查找学生信息') print('\t\t\t\t\t\t3.删除学生信息') print('\t\t\t\t\t\t4.修改学生信息') print('\t\t\t\t\t\t5.学生信息排序') print('\t\t\t\t\t\t6.统计学生总人数') print('\t\t\t\t\t\t7.显示所有学生信息') print('\t\t\t\t\t\t0.退出') def insret(): pass def search(): pass def delete(): pass def modify(): pass def sort(): pass def total(): pass def show(): pass if __name__ == '__main__': main()
运行截图:
4.信息录入设计
从控制台录入学生信息,信息会被写入.txt文件
设计代码:
def insret(): student_lst=[] while True: id=input('请输入ID(如01):') if not id: break name=input('请输入姓名:') if not name: break try: math=int(input('请输入数学成绩:')) english=int(input('请输入英语成绩:')) python=int(input('请输入python成绩:')) java=int(input('请输入Java成绩:')) except: print('输入无效,不是整数类型,请重新输入!') continue # 将录入学生信息写入字典中 student={'id':id,'name':name,'math':math,'english':english,'python':python,'java':java} # 将学生信息添加到列表中 student_lst.append(student) answer=input('是否继续添加?y/n\n') if answer == 'y' or answer =='Y': continue else: break # 调用save()函数保存信息 save(student_lst) print('学生信息录入完毕!') def save(lst): try: stu_txt=open(filename,'a',encoding='utf-8') except: stu_txt=open(filename,'w',encoding='utf-8') for item in lst: stu_txt.write(str(item)+'\n') stu_txt.close()
程序运行截图:
5.信息删除设计
设计代码:
def delete(): while True: student_id=input('请输入要删除的学生的ID:') if student_id!='': if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old=file.readlines() else: student_old=[] flag=False #标记是否删除 if student_old: with open(filename,'w',encoding='utf-8') as wfile: d={} for item in student_old: d = dict(eval(item)) # 将字符串转换为字典 if d['id']!=student_id: wfile.write(str(d)+'\n') else: flag=True if flag: print(f'ID为{student_id}的学生信息已被删除') else: print(f'没有找到ID为{student_id}的学生信息') else: print('无学生信息') break show() #删除之后要重现显示所有学生信息 answer=input('是否继续删除?y/n\n') if answer == 'y' or answer =='Y': continue else: break
程序运行界面: