【Python】python学生体能考核成绩管理系统(数据库) (源码+报告)【独一无二】

news2024/11/26 4:52:54

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


系列文章目录


目录

  • 系列文章目录
  • 一、设计目的
  • 二、数据库设计
  • 三、运行结果
    • 3.1. 教师登录
    • 3.2. 录入成绩
    • 3.3. 修改成绩
    • 3.4. 删除成绩
    • 3.5. 返回主菜单
    • 3.6. 学生查询
    • 3.7. 查询结果
  • 四、代码分析
      • 1. 导入模块
      • 2. 数据库连接
      • 3. 创建数据库表
        • 3.1 用户数据表
        • 3.2 体能数据表
      • 4. 用户登录
      • 5. 学生查询功能
      • 6. 老师录入和修改数据
      • 7. 主菜单和程序入口
      • 8. 关闭数据库连接


一、设计目的

学生体能考核成绩管理系统是一个综合性的教育领域课程实验,旨在帮助学生掌握数据库管理和应用、身份认证与权限控制、问题解决能力以及综合性项目开发等关键技能。这个实验设计具有多重目的,旨在为学生提供全面的学习体验和职业技能培养。

首先,实验的一个重要目标是让学生实践数据库管理与应用。通过使用Python编程语言和MySQL数据库,学生学会了如何创建数据库表、插入、查询、更新和删除数据等数据库操作。这不仅提供了数据库管理技能的实际应用,还为学生提供了处理大量数据的经验。

其次,实验着重关注身份认证和权限控制的重要性。学生需要实现用户登录功能,并根据用户类型(学生或老师)设置不同的权限。这有助于他们理解在应用程序中如何实施基本的安全措施,以确保数据的安全性和保密性。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体能考核系统 ” 获取。👈👈👈

第三,这个实验项目提供了一个综合性项目开发的机会。学生需要将不同的功能模块组合在一起,创建一个完整的应用程序。这锻炼了他们将理论知识应用到实际项目中的能力,培养了他们的软件开发技能。

此外,实验的背景是体育成绩管理应用,为学生提供了一个实际场景,展示了编程和数据库管理在教育领域的应用。学生可以体验到如何将技术与教育管理相结合,提高了他们的综合素质。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体能考核系统 ” 获取。👈👈👈


二、数据库设计

数据库中包括两个表格:user表格和fitness_data表格。下面是这两个表格的字段表格以及建立数据库的过程的详细分析。

  1. user 表格字段表格:
字段名数据类型说明
idINT (自增主键) 用户的唯一标识
usernameVARCHAR(255) NOT NULL用户的用户名
passwordVARCHAR(255) NOT NULL用户的密码
user_typeENUM(‘teacher’, ‘student’) NOT NULL用户类型,可选值为老师或学生
  1. fitness_data 表格字段表格:
字段名数据类型说明
idINT (自增主键)体能数据记录的唯一标识
student_nameVARCHAR(255) NOT NULL学生的姓名
push_upsINT俯卧撑成绩
sit_upsINT仰卧起坐成绩
pull_upsINT引体向上成绩
run_3000mTIME3000米跑成绩(时间格式:HH:MM:SS)

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体能考核系统 ” 获取。👈👈👈


三、运行结果

3.1. 教师登录

在这里插入图片描述

3.2. 录入成绩

在这里插入图片描述

3.3. 修改成绩

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体能考核系统 ” 获取。👈👈👈

3.4. 删除成绩

在这里插入图片描述

3.5. 返回主菜单

在这里插入图片描述

3.6. 学生查询

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体能考核系统 ” 获取。👈👈👈

3.7. 查询结果

在这里插入图片描述


四、代码分析

1. 导入模块

import pymysql
  • 导入 pymysql 模块:此模块用于在Python中提供MySQL数据库的连接和操作功能,是实现数据库操作的基础。

2. 数据库连接

conn = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password='root',
    db='dish'
)

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体能考核系统 ” 获取。👈👈👈

  • 建立数据库连接:这部分代码负责建立与MySQL数据库的连接。指定了数据库的位置(本地主机)、用户名、密码以及要操作的数据库名。

3. 创建数据库表

3.1 用户数据表
def create_user_table():
    cursor = conn.cursor()
    cursor.execute('''
    CREATE TABLE IF NOT EXISTS user (
        id INT AUTO_INCREMENT PRIMARY KEY,
        # 略.....
    )
    ''')
    conn.commit()
    cursor.close()
  • 定义函数 create_user_table:该函数用于创建一个新的用户表,存储用户的ID、用户名、密码和用户类型(教师或学生)。
  • 使用事务处理:通过conn.commit()来提交SQL命令,确保创建表的操作被正确执行。
3.2 体能数据表
def create_fitness_table():
    cursor = conn.cursor()
    cursor.execute('''
    CREATE TABLE IF NOT EXISTS fitness_data (
        id INT AUTO_INCREMENT PRIMARY KEY,
        # 略.....
    )
    ''')
    conn.commit()
    cursor.close()
  • 定义函数 create_fitness_table:创建一个表来存储学生的体能测试数据,包括俯卧撑、仰卧起坐、引体向上以及3000米跑的成绩。

4. 用户登录

def user_login():
    username = input("请输入用户名: ")
    password = input("请输入密码: ")
    cursor = conn.cursor()
    cursor.execute("SELECT user_type FROM user WHERE username=%s AND password=%s", (username, password))
    user_type = cursor.fetchone()
    cursor.close()
    if user_type:
        return user_type[0]
    else:
        return None
  • 用户验证:通过输入用户名和密码进行用户验证,并从数据库中检索对应的用户类型(学生或教师),若验证成功返回用户类型,否则返回None

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体能考核系统 ” 获取。👈👈👈

5. 学生查询功能

def student_query():
    # 略.....
  • 个人及不及格学生成绩查询:学生可以查询自己的体能成绩或查看不及格的学生名单。这部分代码通过不同的选择来执行不同的数据库查询操作。

6. 老师录入和修改数据

def teacher_input_and_modify():
     # 略.....
  • 数据录入和修改:教师可以录入、修改或删除学生的体能数据。此功能允许教师通过菜单进行选择并执行相应的数据库操作。

7. 主菜单和程序入口

def main_menu():
    ...
if __name__ == "__main__":
    create_user_table()
    create_fitness_table()
    main_menu()
  • 主菜单循环:程序的主入口点,包括用户表和体能数据表的创建及主菜单的调用,主菜单控制程序的主要流程,允许用户进行不同的操作选择。

8. 关闭数据库连接

conn.close()
  • 释放资源:在程序结束时关闭数据库连接,确保所有的资源被妥善释放。

整个代码结构清晰,逻辑分明,每个功能模块都具有明确的职责,从数据库连接到数据操作再到用户交互,形成了一个完整的体能数据管理系统。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体能考核系统 ” 获取。👈👈👈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1587821.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新版chrome 解决在http协议下无法调用摄像头和麦克风的问题(不安全)

解决办法:亲测可行 chrome浏览器地址栏中输入chrome://flags/#unsafely-treat-insecure-origin-as-secure,回车,如下图,将该选项置为Enabled, edge浏览器打开:edge://flags/#unsafely-treat-insecure-orig…

linux文件访问权限理解

目录 一,涉及指令: 二,权限的表示 三,权限命令使用 一,涉及指令: umask chmod chown/chgrp 二,权限的表示 rwx rwx r-x含义: 访问方式: r-可读;w-可写;x-可执行; 访问用户:u-所有者;…

最新Android Studio导入aar包的方法

以前的方式,目前看网上也大多数都是这种方式,导致我本地加的时候一直有问题 但是这样都无法sync以及编译通过,因为方式已经变了 1:将aar文件复制到MyApplication\app\libs下 2:在MyApplication\app\build.gradle下添加…

LLM大语言模型助力DataEase小助手,新增气泡地图,DataEase开源数据可视化分析平台v2.5.0发布

2024年4月8日,DataEase开源数据可视化分析平台正式发布v2.5.0版本。 这一版本的功能升级包括:新增DataEase小助手支持,通过结合智能算法和LLM(即Large Language Model,大语言模型)能力,DataEas…

Python(9):一文学懂进程,线程和协程

文章目录 一、进程1.创建多进程2.查看进程id3.进程池4.进程间的互相通信 二、线程1.threading线程模块2.创建多线程3.互斥锁4.死锁5.线程间的互相通信 三、协程1.认识协程2.gevent模块在爬虫中的应用 四、多线程、多进程、协程的区别 分类定义程序一个应用可以当做一个程序&…

广佛站点导航助手小程序产品使用说明书

一、产品简介 广佛站点导航助手小程序是一款专为广佛地区用户设计的地铁导航工具。通过获取用户的实时位置信息,小程序能够迅速定位并展示离用户最近的三个地铁站点。用户可以通过本小程序轻松查找地铁站点,规划出行路线,提高出行效率。 二、…

STM32 串口接收定长,不定长数据

本文为大家介绍如何使用 串口 接收定长 和 不定长 的数据。 文章目录 前言一、串口接收定长数据1. 函数介绍2.代码实现 二、串口接收不定长数据1.函数介绍2. 代码实现 三,两者回调函数的区别比较四,空闲中断的介绍总结 前言 一、串口接收定长数据 1. 函…

计算机网络——网络地址转换(NAT)技术

目录 前言 前篇 引言 SNAT(Source Network Address Translation)源网络地址转换 SNAT流程 确定性标记 DNAT(Destination Network Address Translation,目标网络地址转换) NAT技术重要性 前言 本博客是博主用于…

Docker学习笔记(二):在Linux中部署Docker(Centos7下安装docker、环境配置,以及镜像简单使用)

一、前言 记录时间 [2024-4-6] 前置文章:Docker学习笔记(一):入门篇,Docker概述、基本组成等,对Docker有一个初步的认识 在上文中,笔者进行了Docker概述,介绍其历史、优势、作用&am…

Linux:软件包管理器 - yum

Linux:软件包管理器 - yum Linux的软件安装方式源代码安装rpm包安装yum安装 yum三板斧yum listyum installyum remove yum生态yum源 Linux的软件安装方式 源代码安装 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序 源代码安…

python+Flask+django企业仓库进销存管理信息系统35wiz

Flask提供了更大的灵活性和简单性,适合小型项目和微服务。Django则提供了更多的内置功能,适合大型项目。Flask让开发者更多的控制其组件,而Django则遵循开箱即用的原则 本课题使用Python语言进行开发。代码层面的操作主要在PyCharm中进行&am…

五大背景图光线手法,附大量案例,可下载原图。

2023-10-01 23:05贝格前端工场 在背景图设计中,使用光线效果可以帮助营造科技感。以下是一些使用光线来表现科技感的设计技巧: 线性光源:使用线性光源可以在背景图中创建出明亮的光线效果。可以在设计中添加一条或多条线性光源,然…

Docker Nginx 部署Vue项目

先弄个ngix镜像,还原到linux里面 发布包放的位置 nginx配置文件 server {listen 8049;server_name localhost;#charset koi8-r;access_log /var/log/nginx/host.access.log main;error_log /var/log/nginx/error.log error;location / {# root 根目录&a…

全速前进:2024年MAD(机器学习,人工智能和数据)前景(20000字长文)

THE 2024 MAD (MACHINE LEARNING, ARTIFICIAL INTELLIGENCE & DATA) LANDSCAPE 是FirstMark对数据、分析、机器学习和人工智能生态系统的第十次年度展望和「现状」描述 。 在这个领域的10多年里,事情从来没有像今天这样令人兴奋和充满希望。我们多年来描述的所…

[STM32+HAL]DengFOC移植之闭环位置控制

一、源码来源 DengFOC官方文档 二、HAL库配置 1、开启硬件IIC低速模式 低速更稳定 2、PWM波开启 三、keil填写代码 1、AS5600读取编码器数值 #include "AS5600.h" #include "math.h"float angle_prev0; int full_rotations0; // full rotation trac…

Day37|贪心算法part06:738.单调递增的数字、968. 监控二叉树、贪心总结

738. 单调递增的数字 总体思想就是从后往前遍历,比较第i位和第i1位的大小,不符合顺序char[i]减1,i1位填9,找到需要填9的最先位置,然后填9。 class Solution {public int monotoneIncreasingDigits(int n) {String s …

负荷预测 | Matlab基于TCN-BiGRU-Attention单输入单输出时间序列多步预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于TCN-BiGRU-Attention单输入单输出时间序列多步预测; 2.单变量时间序列数据集,采用前12个时刻预测未来96个时刻的数据; 3.excel数据方便替换,运行环境matlab…

领域驱动设计(DDD)学习心得

领域驱动设计(DDD) 领域驱动设计是一种用于复杂软件系统的软件开发方法论。它强调与软件所服务的业务领域的专家紧密合作,通过深入理解业务领域的复杂性,来构建能够反映业务逻辑的领域模型。DDD的核心思想包括以下几点&#xff1…

你会写SAP技术规格说明书(Specification)吗

有些小伙伴可能还在发愁技术规则说明书应该写什么,做了张思维导图,包含了所有RICEFW。 R - Report - 报表 I - Interface - 接口 C - Conversion - 数据转换 E - Enhancement - 增强 F - Form - 表单 W - Workflow - 工作流

深度学习基础之一:机器学习

文章目录 深度学习基本概念(Basic concepts of deep learning)机器学习典型任务机器学习分类 模型训练的基本概念基本名词机器学习任务流程模型训练详细流程正、反向传播学习率Batch size激活函数激活函数 sigmoid激活函数 softmax & tanh(双曲正切)激活函数 ReLU激活函数 …