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

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. 重磅来袭!谷歌八年高级工程师亲授面试经验!!!
  2. 重温强化学习之马尔可夫决策过程(MDPs)
  3. python中的集合类型_Python中的集合类型知识讲解
  4. 利用 dbghelp.dll 生成 dump 文件
  5. es6 Iterator(迭代器)的概念
  6. python有趣的代码-python有趣的一行代码
  7. [转]用C++实现插件体系结构
  8. 职场这样发邮件,你死定了!
  9. Nginx - 原理机制
  10. VS2012安装教程
  11. Vsftpd-系统用户配置
  12. RecycleView多布局的实现
  13. 2021腾讯广告算法大赛联手ACM MM,共百万奖金池!
  14. 接口工具POSTMAN怎么设置中文
  15. 读《拆掉思维的墙》小记
  16. 上周,维(系数字世界真)谛技术开了个大会
  17. org.testng.TestNGException: TestNG by default disables loading DTD from unsecured Urls.问题解决
  18. H5 canvas基础入门到捕鱼达人小游戏实现(1)
  19. 回顾《JavaScript高级程序设计》目录篇
  20. FMEA软件——SunFMEA,企业品质管理专家

热门文章

  1. 【S交换机技术连载帖】交换机在江湖系列-序言
  2. 100套Java毕业设计和课程设计项目案例(包含项目源码)
  3. bp神经网络预测案例python_详细BP神经网络预测算法及实现过程实例
  4. BAT 文件 常用 代码 大全
  5. 【申博攻略】三.北交计算机学院学术型博士“申请-考核”攻略(经验分享篇)
  6. 苹果cms模板_苹果cmsv10简约模板有哪些?
  7. python 伪原创 中文近义词工具包【转】
  8. 2019美赛D题,元胞自动机模拟游客疏散过程
  9. 计算机教学能力大赛实施报告模板,“现代信息技术在课堂教学中的运用”实施情况总结...
  10. C语言基本入门英语单词,C语言基本入门英语单词.doc