基于微信小程序运动健身系统

发布时间:2024-11-29 00:44

健身房课程:系统提升生活质量的综合性运动 #生活乐趣# #生活质量# #生活质量改善# #运动健身项目#

摘  要

使用运动健身系统管理用户下健身信息,不仅实现了智能化管理,还提高了管理效率,用户运动健身系统来也能方便查询历史健身信息。设计运动健身系统是本文的目标,运动健身系统是一个不断创新的系统,创新是将系统框架进行结合,经过很长一段时间了解了前后端开源框架之后,最终选择了开源框架Springboot,以开源框架为基础实现了运动健身系统。为了实现编程语言选择采用Java来实现系统代码和采用数据库MySQL来存储系统中的信息,小程序端采用Uni-app框架进行开发,系统角色维护用户和管理员,用户可在小程序端查看健身视频、饮食推荐,购买健身用品等,管理员在后端进行管理,主要功能包括个人中心、用户管理、健身视频管理、饮食推荐管理、商品信息管理、商品类型管理管理、健身日常管理、运动记录管理、每日提醒管理、喝水记录管理、订单信息管理等。系统完成后还需进行测试,经测试,系统所用功能正常运行,操作简单,达到设计要求。

关键词;健身;Springboot;Java;MySQL

 

Abstract

The goal of this article is to design a sports fitness system that manages user fitness information. This system not only achieves intelligent management but also improves efficiency. Users can easily access their historical fitness information through the sports fitness system. Designing a sports fitness system is an ongoing process of innovation. The innovation lies in combining different frameworks within the system architecture. After a long period of understanding and exploring various open-source frameworks for both front-end and back-end development, Spring Boot was ultimately chosen as the foundation for implementing the sports fitness system. Java was selected as the programming language to write the system code, and MySQL was chosen as the database for storing information. The mobile application was developed using the Uni-app framework. The system consists of two roles: users and administrators. Users can view fitness videos, receive dietary recommendations, and purchase fitness equipment through the mobile application. Administrators manage the system through the backend, which includes features such as user management, fitness video management, dietary recommendation management, product information management, product category management, daily fitness management, exercise record management, daily reminder management, water intake record management, and order information management. After the system is completed, it needs to undergo testing. Upon testing, all system functionalities are working properly, with simple operations, and meeting the design requirements.

Key words:Fitness;Springboot;Java;MySQL

 

目  录

1 绪论........................................................................................................................... 1

1.1 研究背景................................................................................................................ 1

1.2 研究意义................................................................................................................ 1

1.3国内外研究现状..................................................................................................... 1

1.4 研究内容................................................................................................................ 2

1.5 论文组织结构........................................................................................................ 2

2 项目概述................................................................................................................... 4

2.1 相关技术介绍........................................................................................................ 4

2.1.1 MySQL数据库.................................................................................................... 4

2.1.2 项目管理工具Maven......................................................................................... 4

2.1.3 Uni-app介绍........................................................................................................ 5

2.1.4 Springboot框架.................................................................................................... 5

2.1.5 Vue框架............................................................................................................... 5

2.1.6 Java简介.............................................................................................................. 6

2.2 可行性分析............................................................................................................ 6

2.2.1 技术可行性分析................................................................................................. 6

2.2.2 经济可行性分析................................................................................................. 7

2.2.3 操作可行性分析................................................................................................. 7

3 需求分析................................................................................................................... 8

3.1 功能需求分析........................................................................................................ 8

3.2 系统用例建模........................................................................................................ 8

3.2.1系统用例.............................................................................................................. 8

3.3.2系统用例规约..................................................................................................... 11

3.3 非功能需求分析.................................................................................................. 12

4 详细设计................................................................................................................. 13

4.1 系统架构设计...................................................................................................... 13

4.2 系统部署.............................................................................................................. 13

4.3功能模块设计....................................................................................................... 14

4.3.1 系统功能模块图............................................................................................... 14

4.3.2 系统活动图....................................................................................................... 15

4.3.3 系统时序图....................................................................................................... 16

4.3.4 系统类图........................................................................................................... 19

4.3.5 系统构件图....................................................................................................... 19

4.4数据库设计........................................................................................................... 20

4.4.1数据库关系模式设计........................................................................................ 20

4.4.2数据库表设计.................................................................................................... 21

4.5 协同过滤算法设计.............................................................................................. 24

4.5.1 协同过滤推荐算法的原理及流程................................................................... 24

4.5.2 相似度计算....................................................................................................... 25

4.5.3 兴趣模型--评分矩阵......................................................................................... 25

5 编码与实现............................................................................................................. 27

5.1 用户管理.............................................................................................................. 27

5.2 健身视频管理...................................................................................................... 28

5.3 饮食推荐管理...................................................................................................... 30

5.4 订单信息管理...................................................................................................... 31

5.5 健身视频展示...................................................................................................... 32

5.6 健身视频详细信息.............................................................................................. 34

5.7 商品信息展示...................................................................................................... 36

5.8 商品信息详细信息.............................................................................................. 37

6 系统测试................................................................................................................. 38

6.1 测试方法.............................................................................................................. 38

6.2 测试用例.............................................................................................................. 38

6.2.1 登录用例........................................................................................................... 38

6.2.2 用户管理用例................................................................................................... 39

6.2.3 商品信息管理用例........................................................................................... 40

6.3 测试总结.............................................................................................................. 41

6.3.1软件能力............................................................................................................ 41

6.3.2软件缺陷............................................................................................................ 42

6.3.3测试结论............................................................................................................ 42

7 总结与展望............................................................................................................. 43

7.1 总结...................................................................................................................... 43

7.2 技术经济与成本分析.......................................................................................... 43

参考文献..................................................................................................................... 45

致  谢......................................................................................................................... 46

1 绪论

1.1 研究背景

二十一世纪是一个大数据时代,因为数据量很多,所以人们开发出了运动健身系统来处理大量信息管理方面的数据[1]。计算机最大的好处就是可以自动化的处理,因此人们采用计算机来处理数据健身相关信息以提高健身信息处理能力。

运动健身系统的优势就是可以处理一些很复杂的数据。运动健身系统不仅拥有很多数据,还要每天处理很多数据。以前,运动健身系统的管理员处理信息都是使用人工处理的方式,现在运动健身系统的数据量太多了如果还是使用手工方式来管理的话,系统很容易就会出现问题,而且系统数据量越多,管理员找数据就越难,就会降低管理员的管理效率[2]。

1.2 研究意义

运动健身不仅可以让人保持身体健康,还可以提高身体素质和心理素质,增强人们的自信心和幸福感。运动健身系统旨在用户进行运动管理,制定个性化的运动计划,从而帮助用户更加高效地进行运动,提高运动效率。可以记录用户健身数据以及提醒事项,帮助用户了解身体状况和健身需求,并根据数据进行相应的健身调整。运动健身系统可以提供运动知识和健身建议,让用户更好地了解运动知识,从而更好地实现运动效果,还可以促进用户交流,分享运动经验和健身心得,从而促进健身文化的传承和发展。

1.3国内外研究现状

在国外,许多健身房和健身俱乐部已经开始使用高科技的运动健身系统,例如Peloton的智能健身车和Fitbit的智能手环。这些系统可以帮助用户进行运动监测、计划制定、数据分析等,提高用户的健身效果和体验。同时,一些国外的运动健身APP也非常受欢迎,例如MyFitnessPal、Nike Training Club等,它们提供了丰富的健身教程和健身计划,方便用户在家中进行健身训练。此外,国外还涌现了一些创新型的运动健身系统,例如Mirror的智能健身镜、Tonal的智能健身机等,它们通过智能化技术和人工智能算法,为用户提供个性化的健身训练方案和实时的运动监测和指导。

在国内,随着健身行业的不断发展,运动健身系统也开始得到越来越广泛的应用。例如,许多大型的健身连锁品牌都开始使用智能化运动健身系统,帮助用户更好地进行健身训练。同时,国内的一些运动健身APP也越来越受到欢迎,例如Keep、FitTime、盒子健身等,这些APP提供了丰富的健身教程和健身计划,用户可以随时随地进行健身训练。此外,一些国内的硬件公司也开始涉足运动健身领域,例如小米的智能手环和小米体脂秤,以及华为的智能手环和智能手表等,这些硬件可以记录用户的运动数据,帮助用户更好地掌握自己的运动状况和效果。值得一提的是,国内还有一些创新型的运动健身系统,例如智能镜面健身设备Shape,它可以通过智能化技术和人工智能算法,为用户提供个性化的健身训练方案和实时的运动监测和指导。

1.4 研究内容

经过运动健身系统的编写,能够帮助本人对开源框架Springboot和数据库有很多深刻的了解,也可以在这一过程当中提升本人的编程能力。

(1)这次选定使用软件开发的普遍流程对于运动健身系统前期进行的调研和分析可以肯定软件选择使用的技术,设计出了不一样的功能模块,并在最后选择了能够相互呼应的技术来实现这一系统。

(2)框架是程序的开发者完成的功能合集,能够使开发者迅速的构建软件的体系。这次运动健身系统用的开源框架是Springboot,使其有着非常普遍和非常好的优势来开发部署。经过使用不相同的开发的框架能够使程序开发者减少许多的代码量,能够有效提升系统的稳定和安全性。

1.5 论文组织结构

运动健身的主要目的在于方便用户管理健身信息,本论文具体被划分为六个部分。

第一章为绪论。本文的研究背景、意义、研究现状以及本文的框架。

第二章介绍了该软件的开发平台和技术。本文主要阐述了运动健身系统的开发背景以及所采用的技术。

第三章为需求分析。对运动健身系统的功能和非功能要求进行了详细的阐述,并给出了系统的功能模块图。

第四章对整个体系进行了整体的设计。完成了各子系统的功能模块的划分与数据库的开发。

第五章为本论文的研究内容。该章主要介绍了各功能模块在运动健身系统中的作用。

第六章对本论文进行了详细的论述。这一章介绍了如何利用黑箱测试进行系统的试验。

2 项目概述

2.1 相关技术介绍

2.1.1 MySQL数据库

数据库是一个可以对数据进行管理和储存的仓储,它是根据数据的结构来进行的。该系统采用 MySQL数据库来进行数据的存储。MySQL是许多软件开发商所认可的最受欢迎的、应用最广的一个。业界普遍认为MySQL具有良好的表现和良好的可靠性[4]。

MySQL包含以下几个特点:

(1)支持多种OS, MySQL关系数据库可以为博阿凯视窗和Linux等主流操作系统提供支撑。

(2)MySQL关联性的数据库具有多个执行绪,可以最大限度地发挥CPU的效能。

(3)MySQL对SQL进行了最优的SQL查询,因此加快了检索的效率。

(4)MySQL拥有处理成千上万条数据的强大性能。

(5)MySQL具备很好的移植性和各种编译程序,保证了其可移植的能力。

2.1.2 项目管理工具Maven

Maven是一种专案管理的工具,运动健身系统的开发不只是写代码,在开发实现的过程当中往往伴随着其它的事情,比如:

(1)运动健身系统中需要引入jar软件包,因为工作量太大,所以经常要导入几百个jar程序包,如果每次都是手工导入jar程序包,就会导致jar程序与版本发生冲突[5]。

(2)当编写Java程序时,你必须把它转换成二进制的字节码,这样计算机就可以读到你的数据,而整合的开发工具就可以完成这个过程。

(3)在完成了系统开发后,还要进行单元测试,以改善代码的品质。

Maven可以做上述工作,它可以在pom. xml文件中导入jar程序,在编写代码的时候,可以对系统进行自动的测试。

2.1.3 Uni-app介绍

运动健身系统小程序可以使用 UniApp 来进行开发,由于UniApp提供了完整的开发生态和工具链,开发人员可以基于 Vue.js 的开发模式,使用UniApp提供的API和组件进行开发,最终生成符合小程序规范的代码。这样,就可以让开发人员专注于业务逻辑的实现,而不用为了适配不同平台而进行繁琐的调试和修改。

使用UniApp进行小程序开发还有一个优势,就是可以快速部署到多个平台,例如iOS、Android 等,同时具有较好的兼容性和性能表现。另外,UniApp 还支持在小程序中集成多种第三方插件和服务,例如腾讯地图、微信支付等,以提供更加丰富和实用的功能。

2.1.4 Springboot框架

Spring Boot 是一个开源的、基于 Java 的框架,它主要用于快速构建可独立运行的、生产级别的 Spring 应用程序。它采用了约定优于配置的理念,通过提供一系列的自动化配置、快速开发、易于部署和管理的特性,简化了 Spring 应用程序的开发流程。与传统的 Spring 框架相比,Spring Boot 可以极大地提高应用程序的开发效率和运行效率,同时减少了开发人员的工作量和项目的开发成本。Spring Boot 的设计目标是使 Spring 应用程序的开发变得更加简单和快速,它包含了许多常用的功能模块和技术栈,例如 Spring MVC、Spring Data、Spring Security 等。它的核心优势在于自动化配置和嵌入式服务器,这使得开发人员不必关心应用程序的基础设施和配置,只需关注业务逻辑的开发和实现即可。

Spring Boot 也提供了强大的插件支持和可扩展性,允许开发人员在应用程序中集成各种插件和第三方库,例如 Thymeleaf、Hibernate、Swagger 等,以实现更为丰富和复杂的功能需求[6]。

2.1.5 Vue框架

Js是一个更好的渐进框架,它只需要集中在前面的网页,而不是在后面的逻辑代码。Vue的开发和设计是以“向上递增”的方式进行的,而视图的构件则是通过 Api的方式来实现的。Vue的网页是动态的,静态的和动态的有很大的不同。如果程序员将 Vue与后台框架相结合,就可以在前、后端之间进行数据交互,这样就可以让用户在进行数据交互时更加方便。有了Vue. js的前端架构,前端开发者只要把重点放在开发前端的网页上,后面的开发者就可以为前端开发者提供相应的服务界面[7]。js架构不但可以写出动态网页,而且可以写出动态的网页,从而可以满足前端开发人员的各种需求,方便以后的修改。Vue. js狂阿基的实质是把 Vue. js与业务层的代码分开,业务层必须提供一个接口,通过Vue. js的前端架构,前端开发人员无需再编写重复的代码,就可以与业务层的代码进行同步更新。js框架具有很好的兼容能力,可以支持多种操作系统和跨平台。js可以通过多种不同的操作系统来连接到不同的数据库。

2.1.6 Java简介

Java是一种广泛使用的计算机编程语言,由Sun Microsystems(现在是Oracle Corporation)的James Gosling和他的团队开发。Java的设计目标是写一次,到处运行(Write Once, Run Anywhere,缩写为WORA),即一次编写的Java程序可以在不同的平台上运行,而无需重新编译。Java是一门面向对象的编程语言,它支持面向对象编程的特性,如封装、继承和多态。它也支持跨平台的特性,通过Java虚拟机(Java Virtual Machine,简称JVM),Java程序可以在不同的操作系统上运行。Java的语法相对简洁和易于理解,采用了C和C++的语法风格,使得程序员可以相对容易地学习和使用它。它具有强大的标准库,提供了丰富的类和方法,可以用于开发各种类型的应用程序,包括桌面应用程序、移动应用程序、Web应用程序和企业级应用程序。Java生态系统非常庞大,拥有许多流行的开发框架和工具,如Spring、Hibernate、Apache Struts等,这些框架和工具可以帮助开发人员更高效地构建和管理Java应用程序。Java在众多领域得到了广泛的应用,特别是在企业级开发领域。它被广泛用于构建大型的企业应用系统、数据库连接、网络编程、移动应用开发以及嵌入式系统等。

2.2 可行性分析

2.2.1 技术可行性分析

Java是有很多优点的,其中就包含了跨平台和稳定,所以在设计本系统时所选用的编程语言试Java。前端的框架使用的是Vue,为软件开发者的选择提供了很多的组件模块,并且为了配合普遍的前端开发技术能够完成开发。在许多数据存储工具当中选择了MySQL,MySQL是关系数据库中的常用的一种数据存储工具,并且还是一个开源免费和功能非常强大的一个数据库,在正常运行的过程当中不会去过多的占用计算机资源,这对于系统的高效性做出了保证。此系统是一个采用前后端结合的项目,采用的设计模式是分层设计。

2.2.2 经济可行性分析

系统的开发成本并不高,所用的软件都是免费的,只需要一台电脑即可完成整个系统开发,所以,经济上是可行的。

2.2.3 操作可行性分析

程序开发者开发运动健身系统的目的是为了让所有用户群体访问和操作,所以在设计实现系统的时候要思考到用户的所有要求,现在的用户普遍都可以接受系统的信息化管理,因此用户的学习成本相对来说较少。以用户来说,简单快捷的操作界面能够使用户能高效提升的体验,在系统界面的设计上秉持着快捷方便的设计原则和理念来进行设计。

3 需求分析

3.1 功能需求分析

运动健身系统的主要功能包括用户管理、健身视频管理、饮食推荐管理、商品信息管理、商品类型管理、健身日常管理、运动记录管理、喝水记录管理和订单信息管理等。下面是每个功能模块的详细介绍:

用户管理:用户可以进行注册、登录、修改个人信息等操作。系统管理员可以对用户信息进行管理和修改。

健身视频管理:系统管理员可以上传和管理健身视频,用户可以观看和学习这些视频。

饮食推荐管理:系统管理员可以推荐适合的饮食方案。

商品信息管理:系统管理员可以上传和管理健身相关的商品信息,用户可以查看和购买这些商品。

商品类型管理:系统管理员可以管理和修改商品的类型,方便用户查找和选择商品。

健身日常管理:用户可以记录每天健身数据等,系统管理员可以进行管理。

运动记录管理:用户可以记录自己的运动等。

喝水记录管理:用户可以记录自己每天的喝水量。

订单信息管理:用户可以查看自己的订单信息,系统管理员可以进行订单管理和处理。

3.2 系统用例建模

3.2.1系统用例

用户通过系统可以查看健身视频、购买商品、管理运动记录等,用户用例图如图3-1所示。

转存失败重新上传取消

图3.1 用户用例图

管理员通过系统可以进行用户管理、健身日常管理、运动记录管理等,管理员用例图如图3.2所示。

图3.2 管理员用例图

主要功能描述如下:

个人中心:用户可以查看和管理个人信息,例如头像、昵称、性别、年龄等。

用户管理:管理员可以管理用户信息,包括注册新用户、编辑用户信息、删除用户等操作。

健身视频管理:管理员可以上传、编辑和删除健身视频,用户可以浏览和观看这些视频,学习和跟随其中的健身动作。

饮食推荐管理:管理员可以管理饮食推荐信息,包括添加、编辑和删除推荐的饮食方案,帮助用户制定健康的饮食计划。

商品信息管理:管理员可以管理系统中的商品信息,包括添加、编辑和删除商品的名称、价格、描述等详细信息。

商品类型管理:管理员可以管理商品的分类信息,包括添加、编辑和删除商品类型,以便用户能够方便地浏览和筛选商品。

健身日常管理:用户可以记录每天的健身活动和进展,以便跟踪和评估自己的健身计划。

运动记录管理:用户可以记录每次的运动活动,用于分析自己的运动数据。

每日提醒管理:用户可以设置每日提醒,以帮助用户保持良好的健身习惯。

喝水记录管理:用户可以记录每天的喝水量,以帮助监控自己的水分摄入情况,并提醒自己保持充足的水分摄入。

订单信息管理:管理员和管理所有订单,用户可以浏览和管理自己的订单信息。

3.3.2系统用例规约

表3.1  管理员系统用例规约

用例编号

001

用例名

管理员管理系统

用例描述

主要通过管理员登录管理用户、商品、订单

执行者

管理员

前置条件

系统中需要已存在该条用户信息

后置条件

正确登录后会根据不同的权限划分进入到相应的系统界面

基本路径

1.打开登录界面

2.在登录界面输入账号、密码、

3.输入信息正确,登陆系统

备选路径

业务规则

适用于系统管理员

表3.2  用户系统用例规约

用例编号

002

用例名

用户使用系统

用例描述

主要是用户进入系统界面后,对商品购买、运动记录、健身日常等操作

执行者

用户

前置条件

系统内有注册用户信息

后置条件

用户登录后进入系统

基本路径

1.打开用户登录界面

2.在用户登录界面输入账号、密码、

3.输入信息正确,登陆用户系统

备选路径

业务规则

适用于系统用户

3.3 非功能需求分析

在运动健身系统内容中应该包含一些非功能性的要求,这些要求既可以改善运动健身系统的服务品质,也可以对其进行扩充。

(1)系统的安全性

该体系是一个运动健身系统体系,既要保证系统的安全性,不易被人侵入,又要保证用户信息安全,不易丢失。

(2)体系的稳定性

系统的可靠度是指在较少的时间内,能够高效地执行需要的工作。运动健身系统能够承载大量的用户登录。

(3)可扩充的体系

在以后的运动健身系统中加入了一些功能的模块,可以通过更小的改动来增加更多的功能。

(4)可供选择的系统网页

在网页的设计上应注重于网页的可用性,网页的版式不用过于繁复,要让用户不用花费过多的精力来投入到使用当中。

4 详细设计

4.1 系统架构设计

对系统进行分析后,下一步要做的是确定能够满足基本要求的系统,然后根据它设计出对应的系统[8]。系统设计内容里面要明确运动健身系统的设计方法,并且将系统功能进行架构设计。运动健身系统不仅需要给用户提供所需的基本功能之外,还要操作简单便捷,这样才能给用户带来好的体验。用户界面和布局要简单便捷,要适应用户的使用习惯,这样才能保证用户使用软件的流畅度。

图4-1系统总体结构图

4.2 系统部署

系统部署图是软件系统设计中的一种图形表示方法,用于描述系统的物理部署结构和组成部分之间的关系。它展示了系统中各个组件、硬件设备和网络之间的连接和交互方式,本系统部署图如图4-2所示。

图4-2 系统部署图

4.3功能模块设计

4.3.1 系统功能模块图

运动健身系统分为前端和后端,用户通过访问前端查看和管理个人运动健身信息,管理员登录后台对系统所有功能模块进行管理,系统功能模块图如图4-2所示。

图4-3 系统功能结构图

4.3.2 系统活动图

用户在登录后,用户可以选择商品列表的页面,在上方有查询按钮,而在查询的时候,如果商品信息已被系统录入,那么在搜索引擎中键入商品的名字就可以查询到该商品,如果在商品名中输入了不合法的字符,那么就无法检索到与之有关的商品信息。查询商品活动图如图4-3所示。

图4-4查询商品信息活动图

在登录后,管理员可以选择健身视频管理的页面,然后按一下按钮,就可以切换到修改页面,而在修改的时候,需要将自己所需要的资料录入到相应的选项栏里。如果在健身视频中输入了不合法的字符,那么就无法成功修改。修改健身视频活动图如图4-4所示。

图4-5修改健身视频活动图

4.3.3 系统时序图

(1)购买商品

用户在登录系统之后可以进行购买商品。

购买商品时序图描述如下:

用户浏览商品列表特定商品。

用户选择感兴趣的商品,并点击购买按钮。

用户确认购买商品的数量和其他相关选项。

系统生成订单,并为订单分配一个唯一的订单号。

系统根据用户选择的支付方式,生成相应的支付请求。

用户选择支付方式,并进行支付。

系统接收支付结果,如果支付成功,则更新订单状态为已支付。

系统生成订单确认页面,显示订单详细信息和支付状态。

用户收到订单确认信息,完成购买流程。

图4-6购买商品时序图

(2)健身视频管理

管理员在后台登录系统之后可以对健身视频进行管理。

管理员登录系统,并导航到健身视频管理页面。

系统显示已有的健身视频列表。

管理员点击添加新视频的按钮。

系统显示添加新视频的表单,包括视频标题、描述、上传视频文件等字段。

管理员填写视频信息,并选择要上传的视频文件。

管理员点击提交按钮。

系统接收管理员的提交请求,并验证视频信息的有效性和完整性。

系统将视频文件上传到服务器或云存储,并生成一个唯一的视频文件标识。

系统创建新的健身视频记录,并将填写的视频信息和视频文件标识保存到数据库中。

系统更新健身视频列表,显示新添加的视频。

图4-7 新增健身视频时序图

(3)用户管理

管理员登录系统之后,进入用户管理模块,可以对用户信息进行操作。

图4-8 修改用户信息时序图

4.3.4 系统类图

类图设计是面向对象软件开发中的一种设计方法,用于描述系统中的类、类之间的关系以及它们的属性和方法。类图是一种静态结构图,它提供了对系统的整体结构和组成部分的可视化表示。本系统包含用户类、商品类、订单类等,系统类图如图4-8所示。

图4-9 系统类图

4.3.5 系统构件图

系统构件图是软件系统设计中的一种图形表示方法,用于描述系统的组成部分和它们之间的关系。它展示了系统中的各个构件(Component)以及它们之间的依赖关系、接口和交互方式。管理员登录系统后,可进行用户管理、健身是hip管理、订单信息管理、健身视频管理等,系统构件图如图4-10所示。

图4-10 系统构建图

4.4数据库设计

4.4.1数据库关系模式设计

数据库是运动健身系统必不可少的组成部分,一个良好的数据库结构合理,并且具有很好的冗余[9]。为减少运动健身系统的冗余,采用了第三范式的数据库结构。该数据库可以为运动健身系统的数据提供支持,从而保证了系统的稳定性和鲁棒性。一个好的数据库可以大大的提升系统的运行速度,一个好的数据库不仅可以加快系统的运行速度,还可以减少大量的数据错误。由于运动健身系统在日常工作中会产生大量的数据,所以要有一个稳定的、安全的数据库来进行数据的存储,以确保系统的正常工作。利用特定的存储结构,关联数据库可以高效地对系统数据进行组织。MySQL数据库在各个表间建立了良好的连接关系,从而将数据结构和表达分离开来。系统E-R如图4-8所示。

图4-11 系统E-R图

4.4.2数据库表设计

(1)订单信息表

表4.1 订单信息表

列名

数据类型

长度

主外键

id

bigint

11

主键

addtime

timestamp

11

创建时间

dingdanbianhao

varchar

200

订单编号

shangpinmingcheng

varchar

200

商品名称

shangpinfenlei

varchar

200

商品分类

shangpintupian

longtext

200

商品图片

shangpinjiage

float

11

商品价格

shangpinshuliang

int

11

购买数量

zongfeiyong

float

11

总费用

goumaishijian

datetime

11

购买时间

goumaibeizhu

varchar

200

购买备注

yonghuming

varchar

200

用户名

nicheng

varchar

200

昵称

shoujihao

varchar

200

手机号

shouhuodizhi

varchar

200

收货地址

ispay

varchar

200

是否支付

(2)用户信息表

表4.2 用户信息表

列名

数据类型

长度

主外键

id

bigint

11

主键

addtime

timestamp

11

创建时间

yonghuming

varchar

200

用户名

mima

varchar

200

密码

nicheng

varchar

200

昵称

xingbie

varchar

200

性别

nianling

varchar

200

年龄

shengao

varchar

200

身高

tizhong

varchar

200

体重

shoujihao

varchar

200

手机号

touxiang

longtext

200

头像

商品分类信息表

表4.3 商品分类信息表

列名

数据类型

长度

主外键

id

bigint

11

主键

addtime

timestamp

11

创建时间

shangpinfenlei

varchar

200

商品分类

(4)健身视频表

表4.4 健身视频表

列名

数据类型

长度

主外键

id

bigint

11

主键

addtime

timestamp

11

创建时间

jianshenmingcheng

varchar

200

健身名称

jianshenleixing

varchar

200

健身类型

jianshenleibie

varchar

200

健身类别

fengmian

longtext

200

封面

yundongshizhang

varchar

200

运动时长

jianshenshipin

longtext

200

健身视频

tizhongfanwei

varchar

200

体重范围

shiyingtiaojian

varchar

200

适应条件

zhuyishixiang

longtext

200

注意事项

jihuaxiangqing

longtext

200

计划详情

(5)管理员表

表4.5 管理员表

列名

数据类型

长度

主外键

id

bigint

11

主键

yonghuming

varchar

200

用户名

mima

varchar

200

密码

(4)健身视频表

表4.4 健身视频表

列名

数据类型

长度

主外键

id

bigint

11

主键

addtime

timestamp

11

创建时间

jianshenmingcheng

varchar

200

健身名称

jianshenleixing

varchar

200

健身类型

jianshenleibie

varchar

200

健身类别

fengmian

longtext

200

封面

yundongshizhang

varchar

200

运动时长

jianshenshipin

longtext

200

健身视频

tizhongfanwei

varchar

200

体重范围

shiyingtiaojian

varchar

200

适应条件

zhuyishixiang

longtext

200

注意事项

jihuaxiangqing

longtext

200

计划详情

表间逻辑关系如图4-9所示。

图4-12 表间逻辑关系图

4.5 协同过滤算法设计

4.5.1 协同过滤推荐算法的原理及流程

数据预处理:从数据库中获取用户行为记录,并进行清洗和整理,提取出用户的数据。

相似度计算:基于用户的协同过滤算法的实现分为以下步骤:

(1)根据用户行为记录创建用户-评分矩阵;

(2)计算相似性:使用余弦相似性来计算用户之间的相似性。具体地,对于用户i和用户j,计算其行为记录中共同评分的集合,然后将其作为两个向量的输入,通过余弦相似性公式计算它们之间的相似性;

(3)找到相似用户:对于特定的用户x,找到与其最相似的y个用户。

推荐预测:对于用户x,找到与其相似的y个用户,并预测用户x对m的评分。具体地,通过对y个相似用户的行为记录进行加权平均,计算用户x对m的预测评分。这个评分值可以作为推荐系统推荐m的依据,评分越高的m将被推荐给用户x。

推荐结果展示:将预测评分最高的前n个物品作为推荐结果展示给用户,可以在网站上以列表的形式呈现。

图4-13协同推荐流程图

4.5.2 相似度计算

用户的兴趣被评分之后,可以进一步转化,成一个n维项目空间上的向量。假设用户a和用户b在n维的项目空间上的评分分别表示为向量 ,向量。那么用户a和用户b之间的相似度为:

通过算法可以计算用户的相似度。但是由于用户本身对评分的标准不同,在查找相似用户的时候会差生误差,使结果的准确度减低,不能产生高效正确的推荐结果。

4.5.3 兴趣模型--评分矩阵

协同过滤推荐算法中采用一个m*n的用户评分矩阵,表示用户兴趣模型。如表3.1所示,其中m为用户,n为项目,Rab表示第a个用户对第b个项目的评分。

本系统使用 Java 作为开发语言,并基于 Springboot框架进行开发。使用 IntelliJ IDEA 作为集成开发环境来编写、调试和测试代码。使用 JDK1.8 版本来支持开发需求。应用程序将部署在 Tomcat 7 服务器上,MySQL 5.7 将作为数据库管理系统,并使用 Navicat 11 作为数据库工具来进行数据库管理和操作。

对于小程序开发,本系统使用 UniApp 框架来开发小程序。使用HBuilder X 编辑小程序代码,并使用微信开发者工具进行运行和调试。项目构建工具方面,使用 Maven 3.3.9 来管理项目依赖项,并自动构建、测试和打包应用程序。

5.1 用户管理

管理员可以使用名称和密码口令登录到后台的管理系统信息,而系统的信息是由form的表格显示出来的,如果显示的时候有太多的数据,那么就需要通过后端的逻辑界面 page来显示。由于后端逻辑界面通过数据库 SQL语句从数据库记录中提取数据,而提取的数据通过 R对象将数据传送到数据库的前端。管理员可以在后台的系统中查找用户,然后在数据库中输入用户,根据不同的用户进行查询,确定是否符合,然后发送到系统的前端,如果没有找到,系统会给出相应的提示。

图5.1 用户管理界面

部分代码及描述如下:

       /**

     * 查询

     */

    @RequestMapping("/query")

    public R query(YonghuEntity yonghu){

        EntityWrapper< YonghuEntity> ew = new EntityWrapper< YonghuEntity>();

            ew.allEq(MPUtil.allEQMapPre( yonghu, "yonghu"));

             YonghuView yonghuView =  yonghuService.selectView(ew);

             return R.ok("查询用户成功").put("data", yonghuView);

该方法接收一个名为yonghu的YonghuEntity对象作为参数。这个对象用于传递查询条件。代码中创建了一个EntityWrapper对象ew,用于构建查询条件。EntityWrapper是 MyBatis-Plus 框架提供的一个用于构建查询条件的实用工具类。通过MPUtil.allEQMapPre(yonghu, "yonghu")方法生成一个查询条件的Map,然后使用ew.allEq()方法将查询条件应用到ew中。这里的MPUtil.allEQMapPre()方法可能是自定义的工具方法,用于将yonghu对象的属性值转换为查询条件。接下来,调用yonghuService.selectView(ew)方法进行查询。yonghuService是一个服务层的对象,通过调用selectView()方法并传入ew作为参数来执行查询操作。最后,将查询结果封装到YonghuView对象yonghuView中,并将结果通过R.ok()方法封装成一个成功的响应,并将查询结果放入"data"字段中返回。

5.2 健身视频管理

如果在健身视频管理接口中显示了信息,则可以采用网页的形式进行展示,如果网页上的数据比较多,则可以进入下一页,使用网页特定的工具类别来完成上一页和下一页的效果。当管理员在输入框中输入的订单编号和物品名称时,需要将其传递给后端逻辑代码的query函数,并且,在得到该健身视频的信息时,需要将该消息输入到前面的接口中。修改键的时间,一定要符合逻辑代码设置的更新功能。如果管理员点击删除键,那么就需要设置删除功能,使用SQL声明删除设置。

图5.2 健身视频管理界面

部分代码及描述如下:

    /**

     * 后端保存

     */

    @RequestMapping("/save")

    public R save(@RequestBody JianshenshipinEntity jianshenshipin, HttpServletRequest request){

         jianshenshipin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());

         //ValidatorUtils.validateEntity(jianshenshipin);

        jianshenshipinService.insert(jianshenshipin);

        return R.ok();

}

该方法接收一个JianshenshipinEntity对象jianshenshipin和HttpServletRequest对象request作为参数。jianshenshipin对象用于传递要保存的健身视频信息。代码中首先为jianshenshipin对象设置一个唯一的id值。这里使用当前时间戳和随机数的组合来生成一个唯一的id值。具体生成方式为new Date().getTime() + new Double(Math.floor(Math.random()*1000)).longValue()。接下来,调用jianshenshipinService.insert(jianshenshipin)方法将jianshenshipin对象插入到数据库中。jianshenshipinService是一个服务层的对象,通过调用insert()方法并传入jianshenshipin作为参数来执行插入操作。最后,通过R.ok()方法封装一个成功的响应并返回。

5.3 饮食推荐管理

在饮食推荐的管理界面中,可以利用网页的方式来呈现信息,如果有大量的数据可以进入下一页,利用网页的工具类别来完成上一页和下一页的效果。当管理者在输入栏中查找饮食推荐的信息时,必须向后端的逻辑编码的query功能进行传输,当可以查询到饮食推荐的相关数据时,就必须通过put功能将这些数据导入到前面的接口中。更改键的时间必须与后台的逻辑程式码所设定的更新功能一致。管理员单击“移除”键后,就必须在后台程序中设定“delete”功能,并使用SQL声明来删除饮食推荐的相关信息。

图5.3 饮食推荐管理界面

部分代码及描述如下:

    /**

     * 修改

     */

    @RequestMapping("/update")

    @Transactional

    public R update(@RequestBody YinshituijianEntity yinshituijian, HttpServletRequest request){

        //ValidatorUtils.validateEntity(yinshituijian);

        yinshituijianService.updateById(yinshituijian);//全部更新

        return R.ok();

    }

该方法接收一个YinshituijianEntity对象yinshituijian和HttpServletRequest对象request作为参数。yinshituijian对象用于传递要修改的饮食推荐信息。代码中使用@Transactional注解表示该方法需要进行事务管理。接下来,调用yinshituijianService.updateById(yinshituijian)方法进行修改操作。yinshituijianService是一个服务层的对象,通过调用updateById()方法并传入yinshituijian作为参数来执行按照ID进行更新的操作。该方法会将yinshituijian对象中的字段值更新到对应的数据库记录中。最后,通过R.ok()方法封装一个成功的响应并返回。

5.4 订单信息管理

订单信息管理功能实现描述:该模块允许管理员编辑和删除系统订单信息。管理员在管理订单信息的数据时,需要定义后端接口,从而可以对订单信息进行删、改、查。前面的订单信息显示需要使用列表函数,并且在前面和后面的数据是由请求对象来传递的。订单信息的信息被包装成页面的目的,而前面的接口使用规则运算来对页面进行解析。订单信息的信息要存储在订单信息的实体中,相关信息都要一一对应。

图5.4 订单信息管理界面

部分代码及描述如下:

    /**

     * 修改

     */

    @RequestMapping("/update")

    @Transactional

    public R update(@RequestBody YinshituijianEntity yinshituijian, HttpServletRequest request){

        //ValidatorUtils.validateEntity(yinshituijian);

        yinshituijianService.updateById(yinshituijian);//全部更新

        return R.ok();

    }

该方法使用@RequestMapping注解将请求映射到"/update"路径,并使用@Transactional注解表示需要进行事务管理。方法接收一个YinshituijianEntity对象yinshituijian和HttpServletRequest对象request作为参数。yinshituijian对象用于传递要修改的饮食推荐信息。代码中使用了注释将ValidatorUtils.validateEntity(yinshituijian)注释掉,说明该行代码被注释掉或者暂时不起作用。这行代码可能用于验证yinshituijian对象的有效性。接下来,调用yinshituijianService.updateById(yinshituijian)方法进行修改操作。yinshituijianService是一个服务层对象,通过调用updateById()方法并传入yinshituijian作为参数来执行按照ID进行更新的操作。该方法会将yinshituijian对象中的字段值更新到对应的数据库记录中。最后,使用R.ok()方法创建一个成功的响应,并返回给客户端。

5.5 健身视频展示

该健身视频的显示特性可以将所显示的健身视频的信息显示在前面的接口上,用户可以通过前面的接口来查看健身视频的相关信息,然后通过规则运算把前面的健身视频进行分析,然后显示在前面的接口上。在用户点击健身视频图片的时候,将健身视频的号码和号码发送到后台的逻辑代码,并使用 SQL语句来对健身视频和用户的数据进行实时的更新。

图5.5 健身视频展示界面

部分代码及描述如下:

        /**

     * 前端列表

     */

      @IgnoreAuth

    @RequestMapping("/list")

    public R list(@RequestParam Map<String, Object> params,JianshenshipinEntity jianshenshipin,

             HttpServletRequest request){

        EntityWrapper<JianshenshipinEntity> ew = new EntityWrapper<JianshenshipinEntity>();

             PageUtils page = jianshenshipinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jianshenshipin), params), params));

        return R.ok().put("data", page);

    }

该方法使用@RequestMapping注解将请求映射到"/update"路径,并使用@Transactional注解表示需要进行事务管理。方法接收一个YinshituijianEntity对象yinshituijian和HttpServletRequest对象request作为参数。yinshituijian对象用于传递要修改的饮食推荐信息。代码中使用了注释将ValidatorUtils.validateEntity(yinshituijian)注释掉,说明该行代码被注释掉或者暂时不起作用。这行代码可能用于验证yinshituijian对象的有效性。接下来,调用yinshituijianService.updateById(yinshituijian)方法进行修改操作。yinshituijianService是一个服务层对象,通过调用updateById()方法并传入yinshituijian作为参数来执行按照ID进行更新的操作。该方法会将yinshituijian对象中的字段值更新到对应的数据库记录中。最后,使用R.ok()方法创建一个成功的响应,并返回给客户端。

5.6 健身视频详细信息

在健身视频的显示界面上,使用者可以在健身视频显示页面上单击健身视频的相关信息,从而可以看到健身视频的详细信息。在健身视频显示的时候,用户可以点击收藏健身视频,通过StoreupController将用户添加的健身视频加入到数据库表中,设置新创建的对象的 ID 值为当前时间戳加上随机数字生成的字符串,这样保证了对象 ID 的唯一性。

图5.6 健身视频详细信息界面

部分代码及描述如下:

    /**

     * 前端详情

     */

      @IgnoreAuth

    @RequestMapping("/detail/{id}")

    public R detail(@PathVariable("id") Long id){

        JianshenshipinEntity jianshenshipin = jianshenshipinService.selectById(id);

        return R.ok().put("data", jianshenshipin);

    }

该方法接收一个路径变量id作为参数,用于指定要获取详情的健身视频的ID。代码中调用jianshenshipinService.selectById(id)方法根据给定的ID查询健身视频的详细信息。jianshenshipinService是一个服务层对象,通过调用selectById()方法并传入id作为参数来执行查询操作。最后,使用R.ok()方法创建一个成功的响应,并将查询到的健身视频详情对象放入"data"字段中返回给客户端。

5.7 商品信息展示

在前面的界面上,存在有一种商品信息的列表,如果用户想要查看详情信息的话,可以直接点击图片进入到详细的商品信息页面。在前面的接口中,要用CSS相关风格来修饰网页,在风格标签中定义CSS风格。脚本风格中有许多的处理功能,当用户单击商品信息时,可以根据用户的要求将其转换到商品信息细节页。

图5.7 商品信息展示界面

5.8 商品信息详细信息

在商品信息的详细信息中,用户需点击相应的商品信息,当用户点击图片时,会将商品信息的编号传送到后台的逻辑处理程序中,由http物件发出一个请求,以获取商品信息的详细资料,并将该商品信息的信息保存在res物件中。

图5.8 商品信息详细信息界面

6 系统测试

6.1 测试方法

通常情况下,软件开发者使用的测试方式是“黑箱”和“白箱”。黑箱考试就是将这个体系当成一个箱子,而不必去理解其中的具体代码。软件开发人员应依据其目的来进行测试案例的编写。而白盒子的测试则需要懂得书籍的编码和逻辑的设计,并且对于白箱的测试而言,其设计的目标是透明的。

所谓的“黑箱”检测,通常是通过函数和要求两种方式进行的。在运动健身系统的各项功能当中,用户的登录能力能否正常的运行以及管理员的管理行为都属于“黑盒子”。

结构检测也称为“白盒”,它可以检测一个项目是否是合适的。在白箱试验中,编程者可以按照设计的过程对一套软件进行一套测试[10]。

6.2 测试用例

本系统采用了单元试验,并在编码中设定了中断点以进行校验,以确保函数码的正确性;以单位试验为依据,实现对运动健身系统进行综合的检测,以验证本系统是否具有良好的性能。最后是对整个系统进行整合的测试,其中包括了对用户的授权和备用的访问。

6.2.1 登录用例

表6.1 登录用例表

序号

测试场景

输入

输出

期望输出

1

在登录页面相关内容中输入错误的用户名和密码

123,123

登录失败

登录失败

2

在登录页面中大部分内容中输入数据库记录中有用户名和错误的密码

admin,123

密码错误

密码错误

3

在登录页面中相关内容输入数据库记录中有用户名和密码

admin,admin

登录成功

登录成功

4

在登录页面中不输入内容和用户名和密码

登录失败

登录失败

6.2.2 用户管理用例

表6.2 用户管理用例表

序号

测试场景

输入

输出

期望输出

1

在用户管理界面中的输入框输入有效数据库记录有的用户名

用户名称

展示搜索出来的用户信息,如果用户名称匹配不上,则不能查找用户信息

展示搜索出来的用户信息,如果用户名称匹配不上,则不能查找用户信息

2

在用户管理界面中的输入框输入有效数据库记录有的用户名

用户名称

展示搜索出来的用户信息,如果用户名称能跟数据库相匹配,则能查找用户信息

展示搜索出来的用户信息,如果用户名称能跟数据库相匹配,则能查找用户信息

3

在用户管理界面中点击添加有效按钮实现添加用户信息

用户的基本信息

如果输入的用户信息与数据库记录相冲突,那么添加失败

如果输入的用户信息与数据库记录相冲突,那么添加失败

4

在用户管理界面中点击添加有效按钮实现添加用户信息

用户的基本信息

如果用户资料与数据库纪录不相同,则可以加入用户信息

如果用户资料与数据库纪录不相同,则可以加入用户信息

5

在用户管理界面内点击删除有效按钮实现删除用户信息

如果已删除的用户资料没有与其他资料表的资料有外部关键字关联,可以移除成功

如果已删除的用户资料没有与其他资料表的资料有外部关键字关联,可以移除成功

6

在用户管理界面内点击删除有效按钮实现删除用户信息

如果已删除的用户资料没有与其他资料表的资料有有关联外键,则不可以删除

如果已删除的用户资料没有与其他资料表的资料有有关联外键,则不可以删除

7

在用户管理界面内点击修改有效按钮实现修改用户信息

修改用户的基本信息

若输入的用户信息与数据库用户资料表纪录发生抵触,则无法成功地变更用户信息

若输入的用户

信息与数据库

用户资料表纪录发生抵触,则无法成功地变更用户信息

8

在用户管理界面内点击修改有效按钮实现修改用户信息

修改用户的基本信息

若输入的用户信息与数据库用户表不一样,则可以成功地变更用户信息

若输入的用户信息与数据库用户表不一样,则可以成功地变更用户信息

6.2.3 商品信息管理用例

表6.3 商品信息管理用例表

序号

测试场景

输入

输出

期望输出

1

在商品信息管理界面中的输入框输入有效数据库记录有的公告信息名

商品信息名称

展示搜索出来的商品信息,如果商品信息名称匹配不上,则不能查找商品信息

展示搜索出来的商品信息,如果商品信息名称匹配不上,则不能查找商品信息

2

在商品信息管理界面中的输入框输入有效数据库记录有的公告信息名

商品信息名称

展示搜索出来的商品信息,如果商品名称能跟数据库相匹配,则能查找商品信息

展示搜索出来的商品信息,如果商品信息名称能跟数据库相匹配,则能查找商品信息

3

在商品信息管理界面中点击添加有效按钮实现添加商品信息

商品信息的基本信息

如果输入的商品信息与数据库记录相冲突,那么添加失败

如果输入的商品信息与数据库记录相冲突,那么添加失败

4

在商品信息管理界面中点击添加有效按钮实现添加商品信息

商品信息的基本信息

如果商品信息资料与数据库纪录不相同,则可以加入商品信息信息

如果商品信息资料与数据库纪录不相同,则可以加入商品信息信息

5

在商品信息管理界面内点击删除有效按钮实现删除商品信息

如果已删除的商品信息资料没有与其他资料表的资料有外部关键字关联,可以移除成功

如果已删除的商品信息资料没有与其他资料表的资料有外部关键字关联,可以移除成功

6

在商品信息管理界面内点击删除有效按钮实现删除商品信息

如果已删除的商品信息资料没有与其他资料表的资料有有关联外键,则不可以删除

如果已删除的商品信息资料没有与其他资料表的资料有有关联外键,则不可以删除

7

在商品信息管理界面内点击修改有效按钮实现修改商品信息

修改商品信息的基本信息

若输入的商品信息与数据库商品信息资料表纪录发生抵触,则无法成功地变更商品信息

若输入的商品信息

信息与数据库

商品信息资料表纪录发生抵触,则无法成功地变更商品信息

8

在商品信息管理界面内点击修改有效按钮实现修改商品信息

修改商品信息的基本信息

若输入的商品信息与数据库商品信息表不一样,可以成功变更商品信息

若输入的商品信息与数据库商品信息表不一样,可以成功变更商品信息

6.3 测试总结

6.3.1软件能力

对运动健身系统进行了全面的功能测试和性能测试,系统在以下方面表现出良好的软件能力。用户可以通过个人中心管理自己的个人信息,用户管理模块提供用户管理功能。健身视频管理模块允许用户访问健身视频资源。饮食推荐管理模块提供个性化的饮食建议和推荐。商品信息管理和商品类型管理模块支持健身相关商品的展示和管理。运动记录管理模块跟踪和记录用户的运动数据。每日提醒管理模块提供定时提醒用户进行健身活动。喝水记录管理模块帮助用户跟踪和记录每天的饮水量。订单信息管理模块用于处理用户的商品购买订单。

6.3.2软件缺陷

在测试过程中,也发现了一些软件缺陷,在某些情况下,系统响应速度较慢,特别是在同时有多个用户同时访问系统时。这可能需要对系统进行性能优化和资源管理。系统对于输入错误或异常情况的处理不够及时和准确,需要增加更完善的错误处理机制和用户提示。

6.3.3测试结论

运动健身系统在功能方面表现良好,满足了用户的基本需求,需要对系统进行优化以提高响应速度和并发处理能力,还需加强错误处理机制。

网址:基于微信小程序运动健身系统 https://www.yuejiaxmz.com/news/view/306459

相关内容

悦运动小程序作品—微信小程序
【微信小程序】个人健康管理系统小程序
基于微信小程序的健康食谱推荐系统
java毕业设计基于微信小程序的健康饮食信息管理系统[附源码]
基于uniapp美食烹饪教学系统 微信小程序
【开题报告】基于微信小程序的个人健康监测系统的设计与实现
java基于微信小程序的美食制作教程系统 uniapp 小程序
基于uniapp微信小程序的校园二手书交易系统
基于微信小程序的健康生活助手系统的设计与实现
基于微信小程序社区旧衣物品回收系统小程序设计与实现

随便看看