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

请添加图片描述


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


系列文章目录



一、设计目的

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

首先,实验的一个重要目标是让学生实践数据库管理与应用。通过使用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()
  • 释放资源:在程序结束时关闭数据库连接,确保所有的资源被妥善释放。

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

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

  • 29
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PHP+xls通用考试成绩查分系统源码 工资/物业费/水电费网上查询系统,免数据库放上即用! 源码说明: 1. 灵活通用 别看源码体积极小,它无需设计数据库,可以快速用于各种二维表查询。 成绩查询、水电费物业费查询、录取、分班、分宿舍、考场分配查询等通用。 2. 小巧易拓展 整个源码(含演示数据)只有30-50KB,不仅运行起来自然流畅。 易于程序员快速掌握;大大提升开发速度并降低二次开发成本。 3. 更为安全 源码只有俩页面,几乎只读不写,更没有sql注入等风险。 当前大多软件都是几十MB,文件越大越复杂,安全越难以掌握。 4. 简单易用 无需安装(初始化),也无需修改参数,放根目录或任意目录直接使用。 FTP基本可以实现后台功能,上传到空间即可使用。 FTP批量上传大数据可能更低消耗服务器资源,也不受限于虚拟空间上传大小和超时时间等。 FTP上传可多文件一拖全上,并支持断点续传等,对服务器影响小。 在线删除不了的文件,FTP往往可以删除。 5. 低耗内存 无需Mysql等(大部分为非常规数据库),低内存服务器也流畅运行(Mysql可能多耗20%+服务器内存) 6. 低耗网络 现在大多页面单js文件就几百KB,加上图片就更大了。 一个网页往往超过1MB。本查询页一个页面只有30KB左右。 相当于在同等带宽资源下,网络并发量可以提升几十倍。 目前阿里云、腾讯云等8MB(实际1MB)的带宽超1000多元每年。 所以:节省很多网络费用的同时,大幅度提升查询的并发量。 7. 低耗读写 本查询几乎只读不写;小巧的网页也将在JS和图片的读取方面节约大量资源。 适合修改不频繁、保密性不高的成绩、工资、物业水电费等各种精准查询。 安装说明: 放上即用,免安装,数据请在xls文件中存入
这是一个简单的 Python + MySQL 实现学生成绩管理系统的代码示例: ```python import mysql.connector # 连接 MySQL 数据库 mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) # 定义学生类 class Student: def __init__(self, id, name, age): self.id = id self.name = name self.age = age # 添加学生信息到数据库 def add_student(student): mycursor = mydb.cursor() sql = "INSERT INTO students (id, name, age) VALUES (%s, %s, %s)" val = (student.id, student.name, student.age) mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, "record inserted.") # 查询学生信息 def get_student(id): mycursor = mydb.cursor() sql = "SELECT * FROM students WHERE id = %s" val = (id,) mycursor.execute(sql, val) result = mycursor.fetchone() if result: return Student(result[0], result[1], result[2]) else: return None # 更新学生信息 def update_student(id, name, age): mycursor = mydb.cursor() sql = "UPDATE students SET name = %s, age = %s WHERE id = %s" val = (name, age, id) mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, "record(s) affected.") # 删除学生信息 def delete_student(id): mycursor = mydb.cursor() sql = "DELETE FROM students WHERE id = %s" val = (id,) mycursor.execute(sql, val) mydb.commit() print(mycursor.rowcount, "record(s) deleted.") # 测试代码 student1 = Student(1, "Alice", 18) student2 = Student(2, "Bob", 19) add_student(student1) add_student(student2) print(get_student(1).name) update_student(1, "Alex", 20) print(get_student(1).name) delete_student(2) ``` 在上面的示例中,我们定义了一个 `Student` 类来表示学生信息,然后实现了添加、查询、更新和删除学生信息的函数。这些函数都是通过 MySQL 数据库来实现的。在测试代码中,我们添加了两个学生信息,然后查询和更新一个学生信息,最后删除一个学生信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米码收割机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值