简易学生信息管理系统主要功能有

1 录入学生信息
2 查找学生信息
3 删除学生信息
4 修改学生信息
5 排序
6 统计学生总人数
7 显示所有学生信息
0 退出系统

系统运行效果

主菜单的代码方法:

# Author: dry
# 开发时间:2019/9/11
# 开发工具:PyCharm
import re  # 导入正则表达式模块
import os  # 导入操作系统模块
filename = "student.txt" # 学生信息保存文件
def menu():# 输出菜单print('''---------------学生信息管理系统------------==================功能菜单================1 录入学生信息2 查找学生信息3 删除学生信息4 修改学生信息5 排序6 统计学生总人数7 显示所有学生信息0 退出系统=======================================    说明:通过数字选择菜单=======================================''')

系统主方法:

def main():ctrl = True  # 标记是否退出系统while (ctrl):menu()  # 显示菜单option = input("请选择:")  # 选择菜单项option_str = re.sub("\D", "", option)  # 提取数字if option_str in ['0', '1', '2', '3', '4', '5', '6', '7']:option_int = int(option_str)if option_int == 0:  # 退出系统print('您已退出学生成绩管理系统!')ctrl = Falseelif option_int == 1:  # 录入学生成绩信息insert()elif option_int == 2:  # 查找学生成绩信息search()elif option_int == 3:  # 删除学生成绩信息delete()elif option_int == 4:  # 修改学生成绩信息modify()elif option_int == 5:  # 排序sort()elif option_int == 6:  # 统计学生总数total()elif option_int == 7:  # 显示所有学生信息show()

录入学生信息方法:

'''录入学生信息'''
def insert():studentList = []  # 保存学生信息的列表mark = True  # 是否继续添加while mark:id = input("请输入学生ID(如1001):")if not id:breakname = input("请输入名字:")if not name:breaktry:english = int(input("请输入英语成绩:"))python = int(input("请输入python成绩:"))c = int(input("请输入C语言成绩:"))except:print("输入无效,不是整型数值,请重新输入信息")continue# 将输入的学生信息保存到字典student = {"id": id, "name": name, "english": english, "python": python, "c": c}studentList.append(student)  # 将学生字典添加到列表中inputList = input("是否继续添加?(y/n):")if inputList == 'y':  # 继续添加mark = Trueelse:mark = Falsesave(studentList)  # 将学生信息保存到文件print("学生信息录入完毕!!!")

保存学生信息方法:

'''将学生信息保存到文件'''
def save(student):try:student_txt = open(filename, 'a')  # 以追加模式打开except Exception as e:student_txt = open(filename, 'w')  # 文件不存在,创建文件并打开for info in student:student_txt.write(str(info) + "\n")  # 执行存储,添加换行符student_txt.close()  # 关闭文件

查询学生信息方法:

'''查询学生信息'''
def search():mark = Truestudent_query = []while mark:id = ""name = ""if os.path.exists(filename):mode = input("按ID查询输入1:按姓名查询输入2:")if mode == "1":id = input("请输入学生ID:")elif mode == "2":name = input("请输入学生姓名:")else:print("您输入有误,请重新输入!")search()with open(filename, "r") as file:student = file.readlines()for list in student:d = dict(eval(list))if id is not "":if d['id'] == id:student_query.append(d)elif name is not "":if d['name'] == name:student_query.append(d)show_student(student_query)student_query.clear()inputMark = input("是否继续查询?(y/n):")if inputMark == "y":mark = Trueelse:mark = Falseelse:print("暂未保存数据信息...")return

显示学生信息方法

'''将保存在列表中的学生信息显示出来'''
def show_student(studentList):if not studentList:print("无效的数据")returnformat_title = "{:^6}{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:10}"print(format_title.format("ID", "名字", "英语成绩", "python成绩", "C语言成绩", "总成绩"))format_data = "{:^6}{:^12}\t{:^10}\t{:^10}\t{:^10}\t{:10}"for info in studentList:print(format_data.format(info.get("id"), info.get("name"), str(info.get("english")), str(info.get("python")),str(info.get("c")),str(info.get("english") + info.get("python") + info.get("c")).center(12)))

删除学生信息方法:

'''删除学生信息'''
def delete():mark = True  # 标记是否循环while mark:studentId = input("请输入要删除的学生ID:")if studentId is not "":  # 判断要删除的学生ID是否存在if os.path.exists(filename):with open(filename, 'r') as rfile:student_old = rfile.readlines()else:student_old = []ifdel = False  # 标记是否删除if student_old:  # 如果存在学生信息with open(filename, 'w') as wfile:d = {}  # 定义空字典for list in student_old:d = dict(eval(list))  # 字符串转字典if d['id'] != studentId:wfile.write(str(d) + "\n")  # 将一条信息写入文件else:ifdel = True  # 标记已经删除if ifdel:print("ID为%s的学生信息已经被删除..." % studentId)else:print("没有找到ID为%s的学生信息..." % studentId)else:print("不存在学生信息")breakshow()  # 显示全部学生信息inputMark = input("是否继续删除?(y/n):")if inputMark == "y":mark = True  # 继续删除else:mark = False  # 退出删除学生信息操作

修改学生信息方法:

'''修改学生信息'''
def modify():show()  # 显示全部学生信息if os.path.exists(filename):with open(filename, 'r') as rfile:student_old = rfile.readlines()else:returnstudentid = input("请输入要修改的学生ID:")with open(filename, 'w') as wfile:for student in student_old:d = dict(eval(student))if d['id'] == studentid:print("找到了这名学生,可以修改他的信息")while True:  # 输入要修改的信息try:d["name"] = input("请输入姓名:")d["english"] = int(input("请输入英语成绩:"))d["python"] = int(input("请输入python成绩:"))d['c'] = int(input("请输入C语言成绩:"))except:print("您输入有误,请重新输入!")else:breakstudent = str(d)  # 将字典转为字符串wfile.write(student + "\n")  # 将修改信息写入到文件print("修改成功")else:wfile.write(student)  # 将未修改的信息写入文件mark = input("是否继续修改其他学生信息?(y/n):")if mark == "y":modify()

学生信息排序方法:

'''排序'''
def sort():show()if os.path.exists(filename):with open(filename, 'r') as file:student_old = file.readlines()student_new = []for list in student_old:d = dict(eval(list))student_new.append(d)else:returnascORdesc = input("请选择(0升序;1降序)")if ascORdesc == "0":ascORdescBool = False  # 标记变量,为False时表示升序,为True时表示降序elif ascORdesc == "1":ascORdescBool = Trueelse:print("您输入的信息有误,请重新输入!")sort()mode = input("请选择排序方式(1按英语成绩排序;2按python成绩排序;3按C语言成绩排序;0按总成绩排序):")if mode == "1":  # 按英语成绩排序student_new.sort(key=lambda x: x["english"], reverse=ascORdescBool)elif mode == "2":  # 按python成绩排序student_new.sort(key=lambda x: x["python"], reverse=ascORdescBool)elif mode == "3":  # 按C语言成绩排序student_new.sort(key=lambda x: x["c"], reverse=ascORdescBool)elif mode == "0":  # 按总成绩排序student_new.sort(key=lambda x: x["english"] + x["python"] + x["c"], reverse=ascORdescBool)else:print("您的输入有误,请重新输入!")sort()show_student(student_new)  # 显示排序结果

统计学生总数方法:

'''统计学生总数'''
def total():if os.path.exists(filename):with open(filename, 'r') as rfile:student_old = rfile.readlines()if student_old:print("一共有%d名学生!" % len(student_old))else:print("还没有录入学生信息")else:print("暂未保存数据信息")

显示所有学生信息方法:

'''显示所有学生信息'''
def show():student_new = []if os.path.exists(filename):with open(filename, 'r') as rfile:student_old = rfile.readlines()for list in student_old:student_new.append(eval(list))if student_new:show_student(student_new)else:print("暂未保存数据信息")

开始函数:

if __name__ == '__main__':main()

完整代码如下:

# Author: dry
# 开发时间:2019/9/11
# 开发工具:PyCharm
import re  # 导入正则表达式模块
import os  # 导入操作系统模块filename = "student.txt" # 学生信息保存文件def menu():# 输出菜单print('''---------------学生信息管理系统------------==================功能菜单================1 录入学生信息2 查找学生信息3 删除学生信息4 修改学生信息5 排序6 统计学生总人数7 显示所有学生信息0 退出系统=======================================    说明:通过数字选择菜单=======================================''')def main():ctrl = True  # 标记是否退出系统while (ctrl):menu()  # 显示菜单option = input("请选择:")  # 选择菜单项option_str = re.sub("\D", "", option)  # 提取数字if option_str in ['0', '1', '2', '3', '4', '5', '6', '7']:option_int = int(option_str)if option_int == 0:  # 退出系统print('您已退出学生成绩管理系统!')ctrl = Falseelif option_int == 1:  # 录入学生成绩信息insert()elif option_int == 2:  # 查找学生成绩信息search()elif option_int == 3:  # 删除学生成绩信息delete()elif option_int == 4:  # 修改学生成绩信息modify()elif option_int == 5:  # 排序sort()elif option_int == 6:  # 统计学生总数total()elif option_int == 7:  # 显示所有学生信息show()'''录入学生信息'''def insert():studentList = []  # 保存学生信息的列表mark = True  # 是否继续添加while mark:id = input("请输入学生ID(如1001):")if not id:breakname = input("请输入名字:")if not name:breaktry:english = int(input("请输入英语成绩:"))python = int(input("请输入python成绩:"))c = int(input("请输入C语言成绩:"))except:print("输入无效,不是整形数值,请重新输入信息")continue# 将输入的学生信息保存到字典student = {"id": id, "name": name, "english": english, "python": python, "c": c}studentList.append(student)  # 将学生字典添加到列表中inputList = input("是否继续添加?(y/n):")if inputList == 'y':  # 继续添加mark = Trueelse:mark = Falsesave(studentList)  # 将学生信息保存到文件print("学生信息录入完毕!!!")'''将学生信息保存到文件'''def save(student):try:student_txt = open(filename, 'a')  # 以追加模式打开except Exception as e:student_txt = open(filename, 'w')  # 文件不存在,创建文件并打开for info in student:student_txt.write(str(info) + "\n")  # 执行存储,添加换行符student_txt.close()  # 关闭文件'''查询学生信息'''def search():mark = Truestudent_query = []while mark:id = ""name = ""if os.path.exists(filename):mode = input("按ID查询输入1:按姓名查询输入2:")if mode == "1":id = input("请输入学生ID:")elif mode == "2":name = input("请输入学生姓名:")else:print("您输入有误,请重新输入!")search()with open(filename, "r") as file:student = file.readlines()for list in student:d = dict(eval(list))if id is not "":if d['id'] == id:student_query.append(d)elif name is not "":if d['name'] == name:student_query.append(d)show_student(student_query)student_query.clear()inputMark = input("是否继续查询?(y/n):")if inputMark == "y":mark = Trueelse:mark = Falseelse:print("暂未保存数据信息...")return'''将保存在列表中的学生信息显示出来'''def show_student(studentList):if not studentList:print("无效的数据")returnformat_title = "{:^6}{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:10}"print(format_title.format("ID", "名字", "英语成绩", "python成绩", "C语言成绩", "总成绩"))format_data = "{:^6}{:^12}\t{:^10}\t{:^10}\t{:^10}\t{:10}"for info in studentList:print(format_data.format(info.get("id"), info.get("name"), str(info.get("english")), str(info.get("python")),str(info.get("c")),str(info.get("english") + info.get("python") + info.get("c")).center(12)))'''删除学生信息'''def delete():mark = True  # 标记是否循环while mark:studentId = input("请输入要删除的学生ID:")if studentId is not "":  # 判断要删除的学生ID是否存在if os.path.exists(filename):with open(filename, 'r') as rfile:student_old = rfile.readlines()else:student_old = []ifdel = False  # 标记是否删除if student_old:  # 如果存在学生信息with open(filename, 'w') as wfile:d = {}  # 定义空字典for list in student_old:d = dict(eval(list))  # 字符串转字典if d['id'] != studentId:wfile.write(str(d) + "\n")  # 将一条信息写入文件else:ifdel = True  # 标记已经删除if ifdel:print("ID为%s的学生信息已经被删除..." % studentId)else:print("没有找到ID为%s的学生信息..." % studentId)else:print("不存在学生信息")breakshow()  # 显示全部学生信息inputMark = input("是否继续删除?(y/n):")if inputMark == "y":mark = True  # 继续删除else:mark = False  # 退出删除学生信息操作'''修改学生信息'''def modify():show()  # 显示全部学生信息if os.path.exists(filename):with open(filename, 'r') as rfile:student_old = rfile.readlines()else:returnstudentid = input("请输入要修改的学生ID:")with open(filename, 'w') as wfile:for student in student_old:d = dict(eval(student))if d['id'] == studentid:print("找到了这名学生,可以修改他的信息")while True:  # 输入要修改的信息try:d["name"] = input("请输入姓名:")d["english"] = int(input("请输入英语成绩:"))d["python"] = int(input("请输入python成绩:"))d['c'] = int(input("请输入C语言成绩:"))except:print("您输入有误,请重新输入!")else:breakstudent = str(d)  # 将字典转为字符串wfile.write(student + "\n")  # 将修改信息写入到文件print("修改成功")else:wfile.write(student)  # 将未修改的信息写入文件mark = input("是否继续修改其他学生信息?(y/n):")if mark == "y":modify()'''排序'''def sort():show()if os.path.exists(filename):with open(filename, 'r') as file:student_old = file.readlines()student_new = []for list in student_old:d = dict(eval(list))student_new.append(d)else:returnascORdesc = input("请选择(0升序;1降序)")if ascORdesc == "0":ascORdescBool = False  # 标记变量,为False时表示升序,为True时表示降序elif ascORdesc == "1":ascORdescBool = Trueelse:print("您输入的信息有误,请重新输入!")sort()mode = input("请选择排序方式(1按英语成绩排序;2按python成绩排序;3按C语言成绩排序;0按总成绩排序):")if mode == "1":  # 按英语成绩排序student_new.sort(key=lambda x: x["english"], reverse=ascORdescBool)elif mode == "2":  # 按python成绩排序student_new.sort(key=lambda x: x["python"], reverse=ascORdescBool)elif mode == "3":  # 按C语言成绩排序student_new.sort(key=lambda x: x["c"], reverse=ascORdescBool)elif mode == "0":  # 按总成绩排序student_new.sort(key=lambda x: x["english"] + x["python"] + x["c"], reverse=ascORdescBool)else:print("您的输入有误,请重新输入!")sort()show_student(student_new)  # 显示排序结果'''统计学生总数'''def total():if os.path.exists(filename):with open(filename, 'r') as rfile:student_old = rfile.readlines()if student_old:print("一共有%d名学生!" % len(student_old))else:print("还没有录入学生信息")else:print("暂未保存数据信息")'''显示所有学生信息'''def show():student_new = []if os.path.exists(filename):with open(filename, 'r') as rfile:student_old = rfile.readlines()for list in student_old:student_new.append(eval(list))if student_new:show_student(student_new)else:print("暂未保存数据信息")if __name__ == '__main__':main()

python简易学生信息管理系统相关推荐

  1. python制作个人信息管理系统_python实现简易学生信息管理系统

    本文实例为大家分享了python实现学生信息管理系统的具体代码,供大家参考,具体内容如下 简易学生信息管理系统主要功能有 1 录入学生信息 2 查找学生信息 3 删除学生信息 4 修改学生信息 5 排 ...

  2. Python程序设计之 —— 简易学生信息管理系统

    大家好,我是 Enovo飞鱼,今天分享一个 Python程序设计之 -- 简易学生信息管理系统 ,小白或者正在学习Python的小伙伴推荐阅读,加油

  3. python制作学生管理系统_Python——面向对象,简易学生信息管理系统

    一.概述 1.1涉及到的知识点 项目开发:创建项目,创建包,导入包: 面向对象:静态方法,继承,内置函数,自定义函数: 数据类型:列表,字典,字符串.列表.字典的转换和自动生成导向: 异常处理:捕获异 ...

  4. Python实现学生信息管理系统V3.0(GUI界面)

    关于"学生信息管理系统"的基本思路和详细过程,请看V1.0版本: Python实现学生信息管理系统V1.0_︶ㄣ释然的博客-CSDN博客本文是关于学生信息管理系统的简易版以及具体内 ...

  5. 教你如何运用python实现学生信息管理系统

    这篇文章主要为大家详细介绍了使用python实现学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了python实现学生信息管理系统的具 ...

  6. python批量录入学生信息_利用Python实现学生信息管理系统的完整实例

    项目要求: 读完题目,首先我们要确定程序思路 我们要全部通过类去实现 也就是 我们要实现管理员.学生.讲师.课程.教师五个类 管理员类 class Administration(object): de ...

  7. python学生名片系统_基于python的学生信息管理系统!听说好多人的作业都是这个...

    完整代码 import pymysqlindex=''' +---------------------+ 首页 欢迎来到学生信息管理系统 1.登陆 2.注册 3.quit(按任意键退出) +----- ...

  8. MySQL课程设计——简易学生信息管理系统

    学生信息管理系统 一 分析 1.1 系统需求分析 1.1.1 业务分析 1.1.2 分析系统 1.2 功能模块 1.2.1 学生模块 1.2.2 教师模块 二 构建模型 2.1 概念模型:ERP模型 ...

  9. python的gui界面文件管理_【Python】学生信息管理系统_开发(GUI界面)

    学生信息管理系统的开发 模块:  1. 系统登录界面   -->   logingui.py 2. 系统主界面     -->    maingui.py 3. 学生明细界面  --> ...

  10. python 实现学生信息管理系统+MySql 数据库,包含源码及相关实现说明~

    学生信息管理系统 1.系统说明 python 编写的学生信息管理系统+MySQL数据库,实现了增删改查的基本功能. 2.数据库说明 本人使用的是 MySQL8.0 版本 数据库端口号为:3306 数据 ...

最新文章

  1. Linux的shell scripts的shell脚本练习
  2. axis2+myeclipse6.5环境搭建
  3. ERROR: SonarQube scanner exited with non-zero code: 137
  4. php mysql怎么实现,使用php与mysql怎么实现一个无限级分类
  5. Java Web实现信息管理
  6. 十二之续、快速排序算法的深入分析
  7. Python 调试:pdb
  8. excel自动导出功能_自动关联数据字典---SpringCloud Alibaba_若依微服务框架改造---工作笔记008
  9. JDK、JRE、JVM的区别及JavaSE、JavaEE和JavaME的区别?
  10. 【HNOI2003】【BZOJ1216】操作系统(模拟,优先队列)
  11. SpringBoot使用thymefeal出现No mapping for GET /xxx的解决办法
  12. 软件开发中的时区问题
  13. Java实现 蓝桥杯VIP 算法训练 调和数列
  14. Android编译时冲突报错的完美解决方案
  15. 石家庄地铁查询(双人项目)
  16. JavaScript 扁平化数组转成Tree
  17. 《琅琊榜》里祁王为何必须死?
  18. 吃亏的程序员,是如何拿到了 9 个月的年终奖?
  19. 模拟信号到数字信号转化_从模拟到数字再返回
  20. 数制转换,使用按权展开法将二进制数转换为十进制数,使用短除法除2取余计算十进制数转换为二进制数

热门文章

  1. uint32_t 大小端转换
  2. Visio绘制神经网络层Layer
  3. 无线AP和无线路由器区别 wifi热点
  4. BW文件格式打开工具XnView
  5. 漏洞扫描器和Nessus分析
  6. ceb转pdf linux,基于zynq的Linux根文件系统生成
  7. linux系统下查所有驱动信息,Linux系统查看驱动信息
  8. python开发酷q插件gui_Python酷Q应用开发
  9. 如何搭建自己的第四方支付平台?
  10. linux下安装fortran90教程,linux 安装fortran 90