基于python的学生信息管理系统

您所在的位置:网站首页 查询与学号122002的学生同年纪的所有学生的信息 基于python的学生信息管理系统

基于python的学生信息管理系统

2024-07-09 21:21| 来源: 网络整理| 查看: 265

前言

学生管理系统是教育管理中不可或缺的重要工具,它能够有效地管理学生信息、课程安排和成绩统计等数据,为教育工作者提供了便捷的管理手段。随着信息化时代的到来,基于计算机技术的学生管理系统更是成为了教育机构必备的利器。

在博客中,我将分享基于 Python 的学生管理系统开发经验,以及我的设计思路和开发实践。Python 作为一种简洁、高效的编程语言,具有丰富的库和框架,使得开发学生管理系统变得更加轻松和高效。

一、系统需求分析 1.1 可行性分析:

技术可行性

成本效益分析:

法律合规和安全风险:

用户体验和功能需求:

1.2 功能需求分析: 录入学生信息:可以输入学生的学号、姓名、性别和年龄,将学生信息保存到文件中。查找学生信息:可以通过学生的姓名来查找学生信息,并将查询结果显示出来。删除学生信息:可以通过学生的学号来删除学生的信息,如果找到匹配的学生信息,则将其从文件中删除。修改学生信息:可以通过学生的学号来修改学生的信息,包括学号、姓名、性别和年龄。显示所有学生信息:将文件中所有学生的信息进行展示。 二、系统流程设计 2.1 组织结构分析 用户界面层:即菜单界面和输入输出界面,用于与用户进行交互,提示用户选择操作,接收用户输入的参数并将结果显示给用户。业务逻辑层:即各个功能函数的实现,包括录入学生信息、查找学生信息、删除学生信息、修改学生信息等功能的具体实现过程。这一层主要进行对数据的增删改查等操作。数据存储层:即文件读写,将学生的信息存储到文件中,以便下次使用时读取。

整个系统按照MVC模式(Model-View-Controller)进行梳理,其中菜单界面和输入输出界面为View,各个功能函数为Controller,文件读写为Model。通过这种设计,可以使得系统更加清晰,方便维护和扩展。

2.2 功能结构分析

1.数据存储模块:该模块主要负责学生信息的录入和读取。它包括以下子模块:

数据库连接模块:建立与存储学生信息的数据库的连接。数据库操作模块:实现对学生信息的增、删、改、查等操作,如插入新的学生记录、更新学生信息、删除指定的学生记录、查询符合条件的学生信息等。文件读写模块:将学生信息保存在文件中,并支持文件的读取和写入,以实现学生信息的永久存储和可靠性保障。用户界面模块:该模块主要负责与用户进行交互,提供菜单选项和接收用户输入。用户可以通过菜单选择不同的功能操作,如录入、查找、删除、修改和显示学生信息。

2.功能操作模块:该模块负责对学生信息进行具体的操作。它包括以下子模块:

录入学生信息模块:接收用户输入的学生信息并将其保存到数据库或文件中。查找学生信息模块:根据用户提供的条件,在数据库或文件中查找匹配的学生信息,并返回结果给用户。删除学生信息模块:根据用户提供的条件,从数据库或文件中删除匹配的学生信息。修改学生信息模块:根据用户提供的条件,更新数据库或文件中匹配的学生信息。

3.结果显示模块:该模块负责将操作结果以可读性良好的方式展示给用户。它可以将查询结果、删除/修改成功与否等信息输出到用户界面上。

三、系统实现 import os studentFile = "students.txt" def menu(): print(''' 学生信息管理系统V1.0 ------------------------功能菜单------------------- 1.录入学生信息 2.查找学生信息 3.删除学生信息 4.修改学生信息 5.显示所有学生信息 0.退出系统 ------------------------功能菜单-------------------- ''') def main(): if not os.path.exists(studentFile): with open(studentFile,'w',encoding='utf8')as fp: pass #空语句 while (True): menu() # 显示菜单 select= input("请选择:") # 选择菜单项 if select in ['0','1','2','3','4', '5']: select = int (select) if select == 0: # 退出系统 print('您已退出学生信息管理系统!') break elif select == 1: insert() elif select == 2: search() elif select == 3: delete() elif select == 4: modify() elif select == 5: showAll() #将学生信息保存到文件 def studentSave(studentInfo): try:#异常处理 studentFp= open(studentFile,"a",encoding='utf8') # 以追加模式打开 except Exception as e: studentFp= open(studentFile,"w",encoding='utf8') # 文件不存在,创建文件并打开 for student in studentInfo: studentFp.write(str(student) +"\n")# 控行存储,帮加换行符 studentFp.close() # 关闭文件 #显示所有学生信息 def studentShow(result): print("\n{:^32s}\n".format('显示学生结果信息')) print("{:^8s}{:^8s}{:^8s}{:^8s}".format('学号','姓名','性别','年龄')) print("-"*40) for value in result: print("|{:^8s}|{:^8s}|{:^8s}|{:^8s}|".format(value['studentId'],value['studentName'],value['studentGender'],value['studentAge'])) print("-"*40) #录入学生信息 def insert(): studentInfo = [] flag = True while flag: studentId = input("请输入学号:") while(not studentId): print("请输入学号!") studentId = input("请输入学号:") studentName = input("请输入姓名:") while(not studentName): print("请输入姓名!") studentName = input("请输入姓名:") studentGender = input("请输入性别:") while(not studentGender): print("请输入性别!") studentGender = input("请输入性别:") while(True): studentAge = input("请输入年龄: ") break student = {"studentId":studentId,"studentName":studentName,"studentGender":studentGender,"studentAge":studentAge} studentInfo.append(student) inputflag = input("是否继续添加?(y/n):") if inputflag == "y": flag = True else: flag = False studentSave(studentInfo) print("学生信息录入并保存完毕!!!") #查找学生信息,按姓名查找 def search(): flag = True result = [] while flag: name = "" if os.path.exists(studentFile): name = input("请输入学生姓名:") if(not name): print("您的输入有误,请重新输入!") continue with open(studentFile,'r',encoding = 'utf8')as fp: student = fp.readlines() for value in student: temp = dict(eval(value)) if temp['studentName']==name: result.append(temp) print(result) studentShow(result) result.clear() flag = input("是否继续查询?(y/n):") if flag == 'n': flag = False elif flag == 'y': flag = True else: print("请重新输入姓名:") flag = True #删除学生信息,按照ID来删除学生,不要用姓名来删除学生 def delete(): flag = True student = [] while flag: if os.path.exists(studentFile): studentId = input("请输入学生学号:") if(not studentId): print("您的输入有误,请重新输入!") continue with open(studentFile,'r',encoding = 'utf8')as fp: student = fp.readlines() delflag = False if student: with open(studentFile,'w',encoding='utf8')as fp: for value in student: temp = dict(eval(value)) if temp['studentId']!=studentId: fp.write(str(temp)+"\n") else: delflag = True if delflag: print("学号为{}的学生的信息已经被删除...".format(studentId)) else: print("没有找到学号为{}的学生的信息...".format(studentId)) flag = input("是否继续删除?(y/n):") if flag == 'n': flag = False elif flag == 'y': flag = True else: print("请重新输入学号:") flag = True #修改学生信息,通过studentId修改学生信息 def modify(): if os.path.exists(studentFile): showAll() with open(studentFile,'r',encoding = 'utf-8')as fp: student = fp.readlines() studentId = input("请输入要修改的学生的学号:") with open(studentFile,'w',encoding='utf8')as fp: for value in student: temp = dict(eval(value)) if temp['studentId'] == studentId: print("正在修改他的信息!") while True: try: temp["studentId"] = input("请输入学号:") temp["studentName"] = input("请输入姓名:") temp["studentGender"] = input("请输入性别:") temp["studentAge"] = input("请输入年龄:") except: print("您的输入有误,请重新输入!") else: break fp.write(str(temp)+"\n") print("修改成功!") else: fp.write(str(temp)+"\n") else: print("没有任何学生的信息。") return flag = input("是否继续修改其他学生的信息?(y/n):") if flag =="y": modify() elif flag == 'n': return #显示学生信息 def showAll(): result = [] if os.path.exists(studentFile): with open(studentFile,'r',encoding = 'utf8')as fp: student = fp.readlines() if student: for value in student: result.append(eval(value)) if result: studentShow(result) else: print("没有任何学生的信息...") else: print("没有任何学生的信息...") #程序运行 if name == "main": main()

总结

基于Python开发的学生信息管理系统是一个功能丰富、用户友好且具有数据持久化能力的应用程序。系统通过Python编程语言和相关技术实现,包括数据库存储、用户界面设计等。其架构设计包括数据存储模块、用户界面模块、功能操作模块和结果显示模块等。在开发过程中,需进行系统需求分析、技术选型、代码编写和调试测试等环节。系统实现了学生信息的录入、查找、修改、删除和显示等功能,方便用户对学生信息进行灵活处理。通过截图或视频展示系统的运行效果,读者可以全面了解系统的功能和操作界面。总结而言,基于Python开发的学生信息管理系统为学校和机构提供了一种高效、可靠的学生信息管理工具,同时也展示了Python在实际项目中的应用价值。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3