👉博__主👈:米码收割机
👉技__能👈: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表格。下面是这两个表格的字段表格以及建立数据库的过程的详细分析。
- user 表格字段表格:
字段名 | 数据类型 | 说明 |
---|---|---|
id | INT (自增主键) 用户的唯一标识 | |
username | VARCHAR(255) NOT NULL | 用户的用户名 |
password | VARCHAR(255) NOT NULL | 用户的密码 |
user_type | ENUM(‘teacher’, ‘student’) NOT NULL | 用户类型,可选值为老师或学生 |
- fitness_data 表格字段表格:
字段名 | 数据类型 | 说明 |
---|---|---|
id | INT (自增主键) | 体能数据记录的唯一标识 |
student_name | VARCHAR(255) NOT NULL | 学生的姓名 |
push_ups | INT | 俯卧撑成绩 |
sit_ups | INT | 仰卧起坐成绩 |
pull_ups | INT | 引体向上成绩 |
run_3000m | TIME | 3000米跑成绩(时间格式: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()
- 释放资源:在程序结束时关闭数据库连接,确保所有的资源被妥善释放。
整个代码结构清晰,逻辑分明,每个功能模块都具有明确的职责,从数据库连接到数据操作再到用户交互,形成了一个完整的体能数据管理系统。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 体能考核系统 ” 获取。👈👈👈