python-学生管理系统--9-整体代码
学生管理系统的所有代码以及注释内容:
源代码:
https://download.csdn.net/download/wtt234/59254564
源代码:(193条消息) Studen_managerSystem.zip-互联网文档类资源-CSDN文库https://download.csdn.net/download/wtt234/59254564
"""
学生信息管理系统:
学生管理系统涉及7个模块
1.录入学生信息模块
2.查找学生信息模块
3.删除学生信息模块
4.修改学生信息模块
5.学生成绩排名模块
6.统计学生总人数模块
7.显示全部学生信息模块
-------------
学生信息维护:录入学生信息删除学生信息修改学生信息查询/统计按照学生姓名查找按照学生ID查找查询并显示所有学生信息统计学生总人数排序根据英语成绩进行排序python成绩排序英语成绩排序java成绩paixu总成绩排序降序根据英语成绩进行排序python成绩排序英语成绩排序java成绩paixu总成绩排序"""# filename="student.txt"
# filename="student.db"#把数据存放到data目录下的办法
cwd=os.getcwd()
# pmabspath=os.path.abspath(cwd)
filedb="student.db"
filename="{}\data\{}".format(cwd,filedb)# print(pmabspath)# 保存学生数据信息到本地的文件名称
import os#filename="student.txt"
# filename="student.db"# 录入学生信息
# 录入学生模块,从控制台录入学生信息,并且把它们保存到硬盘文件汇总
# 保存文件格式:{'id':'1001','name':张三",‘english’:‘81’,‘python’:‘99’,‘java’:‘100’}
# {'id':'1001','name':张三",‘english’:‘81’,‘python’:‘99’,‘java’:‘100’}
# save(student)函数,用于将学生信息保存到文件
def insert():student_list=[]while True:id=input("请输出ID(如1009):")if not id: #id中没有输入数字,直接输入空格或者回车后,退出breakname=input("请输入姓名:")if not name:break# 如果输入的成绩存在错误的话,重新输入try:english=int(input("请输入英语成绩:"))python=int(input("请输入python成绩:"))java=int(input("请输入java成绩:"))except:print("输入的成绩存在错误,不是整数类型,请重新输入")continue#将录入的学生信息保存到字典中studentoneDict={'id':id,'name':name,'english':english,'python':python,'java':java}#将学生信息添加到列表中student_list.append(studentoneDict)answer=input("是否继续添加?y/n\n")if answer=='y':continueelse:break# 调用保存到本地的函数save,进行本地保存save(student_list)print("学生信息录入完毕")# 如果有文件‘filename’,就是直接以‘a'的追加模式添加数据,如果一开始,没有文件就是
# 执行下面’w‘模式的文件,新创建文件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') # 转换字符形式存入,后续取出的时候,采用eval函数stu_txt.close()# 查询函数,涉及两个函数
# search
# 定义显示查询结果的函数 show_student(query_student)
#
def search():student_queryn=[]while True: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',encoding="utf-8") as rfile:student=rfile.readlines()for item in student:d=dict(eval(item))if id!="":if d['id']==id:student_queryn.append(d) #把查找到的id相等添加到列表中elif name!="":if d['name']==name:student_queryn.append(d)# 显示查询结果show_student(student_queryn)#清空列表student_queryn.clear()answer=input("是否要继续查询?y/n\n")if answer=='y':continueelse:breakelse:print("暂未保存学生信息")returndef show_student(lst):if len(lst)==0:print("没有查询到学生信息,无数据显示!!!")return# 定义标题显示格式format_title='{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}'print(format_title.format('ID','姓名','英语成绩','python成绩','java成绩','总成绩'))# 定义内容显示格式format_data = '{:^6}\t{:^12}\t{:^8}\t{:^8}\t{:^8}\t{:^8}'for item in lst:print(format_data.format(item.get('id'),item.get('name'),item.get('english'),item.get('python'),item.get('java'),int(item.get('english'))+int(item.get('python'))+int(item.get('java'))))# 从控制台录入学生id,到磁盘文件中找到对应的学生信息,删除
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)) #将文件中的字符串转换成字典# 输入的编号’student_id‘与遍历的字典中的字典的id进行比较if d['id']!=student_id:wfile.write(str(d)+"\n") #不是要删除的字典项,就是还是保存到文件中,将一条学生信息写入文件else:# 这个相反就是,找到了’d['id']=student_id‘的项,也就是要删除的项flag=True #先做下标记,一会下面统计进行处理if flag:print(f'id为{student_id}的学生信息已经被删除')# 为什么提示信息被删除,也就是d['id']=student_id‘的信息,# 我们没有进行处理,也没有保存到文件中,所以可以间接的说是删除了else:print(f'没有找到id为{student_id}的学生信息')else:print("无学生信息")breakshow() # 删除之后要重新显示所有学生信息,调用个函数。answer=input('是否继续删除?y/n\n')if answer=='y':continueelse:break#修改学生信息
# 编写主函数中调用的修改学生信息的函数modify()
# 调用了show()函数显示学生信息,该函数的功能将在后面完成def modify():show()if os.path.exists(filename):with open(filename,"r",encoding='utf-8') as rfile:student_old=rfile.readlines()else:return #没有filename文件,就是结束student_id=input("请输入要修改的学员的ID:")with open(filename,'w',encoding="utf-8") as wfile:for item in student_old:d=dict(eval(item)) #读取文件中的临时字典if d['id']==student_id:print("找到学生信息了,可以修改他的相关内容信息了!")while True:try:d['name']=input("请输入姓名:")d['engilish']=input("请输入英语成绩:")d['python']=input("请输入python成绩:")d['java']=input("请输入java成绩:")except:print("您输入的有误,请重新输入!")else:break # try,excep,else..如果输入的内容没有报错,就是到else这里,结束修改程序wfile.write(str(d)+'\n')print("修改成功")else:wfile.write(str(d)+"\n")answer=input("是否继续修改其他学生信息?y/n\n")if answer=='y':modify()# 排序模块设计
def sort():show()if os.path.exists(filename):with open(filename,'r',encoding='utf-8') as rfile:student_list=rfile.readlines()student_new=[]for item in student_list:d=dict(eval(item))student_new.append(d) # 把字典从文件中取出来,存入新的字典else:returnasc_or_desc_bool = Noneasc_or_desc=input("请选择(0.升序 1.降序):")if asc_or_desc=='0':asc_or_desc_bool=Trueelif asc_or_desc=='1':asc_or_desc_bool = Falseelse:print("您输入的有错误,请重新输入")sort() #在此调用排序函数mode=input("请输入选择排序方式(1.按英语成绩排序 2.按照python成绩排序 3.按照java成绩排序 0.按照总成绩排序)")if mode=="1":student_new.sort(key=lambda x:int(x['english']), reverse=asc_or_desc_bool)elif mode=="2":student_new.sort(key=lambda x: int(x['python']), reverse=asc_or_desc_bool)elif mode=="3":student_new.sort(key=lambda x: int(x['java']), reverse=asc_or_desc_bool)elif mode=="0":student_new.sort(key=lambda x: int(x['english'])+int(x['python'])+int(x['java']), reverse=asc_or_desc_bool)else:print("您输入有误,请重新输入!!!")sort()show_student(student_new)# 统计学生总人数
def total():if os.path.exists(filename):with open(filename,'r',encoding='utf-8') as rfile:students=rfile.readlines()if students:print("一共有{}名学生。".format(len(students)))else:print("还没有录入学生信息。")else:print("暂未保存数据信息....")#显示所有学生信息
def show():student_list=[]if os.path.exists(filename):with open(filename,'r',encoding='utf-8')as rfile:students=rfile.readlines()for item in students:student_list.append(eval(item))if student_list:show_student(student_list)else:print("暂未保存数据信息!!!!")def mainfun():while True:menu()choice=int(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:continueelif choice==1:insert() #录入学生信息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 menu():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.退出系统')print("-----------------------------------------")if __name__ == '__main__':mainfun()
python-学生管理系统--9-整体代码相关推荐
- Python学生管理系统代码
Python学生管理系统代码一览 复制即用 初学见谅 #python study # -*- coding: utf-8 -*-#学员信息 data = [{'id': ' 1','name': '辛 ...
- Python 学生管理系统+mysql+Flask
Python 学生管理系统 前言 项目目录 config py mapper.student_mapper.py static templates 主要代码块 student_controller.p ...
- 史上最全面的python学生管理系统教程(二)
目录 序言 sqlite使用教程 python sqlite使用教程 数据库构造 学生信息表结构: 教师信息表结构: 课程成绩表结构: 教师添加课程: 学生表连接课程成绩表: 数据库语句了解 sqli ...
- python学生管理系统-学生管理系统python
广告关闭 腾讯云+校园是针对学生用户推出的专项扶持计划,1核2G云服务器9元/月起,云数据库2元/月起,并享受按购买价续费的优惠,助力莘莘学子轻松上云 print(该学生不存在)return none ...
- python学生管理系统界面-Python实现GUI学生信息管理系统
本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下 项目环境: 软件环境: OS:RedHat6.3 Lib:Pygtk Language:Python S ...
- python学生管理系统-python实现学生成绩管理系统
本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 基本功能: 输入并存储学生的信息:通过输入学生的学号.姓名.和分数,然后就可以把数据保存在建立的student ...
- python学生管理系统用类写_python面向对象——学校学生教职工管理系统类的实例...
这里做一个学校的人事管理系统中的类的实例化,其中含有的类:Person.Student.Stuff三个类.下面来具体分析类所要实现的功能. 首先可以定义使用Person类,找出学生和教职工之间的共同属 ...
- C语言--学生管理系统--(完整代码)
本系统分成了三个文件,main.c student.c student.h 功能: 实现对班级成员的增加.删除.修改.遍历.根据成绩排序. 增加 会检查,现在班级已有的人数,班级是否已满(没有学号重复 ...
- python学生管理系统数据库_Django+Mysql实现--学生管理系统
写在前面 在python课中老师要求使用python的web框架实现学生管理系统,经过查找资料等,最后选择了使用Django来搭建这个系统 Django Django是一个开放源代码的Web应用框架, ...
- Python学生管理系统——面向对象版本
Python练习题----学生管理系统(面向对象版本) 一. 题目要求: 学生信息管理:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等.设计一个学生信息管理系统,使之提供以下功能: -- ...
最新文章
- python运维脚本部署jdk_Jenkins自动执行Python脚本,并输出测试报告
- 猴子用意念玩游戏,马斯克脑机接口公司新进展
- Spring事务管理机制
- Log4Net配置使用简记
- html中dd dt的效果,html中dt dd
- 面向对象方法开发的方法
- ajax鼠标滚动请求 或 手机往下拉请求
- python怎么操作_python怎么操作mysql
- 区块链浏览器构建实战
- 特征选择方法-统计方法
- 劝说语合理使用计算机,用一句名言来劝说家长让孩子接触计算机
- php实现爬虫抓取法定节假日放假和补班安排数据
- 高德地图嵌入到threejs全景中的踩坑指南
- 关于固态硬盘闪存芯片研究资料收集
- VisionPro斑点工具CogBlobTool
- Android 9 wifi PNO 扫描
- 2021年网易云音乐实时计算平台发展和挑战
- 完全教程 Aircrack-ng破解WEP、WPA-PSK加密利器 [MARK]
- 数据结c语言约瑟夫环实验报告,数据结构约瑟夫环实验报告.doc
- python下载与安装(详细教程)