Python题目:学生信息管理系统

       选用list、tuple、dictionary或map等数据结构,存储X个学生的三门课的成绩(机器学习、Python程序设计、研究生英语),并实现以下功能:

  • 1.添加学生信息
  • 2.修改学生信息
  • 3.删除学生
  • 4.添加学生的成绩
  • 5.修改学生成绩
  • 6.按姓名或者学号查找学生,显示学生信息及三门课的成绩,以及排名
  • 7.学生成绩统计(每门课的平均分、最高分、最低分)

现在把另一个高级版也放出来了,拥有图像界面显示,MySQL数据库操作:https://blog.csdn.net/kdongyi/article/details/103170876 -2019/11/20


stu_number = {"182085211002":"张三","182085211003":"a","182085211004":"b","182085211005":"a","182085211006":"d","182085211007":"张三","182085211008":"f",
}stu_info = [["182085211002","张三","男","汉族","100","99","98"],["182085211003","a","男","汉族","60","99","98"],["182085211004","b","男","汉族","100","88","98"],["182085211005","a","男","汉族","100","99","45"],["182085211006","d","男","汉族","100","75","98"],["182085211007","张三","男","汉族","100","75","98"],["182085211008","f","男","汉族","50","60","60"],
]rank = {}# 添加学生信息
def add_stu(stu_id):stu = []if stu_id in stu_number.keys():  # 判断'stu_num'是否存在于stu_number的键中print('该学生已存在,请勿重复添加!')else:stu_name = input("请输入学生姓名:")stu_number[stu_id] = stu_namestu.append(stu_id)stu.append(stu_name)stu.append(input("请输入学生性别:"))stu.append(input("请输入学生民族:"))stu.append("无")stu.append("无")stu.append("无")stu_info.append(stu)print_stu(stu_id)# 修改学生信息
def modif_stu(stu):if stu in stu_number.keys():  # 判断'stu_num'是否存在于stu_number的键中print_stu(stu)print("该学生信息如上,请输入要修改的项目:")while True:cmd = input("1、姓名  2、性别  3、民族 (输入q返回上级菜单):")if cmd == 'q':breakelif cmd == '1':index = find_stu(stu)for i in index:stu_info[i][1] = input("请输入修改后的姓名:")elif cmd == '2':index = find_stu(stu)for i in index:stu_info[i][2] = input("请输入修改后的性别:")elif cmd == '3':index = find_stu(stu)for i in index:stu_info[i][3] = input("请输入修改后的民族:")print("修改后的信息如下:")print_stu(stu)else:print('该学生不存在,请添加或重新输入!')# 删除学生
def delete_stu(stu):if stu in stu_number.keys():  # 判断'stu_num'是否存在于stu_number的键中print_stu(stu)cmd = input("该学生信息如上,确定是否删除?(Y/N):")if cmd == 'Y':index = find_stu(stu)for i in index:del stu_info[i]print("该学生已删除!")else:print('该学生不存在,请添加或重新输入!')# 添加学生成绩
def add_stu_val(stu_id):if stu_id in stu_number.keys():  # 判断'stu_num'是否存在于stu_number的键中print_stu(stu_id)print("该学生信息如上")index = find_stu(stu_id)for i in index:stu_info[i][4] = input("请输入机器学习成绩:")stu_info[i][5] = input("请输入Python程序设计成绩:")stu_info[i][6] = input("请输入研究生英语:")print("添加成绩结果如下:")print_stu(stu)else:print('该学生不存在,请添加或重新输入!')# 修改学生成绩
def modif_stu_val(stu):if stu in stu_number.keys():  # 判断'stu_num'是否存在于stu_number的键中print_stu(stu)print("该学生信息如上,请输入要修改的课程:")while True:cmd = input("1、机器学习  2、Python程序设计  3、研究生英语 (输入q返回上级菜单):")if cmd == 'q':breakelif cmd == '1':index = find_stu(stu)for i in index:stu_info[i][4] = input("请输入修改后的成绩:")elif cmd == '2':index = find_stu(stu)for i in index:stu_info[i][5] = input("请输入修改后的成绩:")elif cmd == '3':index = find_stu(stu)for i in index:stu_info[i][6] = input("请输入修改后的成绩:")print("修改后的信息如下:")print_stu(stu)else:print('该学生不存在,请添加或重新输入!')# 排名
def ranking():to_rank = {}for stu in stu_info:if stu[4]=='无' or stu[5]=='无' or stu[6]=='无':to_rank[stu[0]] = 0rank[stu[0]] = '无'else:to_rank[stu[0]] = (int(stu[4])+int(stu[5])+int(stu[6]))/3ranked = sorted(to_rank.items(),key = lambda x:x[1],reverse = True)num = 1re_num = 0 #分一样for i in range(len(ranked)):if i!=0:if ranked[i][1]==ranked[i-1][1]: #考虑分数一样的情况 排名相同re_num+=1rank[ranked[i][0]] = numelse:num = num + 1 + re_num #分数不一样 排名加一 如果有重复排名则加上rank[ranked[i][0]] = (num + re_num)re_num = 0else: #存第一名rank[ranked[i][0]] = num# 按姓名或者学号查找学生,返回值为列表 列表里的值为该学生数据位置
# 如果有重名学生,则返回在列表返回多个学生
def find_stu(stu):stu_index = []for i in stu_info:try:if i.index(stu) != None: #如果能查找到stu_index.append(stu_info.index(i))except:passreturn stu_index# 根据姓名或者学号显示学生信息及三门课的成绩、排名
def print_stu(stu):ranking()  # 排名stu_index = find_stu(stu)if len(stu_index) == 0:print("无此学生,请核对后重新输入!")for i in stu_index:the_stu = stu_info[i]print("\t姓名:",the_stu[1])print("\t学号:", the_stu[0])print("\t性别:", the_stu[2])print("\t民族:", the_stu[3])print("\t机器学习成绩:", the_stu[4])print("\tPython程序设计成绩:", the_stu[5])print("\t研究生英语成绩::", the_stu[6])print("\t排名::", rank[the_stu[0]])print("--------------------------")def statistics():machine_learning_max = 0python_max = 0english_max = 0machine_learning_min = 100python_min = 100english_min = 100machine_learning = 0python = 0english = 0num = 0for stu in stu_info:if stu[4]!='无' and stu[5]!='无' and stu[6]!='无':num += 1machine_learning += float(stu[4])python += float(stu[5])english += float(stu[6])if float(stu[4]) > machine_learning_max: machine_learning_max = float(stu[4])if float(stu[4]) < machine_learning_min: machine_learning_min = float(stu[4])if float(stu[5]) > python_max: python_max = float(stu[5])if float(stu[5]) < python_min: python_min = float(stu[5])if float(stu[6]) > english_max: english_max = float(stu[6])if float(stu[6]) < english_min: english_min = float(stu[6])machine_learning = machine_learning/numpython = python/numenglish = english/numprint("学生成绩统计如下:")print("机器学习:")print("\t平均分:%.2f,最高分:%.2f,最低分:%.2f" % (machine_learning,machine_learning_max,machine_learning_min))print("Python程序设计:")print("\t平均分:%.2f,最高分:%.2f,最低分:%.2f" % (python, python_max, python_min))print("研究生英语:")print("\t平均分:%.2f,最高分:%.2f,最低分:%.2f" % (english, english_max, english_min))while True:print("--------------------------")print("请输入以下命令进行操作:")print("\t1 添加学生信息")print("\t2 修改学生信息")print("\t3 删除学生")print("\t4 添加学生的成绩")print("\t5 修改学生成绩")print("\t6 按姓名或者学号查找学生,显示学生信息及三门课的成绩,以及排名")print("\t7 学生成绩统计")print("\texit 退出系统!")cmd = input("请输入命令:")if cmd == 'exit': # 退出系统!breakelif cmd == '1': # 添加学生信息print("--------------------------")while True:stu_id = input("请输入要添加学号(输入q返回上级菜单):")if stu_id == 'q':breakadd_stu(stu_id)elif cmd == '2': # 修改学生信息print("--------------------------")while True:stu = input("请输入要修改的学生学号(输入q返回上级菜单):")if stu == 'q':breakmodif_stu(stu)elif cmd == '3': # 删除学生print("--------------------------")while True:stu = input("请输入要删除的学生学号(输入q返回上级菜单):")if stu == 'q':breakdelete_stu(stu)elif cmd == '4': # 添加学生的成绩print("--------------------------")while True:stu = input("请输入要添加成绩的学号(输入q返回上级菜单):")if stu == 'q':breakadd_stu_val(stu)elif cmd == '5': # 修改学生成绩print("--------------------------")while True:stu = input("请输入要修改成绩的学号(输入q返回上级菜单):")if stu == 'q':breakmodif_stu_val(stu)elif cmd == '6': # 按姓名或者学号查找学生,显示学生信息及三门课的成绩,以及排名ranking() # 排名print("--------------------------")while True:stu = input("请输入要查询的学生姓名或学号(输入q返回上级菜单):")if stu == 'q':breakprint_stu(stu)elif cmd == '7': # 学生成绩统计print("--------------------------")statistics()

Python题目:学生信息管理系统相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. 基于python的学生信息管理系统文献综述_学生信息管理系统的文献综述

    基于 B/S 模式的成绩管理系统文献综述 1 .本课题研究的重要性和意义 目前,在学校里,随着高校规模的不断扩大和招生人数的不断增加,需要处理大量的 学生数据信息,越来越多的学校都需要自己的学生信息管 ...

  8. Python项目-学生信息管理系统

    一.功能介绍 学生信息管理系统实现的功能如下: 1.添加学生信息 2.删除学生信息 3.修改学生信息 4.查询学生信息 5.显示所有学生信息 6.按班级查询学生信息 7.退出系统 二.代码实现 # 定 ...

  9. python pywinauto 单击鼠标_基于Python的学生信息管理系统

    开发环境要求 本系统的软件开发及运行环境具体如下. 操作系统:Windows 7.Windows 10. Python版本:Python 3.7.0. 开发工具:Python IDLE. 运行方法 在 ...

  10. python编写个人信息_1、纯python编写学生信息管理系统

    classstudentSys(object):'''_init_(self) 被称为类的构造函数或初始化方法, self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应 ...

最新文章

  1. 醉酒删库:几杯红酒下肚,7小时数据消失...
  2. mongodb java 开源_MongoDB Java环境下的开发
  3. js kettle 设置变量_kettle与钉钉结合的企业内部应用扩展01
  4. oracle质数怎么算,借花献佛之使用Oracle sql求质数(笔记)
  5. torch_geometric 笔记: 数据集Cora 简易 GNN
  6. 《Orange’s 一个操作系统的实现》3.保护模式1----pm.inc分析
  7. (六)boost库之内存管理shared_ptr
  8. Android官方开发文档Training系列课程中文版:OpenGL绘图之添加动态效果
  9. 如何修改linux的java路径_修改桌面文件默认存储位置的正确方式及注意事项
  10. Revit二次开发之“为Ribbon设置快捷键”
  11. Hibernate中Criteria的完整用法
  12. 华为发布最强 AI 处理器昇腾 910,全场景 AI 框架 MindSpore 将开源
  13. c改java_如何将一个c程序改写成JAVA程序
  14. 机械类常用英语(一.组装、冲压、喷漆等专业词汇)
  15. BLE蓝牙4.0串口调试助手
  16. python--如何进行去重
  17. 1483选票统计(一)(结构体专题)
  18. python画圣诞帽_用Python就可以给你的头像戴上圣诞帽,别@微信团队了!
  19. 时间排序的SACK未确认报文链表
  20. 一个破解压缩包密码的软件——ziperello

热门文章

  1. 浅谈个人发展经历,明确自己发展方向
  2. 图解Windows98安装
  3. 【mysql学习】8.as使用,算术计算
  4. 利用经纬度计算两地距离——Power BI
  5. centos建立回收站
  6. Proxyee Down百度网盘高速下载器安装使用教程(Mac端)
  7. linux下 恢复gho镜像,手动使用ghost恢复win7系统gho镜像包教程
  8. PX4中的mavlink
  9. 装windows与ubuntu双系统教程
  10. jquery-美女相册案例