声明 本文仅在CSDN发布!

正版链接:
https://blog.csdn.net/meenr/article/details/107141477

目录

  • 概述
  • 效果演示
    • 演示视频链接:
    • 普通版界面截图
  • 总体要求
  • 具体要求
  • 分析要求
    • easygui库
    • 基本数据类型
    • 基本逻辑顺序
    • pandas库
    • TXT文件和CSV或Excel文件的读写
  • 代码结构
  • 示例代码
  • 直接获取.py源文件
    • 途径一
    • 途径二

概述

本文代码系原创,仅供学习参考使用。若转载与引用请标注出处申明。
本文介绍的内容是,利用python语言,设计一个学生信息成绩管理系统。


该版本是普通版,升级版请阅读:Python学生成绩信息管理系统升级版 https://blog.csdn.net/meenr/article/details/122141262


应用所学Python基础知识,独立编写一个学生信息成绩管理系统,实现用户能够注册登录,登录成功可进行个人成绩查询,统计个人成绩,统计班级成绩等一些功能。 文末获取本文所述全部参考代码。 下面将介绍该系统的总体要求、具体要求、要求分析、参考代码、以及实现效果的演示视频。

效果演示

演示视频链接:

普通版:
演示视频
https://mp.weixin.qq.com/s/gd1WLdkeIkW2NmMPQR85XA

升级版:
功能演示视频链接地址
https://mp.weixin.qq.com/s/Jp9gIqFehRwfixFUCVF-_A

普通版界面截图

第一级菜单

登录

二级菜单

统计个人输出

总体要求

Python的初学者们需要灵活应用所学Python基础知识编写一个成绩管理系统,实现用户能够注册、登录,登录成功可以进行个人成绩查询,统计个人成绩,统计总评成绩等功能。

具体要求

  1. 界面采用交互式菜单方式,一级菜单包括:注册、登录、退出。
    二级菜单包括:查询个人成绩、统计个人成绩、统计总评成绩、退出成绩系统等功能。

  2. 用户注册模块:实现用户的注册。用户键盘输入注册信息(用户名、密码),并用xxx.txt文本文件的方式保存。

  3. 用户登录模块:实现用户名和密码的校验。用户键盘输入用户名和密码,读取用户注册文件xxx.txt中的信息进行校验,一致则显示登录成功。否则判断用户可输入用户名和密码的次数大于N(N>=3)没,如果超出输入次数,显示登录失败,且等待一段时间后才可以重新输入。

  4. 成绩信息建立模块:要求程序代码中直接输入本人真实信息(姓名、学号、电话、各科成绩),N名同学的真实信息(姓名、学号、电话、各科成绩)(N>=6),并用字典或列表等数据类型存放。再将这些信息写入到xxx.CSV文件中长久保存。

  5. 查询个人成绩模块:要求用户从键盘输入查询的姓名或学号,读取xxx.CSV文件并返回指定姓名或学号的各科成绩信息。

  6. 统计个人成绩模块:要求用户从键盘输入查询的姓名或学号,读取xxx.CSV文件并返回指定姓名或学号的成绩总分和平均分等。

  7. 统计总评成绩模块:读取***.CSV文件并返回所有同学的科目成绩和总分,并按总分由高到低排名。

  8. 各功能模块用函数实现,主程序调用各功能模块。

  9. 代码中必须涉及定义字符串、定义列表、定义字典、数据类型之间的转换、列表操作、字典操作、if语句、for循环、while循环、文件(txt、csv)操作的相关代码。

  10. 用户从键盘输入不符合要求的数据用异常来捕获。

  11. 可扩充以上基本功能。

分析要求

  该系统主要考察Python初学者们对基础的python知识的应用能力。
从要求可以知道需要用到的的Python知识点对初学者来说还算全面与综合,主要用到的Python知识点有:

easygui库

官网链接
  用使用easygui库设计一二级菜单,包括出注册、登录、查询界面。
buttonbox:设计多按钮选择界面
multpasswordbox:设计用户登录和注册界面的账号密码输入
msgbox:登陆成功与错误超过三次信息提示对话框
textbox:成绩信息显示的文本框

基本数据类型

博客链接
用到的基本数据类型:
字符串、列表、字典

基本逻辑顺序

博客链接
常用的逻辑循环与判断语句:
while循环、for循环
if判断、if…else判断、if…elif…else判断
  以及上述这些语句的组合都是在GUI设计时常用到的,以满足GUI一级、二级菜单为用户提供的选择功能。判断若输入密码错误三次后将触发延时函数,等待一段时间后重新输入密码。

pandas库

官网链接
对原始数据进行预处理方便后续使用。
将字典转为DataFrame类型,然后进行增删改查与行列变换等操作,再将处理好的数据写入到本地文件中。

TXT文件和CSV或Excel文件的读写

博客链接
TXT文件主要用于保存用户的账号与密码。CSV或Excel文件用来作为保存与处理后的学生成绩信息表格。

代码结构

本文提供的代码主要分为四大部分:

  1. 设计GUI注册登录界面
  2. 成绩信息CSV文件读写操作
  3. 设计GUI查询界面
  4. 主程序

  上述四个部分代码写在三个文件中由对应的四个函数组成。
查询函数调用了登录和写入CSV文件函数,那么在主程序中调用查询函数即可。
但是实际上成绩写入程序只需执行一次即可,它生成的CSV文件已经保存在本地文件夹中了。同时将登录界面的函数与查询界面的函数写在了一个GUI的.py文件中。而用户若要手动输入学生的成绩信息,可以在CSV文件中输入。pycharm工程文件目录见下图:

示例代码

GUI查询界面的代码如下:

def Find():if Login():while True:choose2 = g.buttonbox(msg="已进入学生成绩管理系统,请选择",title="学生成绩管理系统",choices=("查询个人", "统计个人","统计总评", "退出"))if choose2 == "查询个人":data1 = read_csv('学生信息成绩表.csv')name_num = g.enterbox(msg='输入学生姓名或学号', title='查询个人成绩')elif match:name = name_numresult1 = data1.loc[data1['姓名'] == name]text1 = str(result1)g.textbox(msg='学生信息成绩如下:', title='学生成绩信息', text=text1, codebox=1)elif choose2 == "统计个人":data2 = read_csv('学生信息成绩表.csv')name_num = g.enterbox(msg='输入学生姓名或学号', title='统计个人成绩')zhmodel = re.compile(u'[\u4e00-\u9fa5]')match = zhmodel.search(name_num)if name_num.isdigit() or match:total = 0else:

直接获取.py源文件

因为源代码太多,篇幅的限制,这里不再赘述,读者如要需要全部参考代码可通过下面两种途径获取。
优先推荐途径一,若遇途径一失效,请再尝试途径二。
2贰进制–Echo 2020年6月
如果您已阅读至此,请点赞+评论+收藏,要是关注那更是对我极大地支持了,您的支持便是我前进的动力!
如果本文对你有所帮助,解决了您的困扰,那就请我吃包辣条吧:

途径一

优先推荐该途径
第一步:扫描下方二维码,或打开微信搜索并关注“ 2贰进制 ”公众号;
第二步:回复:“ python学生管理 ”即可获取。

途径二

优先推荐途径一,该途径管理可能不能秒回
扫描下方二维码,加入学习交流QQ群“ 480558240 ”,联系管理员获取包括但不限于本篇内容的更多学习资料。

此致
感谢您的阅读、点赞、评论、收藏与打赏。

《 Python程序设计项目案例》—学生成绩(信息)管理系统普通版设计要求及部分参考代码(期末大作业、结课项目)相关推荐

  1. 基于python+tkinter的学生成绩信息管理系统

    基于python+tkinter的学生成绩信息管理系统 系统设计 2.开发工具 开发语言:python3.6.8 开发工具:JetBrains PyCharm 2019.1.2 x64 使用三方模块: ...

  2. C#程序代码连接SQL Server数据库实现学生成绩信息管理系统(重置版)

    目录 一.创建数据库表和配置SQL数据库连接信息 1.创建数据库表 2.配置数据库连接信息 二.配置程序代码 1.StudentAccount类 2.Student类 3.TeacherAccount ...

  3. C语言编写学生成绩信息管理系统

    用C语言设计简单的学生成绩信息管理系统 介绍 代码 结构体数组的定义 home_page() 函数 add_infor() 函数 browse_infor() 函数 find_infor() 函数 m ...

  4. 任务2 学生成绩信息管理系统

    系列文章 任务2 学生成绩信息管理系统 某班级学生C语言第一次正考的成绩存于数据文件score.txt中,记录了学生学号.姓名和考试成绩,bk.txt文件中记录了补考学生的学号.姓名和补考成绩,编写程 ...

  5. 基于JavaWeb学生成绩信息管理系统(附源码资料)-毕业设计

    1. 适用人群 本课程主要是针对计算机专业相关正在做毕业设计.或者是需要实战项目的Java开发学习者. 2. 你将收获 提供:项目源码.项目文档.数据库脚本.软件工具等所有资料(在平台的课程附件中进行 ...

  6. 【基于SSM+MySQL+Jsp的高校学生成绩信息管理系统的设计与实现 ---(效果+源代码+数据库+获取 ~ ~】

    快速阅读目录 写在前面: (一)效果展示 (1)数据库表一览 (2)部分运行截图 (二)代码展示 (三)说明 写在前面: tips:这是一个基于SSM+MySQL+Jsp等技术的高校学生成绩信息管理系 ...

  7. 基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统

    1.项目开发背景和意义 随着科学技术的快速发展和不断提高,尤其是计算机科学技术的日渐普及,其功能的强大以及运行速度已经被人们深刻地了解.近几年来高校的办学模式多元化和学校规模的扩大,为了实现对学生信息 ...

  8. C语言学生成绩信息管理系统课程设计报告

    C语言课程设计报告 一 .设计目的 学生成绩管理系统 主要功能: (1)能按学期.按班级完成对学生成绩的录入. 修改,删除 (2)能按班级统计学生的成绩,求学生的总分及 平均分,并能根据学生的平均成绩 ...

  9. html css javascript 动漫网页设计成品 (妖狐小红娘) 学生漫画网页DW制作 web实训网页设计 HTML5期末大作业

    HTML5期末大作业:动漫网站设计--妖狐小红娘(6页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 ...

  10. html css javascript 动漫网页设计成品 (妖狐小红娘) 学生漫画网页DW制作 web实训网页设计 HTML5期末大作业...

    常见网页设计作业题材有 ​​个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. 服装. 体育. 化妆品. 物流. 环保. 书籍. 婚纱. 军 ...

最新文章

  1. SAP财务中国本土好内容
  2. 计算机网络互联网技术实验报告,2013计算机网络技术与应用.实验报告01
  3. Eigen的基础使用-C++
  4. 在线闹钟html代码复制,html5时钟实现代码
  5. LINUX 下 RABBITMQ安装与配置
  6. ocr python tesseract训练_tesseract-ocr怎么大量训练
  7. 笔记本显卡未连接计算机,电脑提示当前未使用连接到NVIDIA GPU的显示器如何解决...
  8. PGSQL Key (id)=(1) already exists.
  9. 使命召唤手游显示服务器停服,使命召唤手游停服了吗 是手游还是端游
  10. CSS学习笔记 01、CSS3基础知识学习
  11. SkyEye与Trace32集成并搭建调试环境
  12. windows下制作macos安装u盘_制作MacOS系统启动盘教程以及安装教程
  13. 单灯闪烁c语言程序,51单片机,C语言编程,控制指示灯闪烁的频率
  14. 表单reset重置按钮的作用并非是清空表单
  15. 教你一招:Win10切换输入法与Win7一样(Ctrl + 空格)
  16. ERROR: Failed building wheel for box2d-py
  17. visualGDB下导入cmake工程
  18. 申请电子面单号API接口文档
  19. 巧用 XQuartz 实现在 macOS 下显示 Linux X11 图形化程序
  20. 污水中的重金属去除工艺,吸附重金属树脂CH-90Na

热门文章

  1. matlab如何绘制语谱图,语谱图matlab
  2. 虾米播播音乐墙html,虾米音乐外链,免费外链音乐,博客免费播放器
  3. 距离多普勒谱(RD谱)绘制方法及理解
  4. CryEngine GameLaucher 和Editor
  5. H5 的直播协议和视频监控方案
  6. Android指纹验证
  7. 多重继承--读松本行弘的程序世界
  8. net start mysql无法启动数据库的解决办法
  9. 【论文笔记】Weakly Supervised Discriminative Feature Learning with State Information for Person ...
  10. mysql中生成时间维度表