python简易学生信息管理系统
简易学生信息管理系统主要功能有
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简易学生信息管理系统相关推荐
- python制作个人信息管理系统_python实现简易学生信息管理系统
本文实例为大家分享了python实现学生信息管理系统的具体代码,供大家参考,具体内容如下 简易学生信息管理系统主要功能有 1 录入学生信息 2 查找学生信息 3 删除学生信息 4 修改学生信息 5 排 ...
- Python程序设计之 —— 简易学生信息管理系统
大家好,我是 Enovo飞鱼,今天分享一个 Python程序设计之 -- 简易学生信息管理系统 ,小白或者正在学习Python的小伙伴推荐阅读,加油
- python制作学生管理系统_Python——面向对象,简易学生信息管理系统
一.概述 1.1涉及到的知识点 项目开发:创建项目,创建包,导入包: 面向对象:静态方法,继承,内置函数,自定义函数: 数据类型:列表,字典,字符串.列表.字典的转换和自动生成导向: 异常处理:捕获异 ...
- Python实现学生信息管理系统V3.0(GUI界面)
关于"学生信息管理系统"的基本思路和详细过程,请看V1.0版本: Python实现学生信息管理系统V1.0_︶ㄣ释然的博客-CSDN博客本文是关于学生信息管理系统的简易版以及具体内 ...
- 教你如何运用python实现学生信息管理系统
这篇文章主要为大家详细介绍了使用python实现学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了python实现学生信息管理系统的具 ...
- python批量录入学生信息_利用Python实现学生信息管理系统的完整实例
项目要求: 读完题目,首先我们要确定程序思路 我们要全部通过类去实现 也就是 我们要实现管理员.学生.讲师.课程.教师五个类 管理员类 class Administration(object): de ...
- python学生名片系统_基于python的学生信息管理系统!听说好多人的作业都是这个...
完整代码 import pymysqlindex=''' +---------------------+ 首页 欢迎来到学生信息管理系统 1.登陆 2.注册 3.quit(按任意键退出) +----- ...
- MySQL课程设计——简易学生信息管理系统
学生信息管理系统 一 分析 1.1 系统需求分析 1.1.1 业务分析 1.1.2 分析系统 1.2 功能模块 1.2.1 学生模块 1.2.2 教师模块 二 构建模型 2.1 概念模型:ERP模型 ...
- python的gui界面文件管理_【Python】学生信息管理系统_开发(GUI界面)
学生信息管理系统的开发 模块: 1. 系统登录界面 --> logingui.py 2. 系统主界面 --> maingui.py 3. 学生明细界面 --> ...
- python 实现学生信息管理系统+MySql 数据库,包含源码及相关实现说明~
学生信息管理系统 1.系统说明 python 编写的学生信息管理系统+MySQL数据库,实现了增删改查的基本功能. 2.数据库说明 本人使用的是 MySQL8.0 版本 数据库端口号为:3306 数据 ...
最新文章
- Linux的shell scripts的shell脚本练习
- axis2+myeclipse6.5环境搭建
- ERROR: SonarQube scanner exited with non-zero code: 137
- php mysql怎么实现,使用php与mysql怎么实现一个无限级分类
- Java Web实现信息管理
- 十二之续、快速排序算法的深入分析
- Python 调试:pdb
- excel自动导出功能_自动关联数据字典---SpringCloud Alibaba_若依微服务框架改造---工作笔记008
- JDK、JRE、JVM的区别及JavaSE、JavaEE和JavaME的区别?
- 【HNOI2003】【BZOJ1216】操作系统(模拟,优先队列)
- SpringBoot使用thymefeal出现No mapping for GET /xxx的解决办法
- 软件开发中的时区问题
- Java实现 蓝桥杯VIP 算法训练 调和数列
- Android编译时冲突报错的完美解决方案
- 石家庄地铁查询(双人项目)
- JavaScript 扁平化数组转成Tree
- 《琅琊榜》里祁王为何必须死?
- 吃亏的程序员,是如何拿到了 9 个月的年终奖?
- 模拟信号到数字信号转化_从模拟到数字再返回
- 数制转换,使用按权展开法将二进制数转换为十进制数,使用短除法除2取余计算十进制数转换为二进制数