计算机毕业设计免费领源码-基于协同过滤算法的病人健康饮食定制系统

目   录

摘  要

Abstract

1  前言

1.1 研究背景和意义

1.1.1  研究背景

1.1.2  研究意义

1.2  国内外研究现状

1.3  本文主要工作

2  相关技术介绍和分析

2.1  B/S架构

2.2  Spring Boot框架

2.3  Vue框架

2.4  MySQL数据库

3  系统分析

3.1  可行性分析

3.1.1  技术可行性

3.1.2  经济可行性

3.1.3  操作可行性

3.1.4  运行可行性

3.2  系统需求分析

3.2.1  功能性分析

3.2.2  性能需求分析

3.4  系统流程分析

3.4.1  系统开发流程

3.4.2 登录流程

3.4.3 注册流程

4  系统设计

4.1 系统架构设计

4.2 系统功能模块设计

4.3 数据库设计

4.3.1 数据库概念结构设计

4.3.2 数据库逻辑结构设计

5  系统实现

5.1 系统环境分析

5.2 前台用户管理模块

5.2.1 用户登录界面

5.2.1 用户注册界面

5.2.3 首页界面

5.2.4 饮食知识界面

5.2.5 病人信息界面

5.2.6 饮食数据界面

5.2.7 病人用户个人中心界面

5.2.8 医生用户个人中心界面

5.2.9 营养师用户个人中心界面

5.3 管理员管理模块

5.3.1 系统用户界面

5.3.2 病人信息管理界面

5.3.3 饮食数据管理界面

5.3.4 系统管理界面

5.3.5 资源管理界面

6 系统测试

6.1 测试目的

6.2 测试用例

6.3 性能测试用例

6.4 测试结果

7 总结与展望

参考文献

致  谢

附  录

摘  要

随着健康意识的提升和个性化医疗的需求增长,基于信息技术的健康饮食管理系统变得尤为重要。本系统旨在通过协同过滤算法为不同用户提供个性化的饮食推荐,特别针对病人、医生、营养师及管理员设计了专属功能模块。病人用户可以管理个人健康信息并接收定制饮食建议;医生能够查看和评估病人健康状况;营养师则负责发布专业的饮食数据;管理员执行系统的全面管理任务。系统采用Spring Boot框架进行后端开发,结合MySQL数据库实现数据的有效存储,并利用协同过滤算法在首页提供精准的饮食推荐。此外,系统支持病人信息、饮食数据等多方面的管理,确保了平台资源的高效运作与维护。通过这一平台,不仅病人可以获得更加科学合理的饮食指导,而且各角色用户均能体验到便捷的操作流程和优质的服务,极大地提升了整体系统的效率与用户体验。

关键词:协同过滤算法;Spring Boot;病人健康饮食定制系统

Abstract

With the increasing health awareness and the growing demand for personalized medicine, a healthy diet management system based on information technology has become particularly important. The system aims to provide personalized dietary recommendations for different users through collaborative filtering algorithms, and has designed exclusive functional modules for patients, doctors, dietitians and administrators. Patient users can manage personal health information and receive customized dietary recommendations; The doctor is able to view and assess the patient's health; Dietitians are responsible for publishing professional dietary data; The administrator performs the overall administrative tasks of the system. The system uses the Spring Boot framework for back-end development, combined with the MySQL database to achieve effective data storage, and uses the collaborative filtering algorithm to provide accurate dietary recommendations on the homepage. In addition, the system supports the management of patient information, dietary data and other aspects, ensuring the efficient operation and maintenance of platform resources. Through this platform, not only can patients get more scientific and reasonable dietary guidance, but also users of all roles can experience convenient operation processes and high-quality services, which greatly improves the efficiency and user experience of the overall system.

Key Words:collaborative filtering algorithm; Spring Boot; Customized system for healthy eating for patients

1  前言

  1.  1研究背景和意义

1.1.1  研究背景

在当今社会,随着生活节奏的加快和工作压力的增大,人们对于健康的关注度日益提升。尤其是在慢性疾病发病率逐年攀升的背景下,合理饮食作为健康管理的重要组成部分,受到了广泛的关注[1]。然而,在实际生活中,如何根据个人健康状况、生活习惯等因素制定科学合理的饮食计划,成为了许多人的困扰。传统的一刀切式饮食建议往往无法满足不同个体的需求,这就为个性化饮食推荐系统的开发提供了契机[2]。

据最新的健康研究报告显示,我国患有高血压、糖尿病等慢性疾病的患者数量持续增加,这些疾病的发生与不良的生活习惯尤其是不合理的饮食结构密切相关[3]。与此同时,公众对于营养知识的认知水平参差不齐,导致许多人即便意识到饮食调整的重要性,也难以实施有效的改变。此外,现有的健康管理和饮食指导平台多存在资源分散、信息更新滞后、用户体验不佳等问题,难以提供精准、个性化的服务。这些问题的存在,不仅影响了用户的使用体验,也在一定程度上制约了健康管理效果的提升。

面对上述挑战,开发一个能够整合多方资源、提供个性化饮食建议的系统显得尤为重要[4]。当前市场上虽然已有一些健康管理和饮食指导的应用,但大多数未能充分利用大数据和算法技术进行深度分析和精准推荐。同时,由于缺乏专业的医学和营养学支持,现有平台提供的饮食建议往往过于笼统,缺乏针对性。因此,本项目旨在通过引入协同过滤算法,并结合Spring Boot、Java、MySQL等技术,构建一个既能满足病人个性化需求,又能方便医生、营养师及管理员使用的综合健康管理平台[5]。这将有助于改善用户获取健康饮食信息的方式,提高健康管理的效果,最终促进公众健康水平的提升。

1.1.2  研究意义

本研究致力于探索如何通过信息技术手段,特别是协同过滤算法的应用,来实现个性化健康饮食推荐系统的构建[6]。在理论上,它不仅拓展了健康管理领域内关于数据驱动型服务模式的研究视野,还为理解用户行为、偏好与健康数据之间的复杂关系提供了新的视角和方法。通过对不同用户群体进行细致划分,并采用先进的算法模型进行数据分析,本研究有助于丰富和完善基于个体差异的精准医疗理论体系,促进跨学科研究的发展,如计算机科学与营养学的深度融合。

在实际应用方面,本系统的设计与实现直接响应了当前社会对于个性化健康管理解决方案的迫切需求。通过搭建一个集成病人信息管理、医生评估、营养师指导以及管理员调控功能的综合平台,本研究能够显著提升健康管理服务的效率与质量。该系统使病人能够获得更加贴合自身健康状况的饮食建议,帮助他们更好地控制疾病风险,改善生活质量。同时,也为医护人员提供了一个便捷高效的工具,用于跟踪病人的健康进展并及时调整治疗方案,从而在实践中推动了个性化医疗服务的发展,具有重要的现实意义和社会价值[7]。

1.2  国内外研究现状

近年来,随着大数据和人工智能技术的发展,个性化健康管理成为学术界和工业界的研究热点[8]。特别是在饮食定制领域,利用信息技术实现精准的健康饮食推荐系统逐渐受到重视。国内外学者在这方面进行了广泛探索,主要集中在如何有效收集并分析用户的健康数据,以及如何通过算法模型为用户提供个性化的饮食建议[9]。然而,尽管取得了一定成果,目前仍存在诸如数据隐私保护、算法准确性及用户接受度等方面的挑战。

在国内,关于基于协同过滤算法的病人健康饮食定制系统的研究起步相对较晚,但发展迅速。初期研究多集中于理论探讨和技术可行性分析,随着技术的进步,越来越多的研究开始关注实际应用中的问题解决。当前,国内研究不仅致力于提高算法的准确性和效率,还在积极探索如何结合传统中医营养学说,以提供更加符合国人饮食习惯和体质特点的个性化饮食方案[10]。此外,数据安全与用户隐私保护也成为了研究的重点之一。

国外对于基于协同过滤算法的病人健康饮食定制系统的探索较早,起初主要聚焦于算法优化和用户体验提升。经过多年的发展,国外研究已从单纯的算法改进扩展到跨学科合作,如计算机科学、营养学及行为心理学等领域的深度融合[11]。现今,许多研究项目致力于构建综合性平台,该平台不仅能根据用户的健康数据进行个性化饮食推荐,还能够监测用户的长期健康变化,并据此调整推荐策略。同时,为了适应不同文化和饮食习惯的需求,国际间的数据共享与合作研究也在不断增加,力求在全球范围内推广个性化的健康管理解决方案[12]。

1.3  本文主要工作

本研究旨在开发一个基于协同过滤算法的病人健康饮食定制系统,以满足个性化健康管理的需求。系统设计涵盖了针对不同用户角色的功能模块,包括病人、医生、营养师及管理员,各模块间实现功能分离与数据共享。技术路线上,采用Spring Boot框架进行后端开发,利用MySQL数据库存储用户信息和饮食数据,并通过协同过滤算法为用户提供精准的饮食推荐。此外,系统还集成了用户管理、健康评估、饮食数据发布等多种功能,确保了平台的全面性和实用性。

具体研究目标是构建一个高效、便捷且个性化的健康管理平台,使病人能够根据自身健康状况获得科学合理的饮食建议,同时支持医生和营养师对病人的健康管理和饮食指导工作。本研究不仅关注系统的功能性实现,还致力于提高用户体验和数据处理效率,确保系统的可扩展性和维护性。通过这一平台,我们希望能够提升公众健康管理的水平,促进健康生活方式的普及。

2  相关技术介绍和分析

2.1  B/S架构

B/S(Browser/Server)架构是一种基于浏览器和服务器的应用架构模式[13]。它以Web浏览器作为客户端,服务器端通过Web技术提供应用服务。客户端通过浏览器与服务器进行交互,用户无需安装专门的客户端应用程序,只需要通过互联网连接即可访问应用程序[1]。在B/S架构中,客户端主要承担用户界面的呈现和基本的输入输出功能,而核心的业务处理、数据存储等操作则由服务器端完成。这种架构的核心优势在于无需在每个客户端机器上安装或更新软件,只要用户的浏览器符合要求,就可以使用系统。

B/S(Browser/Server)架构是一种网络架构模型,其主要特点是客户端通过浏览器与服务器进行通信,所有的业务逻辑和数据处理都在服务器端完成,客户端仅负责展示数据[14]。B/S架构本质上是一种客户端-服务器模式的变体,它通过将传统的C/S(Client/Server)架构中的客户端功能移到浏览器中,简化了客户端的开发和维护工作。在B/S架构中,用户通过浏览器发送请求,浏览器负责展示从服务器获取的数据,服务器则处理请求并返回响应。该架构避免了安装和配置客户端软件的麻烦,也减少了对客户端硬件的依赖,适合于需要大规模部署和跨平台支持的应用系统。

2.2  Spring Boot框架

Spring Boot是一个用于简化Spring应用开发的开源框架,通过减少开发人员配置和依赖的复杂性,使得开发者能够快速构建基于Spring的生产级应用。Spring Boot基于Spring框架之上,提供了一种自配置的方式,使得开发者可以以最少的配置来启动和开发Spring应用[15]。它通过约定优于配置的原则,将常见的配置预设,使得开发人员能够聚焦于业务逻辑的实现,而不必过多关注繁琐的配置和环境搭建。

Spring Boot框架的核心特点之一是其自动配置功能。它能够根据项目中已存在的类和库,自动推断出开发环境的配置需求,减少了手动配置的工作量。Spring Boot还提供了嵌入式Web服务器支持(如Tomcat、Jetty等),使得应用可以以独立的Java应用形式运行,不再依赖外部的Web容器。这种特性使得Spring Boot特别适合于微服务架构的构建。Spring Boot还通过其提供的启动器(Starters)简化了常见功能的集成,例如数据库连接、消息队列、缓存、认证与授权等,从而提升了开发效率[16]。

2.3  Vue框架

Vue.js是一款用于构建用户界面的渐进式JavaScript框架,提供一种灵活而高效的方式来开发单页面应用(SPA)。Vue的设计理念是通过尽量简化开发过程,提供一种声明式的方式来构建用户界面[17]。Vue.js通过数据驱动的视图模型,允许开发者以声明式语法绑定数据与视图,使得应用的状态和界面表现更加简洁和可维护。它的核心思想是通过组件化开发将复杂的UI拆分为可重用的独立模块,从而提升了代码的模块化、可维护性和可扩展性。

Vue.js具备响应式数据绑定和虚拟DOM的特性。响应式数据绑定意味着当数据变化时,Vue会自动更新与之绑定的DOM元素,从而实现视图的实时更新。虚拟DOM则是Vue.js的一种优化手段,通过将对DOM的操作抽象为一个虚拟的DOM树来提高性能,减少实际DOM操作的开销[6]。Vue还提供了丰富的插件和工具,如Vue Router用于路由管理,Vuex用于状态管理,方便开发者构建复杂的前端应用。Vue的灵活性和简洁性使其成为现代Web开发中常用的前端框架之一[18]。

2.4  MySQL数据库

MySQL是一种开源的关系型数据库管理系统(RDBMS),基于SQL(结构化查询语言)进行数据操作。作为一个被广泛使用的数据库系统,MySQL具有高度的性能、可扩展性和可靠性。MySQL使用表格结构来存储数据,每个表由多个列和行组成,数据通过SQL查询语言进行操作[19]。MySQL支持多种数据类型,如整数、浮动小数、字符串、日期等,以满足不同应用场景对数据存储的需求。在实际应用中,MySQL通常用于存储和管理结构化数据,通过索引、视图、触发器等功能提升数据查询的效率和数据的完整性。

MySQL支持ACID事务特性(原子性、一致性、隔离性、持久性),确保数据库操作的可靠性和数据的一致性。它还支持多种存储引擎,其中InnoDB是最常用的存储引擎,具备事务支持、行级锁定和外键约束等特性,适用于高并发、高可靠性的数据存储需求。MySQL可以通过主从复制、分区和分库分表等技术实现横向扩展,以应对大规模数据存储和高负载的应用需求。MySQL还具有灵活的权限管理机制,支持用户角色管理、细粒度的权限控制等,保障数据的安全性[20]。

3  系统分析

3.1  可行性分析

3.1.1  技术可行性

从技术角度来看,Spring Boot作为一种轻量级、快速构建的Java框架,能够提高开发效率,降低系统的复杂程度,易于维护和升级。同时,MySQL作为关系型数据库,能够支持平台数据的存储与管理,保障系统的稳定性和高效性。因此,本系统具有技术可行性。

3.1.2  经济可行性

从经济角度来看,基于Spring Boot搭建病人健康饮食定制系统的投入成本相对较低,因为Spring Boot本身是一个免费、开源的框架,可以节省开发成本。同时,使用MySQL作为数据库也具有成本效益高的优势。因此,本系统具有经济可行性。

3.1.3  操作可行性

从操作角度来看,Spring Boot的简洁性和高度集成的特点使得系统的部署和运行相对简单,容易维护和管理的同时,能够提供一个界面直观友好和操作简单高效的系统,能满足用户的各项要求,方便用户快速上手使用。因此,本系统具有操作可行性。

3.1.4  运行可行性

从运行角度来看,正因为本系统是在服务器的基础上开发的,系统开发成功以后,用户无需导航指导便可自己上手进行操作。系统一经开发测试后,在计算机移动客户端能上网的情况下,只需在浏览器里完成所有可用操作,也无需配置复杂的使用和运行环境,只需一个网址便可进入系统。因此,本系统具有运行可行性。

3.2  系统需求分析

3.2.1  功能性分析

本病人健康饮食定制系统设计分为四大主要用户角色:病人用户、医生用户、营养师用户和管理员。以下是对每个角色的功能需求的详细描述。

(1)病人用户用例图如下所示:

图3.1 病人用户角色用例图

病人用户功能描述:

首页:展示根据用户偏好和健康状况定制的个性化饮食推荐,帮助病人快速获取适合自己的饮食方案。

公告信息:提供系统最新的通知和健康资讯,确保病人及时了解重要信息和健康动态。

饮食知识:分享丰富的营养学知识和健康饮食指南,增强病人的健康管理意识。

病人信息:允许病人录入并更新个人健康数据,如血压、血糖等,便于医生进行健康评估。

饮食数据:支持查看营养师发布的饮食建议及详细的食物营养信息。

我的账户:管理个人信息设置,包括修改密码、联系方式等,保障账户的安全性和私密性。

个人中心:集中展示病人的健康档案、历史健康评估结果和个人收藏,方便随时查阅和管理。

(2)医生用户用例图如下所示:

图3.2 医生用户角色用例图

医生用户功能描述:

首页:展示基于病人健康状况的最新饮食推荐及医生关注的重点病人健康状态概览,便于快速了解重要信息。

公告信息:提供系统更新通知和重要的医疗资讯,确保医生能够及时获取最新的健康管理动态。

饮食知识:访问丰富的营养学资料和健康饮食指南,帮助医生为病人提供专业的饮食建议。

饮食数据:查看营养师发布的饮食数据,评估饮食对健康的影响,并据此提出调整建议。

我的账户:管理个人信息,包括联系方式、专业资格等,确保个人资料的准确性和安全性。

个人中心:集中管理和查看负责病人的健康档案、健康评估历史记录,以及进行必要的健康评估更新,支持医生的专业工作流程。

(3)营养师用户用例图如下所示:

图3.3 营养师用户角色用例图

营养师用户功能描述:

首页:展示营养师负责病人的健康概览及最新发布的饮食数据互动情况,帮助快速掌握病人饮食状况和需求。

公告信息:提供系统更新、健康资讯和专业培训通知,确保营养师能够及时获取行业动态及相关信息。

饮食知识:访问并学习最新的营养学研究和饮食指南,增强自身专业知识,为病人提供科学的饮食建议。

饮食数据:创建、编辑和管理详细的饮食计划与食谱,包括食材、做法及营养价值,供病人参考和使用。

我的账户:维护个人信息,如联系方式、专业认证等,保证信息的准确性和隐私安全。

个人中心:集中管理和查看所发布的饮食内容、病人的反馈及评论,支持营养师对饮食方案进行优化调整,并管理收藏的内容以便快速访问。

(4)管理员用例图如下所示:

图3.4 管理员角色用例图

管理员功能描述:

后台首页:展示系统的整体运行状态,包括用户数量统计、活跃度等关键指标,帮助管理员全面掌握平台状况。

系统用户:管理所有注册用户的账户信息,支持添加、删除或修改用户角色及权限,确保系统的安全和有序运行。

病人信息管理:维护病人基本信息和健康档案,确保数据的准确性和及时更新,为医生和营养师提供可靠的数据支持。

健康评估管理:审核并管理医生提交的病人健康评估报告,确保每位病人的健康管理方案得到专业指导和持续跟踪。

饮食分类管理:设定和调整饮食类别及其属性,保证饮食数据按科学标准分类,便于用户根据需求快速查找相关信息。

饮食数据管理:监督和管理平台上发布的所有饮食数据内容,包括审核新增饮食计划和食谱,确保信息的质量和适用性。

系统管理:控制和更新首页轮播图的内容与展示顺序,增强用户体验的同时突出重要通知或推荐内容。

公告信息管理:发布和管理各类系统公告及健康资讯,确保用户能够获取最新的消息和服务通知,提升信息透明度。

资源管理:管理和扩充平台上的饮食知识库,包括添加新内容和优化知识分类结构,丰富用户的学习资源。

3.2.2  性能需求分析

性能需求分析是系统设计的重要组成部分,其目标是确保系统在各种负载条件下的高效、稳定和可靠。对于病人健康饮食定制系统的设计与实现,下面是系统性能分析表:

表3.1 性能需求表

项目

内容

响应时间

系统对用户请求的响应时间需在500ms以内

并发用户数

系统需要支持多个并发用户同时访问

吞吐量

系统每秒需要处理大量请求

可用性

系统需要保证一定的可用性

数据安全

用户敏感数据需要加密存储,并支持数据库备份和恢复

数据一致性

系统中的数据操作需保证ACID特性,确保数据一致性

扩展性

系统需要支持水平扩展,能够方便地添加服务器节点以应对高请求量

可维护性

系统代码需要清晰易懂、结构良好,方便团队成员维护和修改

日志记录

系统需要记录用户操作日志、异常日志以及系统运行日志

监控报警

系统需要实时监控运行状态,当系统异常时能够及时发送警报通知相关人员

缓存设置

针对频繁使用的数据,系统需要进行合适的缓存

3.4  系统流程分析

3.4.1  系统开发流程

病人健康饮食定制系统开发时,首先进行需求分析,进而对系统进行总体的设计规划,设计系统功能模块,数据库的选择等,本系统的开发流程如下图所示。

图3.5系统开发流程图

3.4.2 登录流程

用户访问平台的网站,进入登录页面页面,输入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如下图所示。

图3.6登录流程图

3.4.3 注册流程

未有账号的用户可进入注册界面进行注册操作,填写注册表格,包括用户名、密码、电子邮件等必要信息。后台系统验证并保存用户提交的信息。分配唯一用户标识符。注册成功后,用户可以使用账号密码进行登录。用户注册流程图如下图所示。

图3.7注册流程图

4  系统设计

4.1 系统架构设计

系统架构设计是构建应用程序的骨架,定义了系统的组件、模块及其交互方式。本病人健康饮食定制系统的系统架构设计遵循分层架构原则,采用B/S架构,即浏览器/服务器架构,使得用户无需在本地安装客户端,通过Web浏览器直接访问系统,降低了用户的使用门槛,提高了系统的可维护性。具体主要分为表现层、业务逻辑层和数据访问层。表现层负责用户交互,通过Vue.js等技术实现前端页面;业务逻辑层采用Spring Boot处理业务逻辑、用户请求并进行数据处理;数据访问层通过MySQL实现数据的增删改查操作,保证数据的持久化及一致性。通过上述分层架构设计,系统能够实现职责分离,各层之间通过清晰的接口进行交互,可以提高系统的可维护性、可扩展性和重用性,有助于在未来进行功能扩展或系统升级。

图4.1 系统架构图

4.2 系统功能模块设计

功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。病人健康饮食定制系统由多个功能模块组成,每个模块下又包含具体的功能操作。根据前文功能需求分析,可以得出功能模块图如下图所示。

图4.2 系统功能结构图

4.3 数据库设计

4.3.1 数据库概念结构设计

E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。在进行数据库设计之前,首先需要先绘制实体-关系(E-R)图。E-R图将帮助理清业务中的实体(Entity)及它们之间的关系(Relationship),从而为后续的数据库表设计提供基础。根据前文可以得出本病人健康饮食定制系统拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。

图4.3 系统总E-R关系图

4.3.2 数据库逻辑结构设计

在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。

表 4.1 patient_user(病人用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

patient_user_id

int

病人用户ID

2

patient_name

varchar

64

病人姓名

3

patient_gender

varchar

64

病人性别

4

patient_age

double

病人年龄

5

examine_state

varchar

16

审核状态

6

user_id

int

用户ID

表 4.2 doctor_user(医生用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

doctor_user_id

int

医生用户ID

2

doctors_job_number

varchar

64

医生工号

3

doctors_name

varchar

64

医生姓名

4

examine_state

varchar

16

审核状态

5

user_id

int

用户ID

表 4.3 nutritionist_user(营养师用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

nutritionist_user_id

int

营养师用户ID

2

nutritionists_name

varchar

64

营养师姓名

3

nutritionist_gender

varchar

64

营养师性别

4

examine_state

varchar

16

审核状态

5

user_id

int

用户ID

表 4.4 patient_information(病人信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

patient_information_id

int

病人信息ID

2

patient_user

int

病人用户

3

patient_name

varchar

64

病人姓名

4

patient_gender

varchar

64

病人性别

5

patient_age

double

病人年龄

6

date_of_registration

date

登记日期

7

high_voltage_data

double

高压数据

8

low_voltage_data

double

低压数据

9

blood_glucose_data

double

血糖数据

10

health_status

varchar

64

健康状态

11

personal_situation

text

65535

个人情况

12

past_medical_history

text

65535

既往病史

13

health_assessment_limit_times

int

健康评估限制次数

表 4.5 diet_data(饮食数据)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

diet_data_id

int

饮食数据ID

2

nutritionist_user

int

营养师用户

3

food_title

varchar

64

饮食标题

4

type_of_diet

varchar

64

饮食类型

5

suitable_for_the_target_audience

varchar

64

适合人群

6

types_of_food

varchar

64

食物种类

7

food_pictures

varchar

255

饮食图片

8

dietary_methods

text

65535

饮食做法

9

dietary_ingredients

text

65535

饮食食材

10

dietary_benefits

text

65535

饮食功效

11

dietary_details

longtext

4294967295

饮食详情

12

hits

int

点击数

13

praise_len

int

点赞数

14

collect_len

int

收藏数

15

comment_len

int

评论数

16

recommend

int

智能推荐

表 4.6 health_assessment(健康评估)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

health_assessment_id

int

健康评估ID

2

patient_user

int

病人用户

3

patient_name

varchar

64

病人姓名

4

patient_gender

varchar

64

病人性别

5

patient_age

double

病人年龄

6

date_of_registration

date

登记日期

7

high_voltage_data

double

高压数据

8

low_voltage_data

double

低压数据

9

blood_glucose_data

double

血糖数据

10

health_status

varchar

64

健康状态

11

doctor_user

int

医生用户

12

doctors_name

varchar

64

医生姓名

13

assessment_results

varchar

64

评估结果

14

assessment_content

text

65535

评估内容

15

the_doctor_recommended

text

65535

医生建议

16

source_table

varchar

255

来源表

17

source_id

int

来源ID

18

source_user_id

int

来源用户

5  系统实现

5.1 系统环境分析

考虑到病人健康饮食定制系统主要面对部分人群,网站的访问量不大。系统处理、统计分析工作简单,Tomcat服务器能够满足中小型网络用户的数据处理,通过互联网Internet 接入及MySQL 5.6以上的数据库应用的需求点。系统具体开发环境如下表所示:

表5.1系统环境表

项目

开发环境

操作系统

Windows 11、Windows 10、Windows 8、Windows 7

开发语言

Java

使用框架

Spring Boot

体系结构

三层B/S体系结构

开发工具

IDEA(2020版)/MyEclipse(2017)/Eclipse、Vs Code

数据库

MySQL 5.6以上

数据库管理工具

Navicat

JDK版本

Java 1.8

Maven

apache-maven 3.6.1-bin

Tomcat

apache-tomcat-7.0.88

5.2 前台用户管理模块

5.2.1 用户登录界面

用户输入用户名和密码后,系统首先对这些输入进行基本的格式验证,确保用户名和密码符合系统设定的格式要求(如长度、特殊字符要求等)。系统接收到用户输入后,会根据用户名查找系统中存储的用户信息数据库或者其他持久化存储方式。系统需要验证密码的正确性,验证成功即可成功登录。界面展示如下图5.1所示。

图5.1 用户登录界面图

5.2.1 用户注册界面

用户注册时,系统要求用户提供必要的信息,例如用户名、密码、电子邮件地址等。这些信息通常由用户在注册表单中输入,并通过前端验证确保格式的正确性。注册过程完成后,系统会为新用户创建一个账户。这包括分配一个唯一的用户ID和设置初始的权限或者角色。界面展示如下图5.2所示。

图5.2 用户注册界面图

5.2.3 首页界面

病人用户、医生用户和营养师用户登录系统前台后,首先进入前台首页界面,该界面主要提供系统搜索功能、系统功能导航栏以及系统信息概览,展示平台的轮播图、最新动态和推荐信息等内容界面设计如下图所示。首页界面展示如下图5.3所示。

图5.3 前台首页界面图

5.2.4 饮食知识界面

饮食知识模块为用户提供了一个全面的营养学和健康饮食指南数据库,用户可以通过搜索或浏览不同分类来获取信息。界面设计简洁直观,支持文章详情查看、点赞及评论功能,方便用户互动交流,增强学习体验。饮食知识界面展示如下图5.4所示。

图5.4 饮食知识界面图

5.2.5 病人信息界面

病人信息:针对病人用户的特殊需求,允许用户录入和更新个人健康数据,如年龄、性别、血压、血糖等基本信息以及既往病史。病人信息界面展示如下图5.5所示。

图5.5 病人信息界面图

5.2.6 饮食数据界面

饮食数据:集成了丰富的饮食方案和食谱资源,病人可以根据自身健康状况选择合适的饮食计划。每项饮食数据均详细列出了食材、做法及营养价值,支持收藏、分享等功能,便于用户日常参考和实践。饮食数据界面展示如下图5.6所示。

图5.6 饮食数据界面图

5.2.7 病人用户个人中心界面

作为病人用户的个性化管理中心,这里集中展示了用户的病人信息档案、历史健康评估结果和个人偏好设置。用户可以轻松访问并管理自己的所有相关信息,包括修改个人信息、查看收藏内容等,提供一站式便捷服务。病人用户个人中心界面展示如下图5.7所示。

图5.7 病人用户个人中心界面图

5.2.8 医生用户个人中心界面

为医生量身定制的功能区域,主要用于管理和查看负责病人的健康信息与评估记录。医生能够快速访问每位病人的最新健康状态,并在此基础上进行健康评估更新,有效提升了医疗服务效率和质量。医生用户个人中心界面展示如下图5.8所示。

图5.8 医生用户个人中心界面图

5.2.9 营养师用户个人中心界面

专为营养师设计的工作平台,包含发布和管理饮食数据、管理评论等功能。营养师可以在这里优化饮食建议,跟踪饮食计划的实际效果,同时通过收集用户反馈不断改进服务质量,满足个性化需求。营养师用户个人中心界面展示如下图5.9所示。

图5.9 营养师用户个人中心界面图

5.3 管理员管理模块

5.3.1 系统用户界面

系统用户模块主要为管理员提供查阅和管理系统用户功能,包含对管理员、病人用户、医生用户和营养师用户等用户信息的添加、编辑、封禁和审核操作。系统用户管理界面展示如下图5.10所示。

图5.10 系统用户管理界面图

5.3.2 病人信息管理界面

病人信息管理模块旨在帮助管理员能够高效地维护和更新病人信息,包括添加新病人记录、编辑现有病人的个人信息及健康数据。通过提供强大的搜索和过滤工具,管理员可以快速定位特定病人档案,确保所有数据的准确性和及时性,为医生和营养师提供可靠的数据支持。病人信息管理界面如下图5.11所示。

图5.11 病人信息管理界面图

5.3.3 饮食数据管理界面

饮食数据管理模块允许管理员对平台上的所有饮食数据进行集中管理和审核,包括新增、编辑或删除饮食计划与食谱。每个条目都需经过严格的质量控制流程,以保证其科学性和实用性。此外,管理员还能监控用户互动情况,以便根据反馈优化内容。饮食数据管理界面展示如下图5.12所示。

图5.12 饮食数据管理界面图

5.3.4 系统管理界面

系统管理中,轮播图管理模块专注于首页展示内容的配置和调整。管理员可以通过简单的拖拽操作来安排图片顺序、设置链接地址以及上传新的宣传素材,确保首页内容的新鲜度和吸引力,有效传达重要通知或推荐优质资源给用户。轮播图管理界面展示如下图5.13所示。

图5.13 轮播图管理界面图

5.3.5 资源管理界面

资源管理模块致力于维护和扩展平台上的饮食知识库,涵盖文章发布、分类管理及内容审核等功能。管理员不仅能直接向数据库中添加新的营养学资料和健康指南,还可以创建或修改知识分类结构,以提升用户的查找效率和学习体验,促进健康知识的广泛传播。资源管理界面展示如下图5.14所示。

图5.14 资源管理界面图

6 系统测试

6.1 测试目的

系统测试的主要目的是确保软件系统的功能、性能和安全性符合设计要求。通过全面而系统的测试,发现系统潜在的缺陷和问题,以便在发布之前修复,确保系统功能的稳定性和可靠性,从而提高软件的整体质量,减少后续使用中的问题,以提升用户体验和满意度,增强用户信任。同时在早期发现并修复缺陷,可以避免后期因缺陷引起的高额维护成本,降低维护成本。

6.2 测试用例

在系统的功能验证阶段,将对系统功能界面进行全面测试。具体而言,将模拟用户行为,输入各类数据并进行提交操作,随后仔细观察和分析每个页面的响应反馈。确保系统的每个功能模块按预期工作,用户能够顺利完成特定任务。

(1)注册模块功能测试

用户想要登录系统,首先需注册成为系统用户,在注册界面根据提示填写注册信息进行注册。用户注册功能测试用例设计如下表所示:

表6.1 用户注册功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证用户能够成功注册

1. 输入有效的用户名2. 输入有效的密码 3. 确认密码一致 4. 提交注册

显示注册成功的提示信息

注册成功,跳转至登录界面

通过

TC002

验证用户名重复不能注册

1. 输入已存在的用户名 2. 输入有效的密码 3. 确认密码一致 4. 提交注册

显示用户名已存在的提示信息

显示用户名已存在的提示信息

通过

TC003

验证密码不一致不能注册

1. 输入有效的用户名 2. 输入密码 3. 输入不一致的确认密码 4. 提交注册

显示密码不一致的提示信息

显示密码不一致的提示信息

通过

(2)登录模块功能测试

用户想要使用系统全部功能必须登录系统,可在登录界面输入账号和密码进行登录。用户登录功能测试用例设计如下表所示:

表6.2 用户登录功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证有效登录

1. 输入正确的用户名和密码  2. 点击登录按钮

显示登录成功,跳转至用户首页

登录成功,跳转至用户首页

通过

TC002

验证空用户名登录

1. 不输入用户名,输入正确密码  2. 点击登录按钮

显示用户名不能为空提示信息

显示用户名不能为空提示信息

通过

TC003

验证空密码登录

1. 输入正确用户名,不输入密码  2. 点击登录按钮

显示密码不能为空提示信息

显示密码不能为空提示信息

通过

TC004

验证错误用户名登录

1. 输入错误的用户名和正确密码  2. 点击登录按钮

显示用户名或密码错误提示信息

显示用户名或密码错误提示信息

通过

TC005

验证错误密码登录

1. 输入正确用户名和错误密码  2. 点击登录按钮

显示用户名或密码错误提示信息

显示用户名或密码错误提示信息

通过

(3)饮食数据模块功能测试

饮食数据模块测试主要包括饮食数据展示功能测试、饮食数据添加功能测试、饮食数据搜索功能测试。饮食数据模块测试用例如表6.3-6.5所示。

饮食数据展示功能测试用例设计如下表所示:

表6.3 饮食数据展示功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证正常展示饮食数据

1. 进入饮食数据展示页面  2. 浏览展示的饮食数据内容

能够正常显示饮食数据内容

饮食数据内容正常显示

通过

TC002

验证饮食数据详情页链接跳转

1. 进入饮食数据展示页面  2. 点击某一饮食数据链接

能够跳转至相应饮食数据详情页面

成功跳转至饮食数据详情页面

通过

TC003

验证搜索功能

1. 进入饮食数据展示页面  2. 使用搜索功能搜索饮食数据

显示符合搜索条件的饮食数据列表

显示符合搜索条件的饮食数据列表

通过

TC004

验证排序展示

1. 进入饮食数据展示页面  2. 选择排序方式

显示该排序下的饮食数据列表

成功显示该排序下的饮食数据列表

通过

TC005

验证饮食数据的评论功能

1. 进入饮食数据详情展示页面  2. 查看饮食数据并发表评论

评论成功显示在饮食数据页面

评论成功显示在饮食数据页面

通过

TC006

验证饮食数据进度页面跳转

1. 进入饮食数据详情展示页面  2. 点击进度按钮

能够跳转至相应进度页面

成功跳转至进度页面

通过

饮食数据添加功能测试用例设计如下表所示:

表6.4 饮食数据添加功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证添加饮食数据

1. 进入饮食数据添加界面  2. 输入饮食数据信息  3. 点击添加按钮

饮食数据成功添加到系统页面中

饮食数据成功添加到系统页面中

通过

TC002

验证饮食数据内容输入

1. 进入饮食数据添加界面  2. 输入正确饮食数据内容和答案  3. 点击添加按钮

饮食数据内容成功录入系统

饮食数据内容成功录入系统

通过

TC003

验证饮食数据图片上传

1. 进入饮食数据添加界面  2. 上传饮食数据相关图片  3. 点击添加按钮

图片成功上传并与饮食数据关联

图片成功上传并与饮食数据关联

通过

饮食数据搜索功能测试用例设计如下表所示:

表6.5 饮食数据搜索功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证饮食数据输入饮食分类搜索

1. 进入饮食数据搜索界面  2. 输入饮食分类  3. 确认并搜索

根据选择的饮食分类关键词显示相关饮食数据信息

根据选择的饮食分类关键词成功显示相关饮食数据信息

通过

TC002

验证饮食数据输入饮食标题搜索

1. 进入饮食数据搜索界面  2. 输入饮食标题  3. 确认并搜索

根据选择的饮食标题关键词显示相关饮食数据信息

根据选择的饮食标题关键词成功显示相关饮食数据信息

通过

6.3 性能测试用例

(1)兼容性测试

表6.6 兼容性测试用例

用例编号

测试类型

测试目标

操作过程

预期结果

TC001

设备兼容性

测试系统在不同设备上的表现

在多种设备上访问系统并记录表现

系统在各种设备上都能正常加载和显示页面

TC002

浏览器兼容性

测试系统在不同浏览器上的表现

在多种浏览器中访问系统并记录表现

系统在各种主流浏览器上都能正常加载和显示页面

TC003

分辨率兼容性

测试系统在不同分辨率下的显示效果

在不同分辨率的设备上访问系统并记录表现

系统在各种分辨率下都能适应并正常显示内容

TC004

操作系统兼容性

测试系统在不同操作系统上的运行情况

在不同操作系统上访问系统并记录表现

系统能够在常用操作系统上正常运行和显示

(2)性能测试

表6.7 性能测试用例

用例编号

测试类型

测试目标

操作过程

预期结果

TC001

负载测试

测试系统在正常负载下的性能

逐步增加用户数来模拟不同的负载情况

系统能够稳定处理并响应不同数量的用户请求

TC002

压力测试

测试系统在极端负载下的性能

以超过系统承受极限的用户数来测试系统

系统能够在高负载情况下仍然保持正常运行

TC003

并发测试

测试系统能同时处理多少并发用户请求

同时发送多个并发用户请求来测试系统性能

系统能够有效地处理多个并发请求

TC004

数据量测试

测试系统在大数据量下的性能

向系统添加大量数据并测试系统响应时间

系统能够在大数据量情况下保持较快的响应时间

6.4 测试结果

全部测试用例都已通过,且不存在漏洞,实现了本论文开始时所作要求和期望。本系统运行稳定,使用流畅,可以满足客户需求。试运行后进行系统评估,可以认为该系统达到预定的目标要求,能够满足用户的需求,也满足了系统开发前所作目标。系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。

简而言之,经过严格的测试,可以发现该系统的功能和性能非常出色,它的精度、可靠性、稳健性都达到了极高的水平,而且它还支持快速、精细的点击操作,使用者的使用感受更加良好。此外,它还支持各种主流浏览器,满足不同的使用要求。

7 总结与展望

通过开发病人健康饮食定制系统,我深刻体会到软件开发的完整流程。首先,在确定开发目标后,我进行了详细的需求分析,明确了系统所需的各项功能。接下来,设计了系统的功能框架和数据库结构,包括实体和数据表的设计。随后,实现了各个功能模块的详细界面,并进行了全面的功能测试。尽管在这个过程中遇到了各种挑战,但通过反复分析和深入思考,借助相关文献和解决方案,成功地解决了这些问题,最终使基于协同过滤算法的病人健康饮食定制系统顺利运行。

虽然该系统在功能上基本满足了用户的需求,但仍有许多需要改进的地方。在接下来的开发阶段,计划进行以下改进:

用户界面设计:目前的操作页面虽然满足了简易操作的要求,但在多样化设计方面还有提升空间。将考虑引入更多丰富的设计元素,使界面更加美观和用户友好。

安全性能优化:针对系统安全性能的增强,需要进一步优化系统的整体防护能力。具体而言,将要对程序退出的安全性进行加强,确保在退出过程中不存在数据泄露或系统不稳定的风险。同时,对系统的并发处理能力进行升级,以确保在高并发场景下系统能够保持稳定的运行状态。

性能优化:在性能优化方面,将着重于对程序的数据结构和代码逻辑进行精细化调整。优化后的系统应具备快速处理大量事务的能力,显著缩短事务处理时间,从而提高整体工作效率。同时,致力于降低服务器资源的占用率,以实现资源的高效利用和成本的有效控制。

参考文献

[1]薛梅启旸,陈鸣声.慢性病医防融合国内外实践进展与经验总结[J].中国农村卫生事业管理,2025,45(03):153-161.

[2]林雅琴,张威强.个性化健康管理的定量推荐方案[J].上海管理科学,2022,44(06):90-95.

[3]刘庆.面向慢病管理的个性化饮食推荐研究与实现[D].哈尔滨工业大学,2022.

[4]董浩.个性化营养配餐系统研究[D].浙江理工大学,2021.

[5]张婷婷.基于多目标进化和神经Bandits的个性化饮食搭配方法研究[D].吉林大学,2023.

[6]段春茜.融合知识图谱和协同过滤的食谱推荐研究[D].中北大学,2021.

[7]郝晓娟,李帆.基于大数据分析驱动的门诊个性化健康管理探索与实践[J].甘肃医药,2025,44(02):157-158+175.

[8]曾子文.基于图神经网络的个性化膳食推荐算法研究[D].武汉轻工大学,2024.

[9]耿化聪.基于知识图谱与协同过滤的饮食推荐算法研究[D].青岛科技大学,2021.

[10]Dorvlo K G G ,Kumah A ,Ofosu K S , et al.Factors Associated with Antidiabetic Medications and Dietary Recommendation Adherence Among Patients with Type 2 Diabetes.[J].Global journal on quality and safety in healthcare,2025,8(1):13-14.

[11]Sweidan S ,Askar S ,Abouhawwash M , et al.A hybrid healthy diet recommender system based on machine learning techniques[J].Computers in Biology and Medicine,2025,184109389-109389.

[12]Kip M ,Başmısırlı E ,Altun H .Assessment of reliability and information quality of youtube videos about dietary recommendations for irritable bowel syndrome[J].Clinical Nutrition ESPEN,2024,631196-1196.

[13]吴云峰.B/S架构下,重构考核指标体系[J].人力资源,2022,(04):120-121.

[14]黄维.基于B/S模式的虚拟网络实验室安全管理体系分析[J].信息系统工程,2024,(05):4-7.

[15]王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.

[16]李兴华,马云涛.Spring开发实战[M].人民邮电出版社:202303.381.

[17]赵媛. 基于Vue的Web系统前端性能优化分析 [J]. 电脑编程技巧与维护, 2024, (09): 44-46.

[18]秦冬. 浅析Vue框架在前端开发中的应用 [J]. 信息与电脑(理论版), 2024, 36 (13): 61-63.

[19]李艳杰.MySQL数据库下存储过程的综合运用研究[J].现代信息科技,2023,7(11):80-82+88.

[20]肖睿,李鲲程,范效亮,等.MySQL数据库应用技术及实践[M].人民邮电出版社:202206.228.

致  谢

这次毕业设计能够完成,最重要的就是来自指导老师的帮助,是导师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设施能够完成离不开导师的帮助。在此,我对导师由衷的表示感谢。

其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。

最后,我要感谢我的家人和同学们。感谢父母在物质与精神上给予我无限的支持和鼓励。感谢我的同学们,在论文写作期间,你们给予了我许多宝贵的建议和帮助,让我在学术研究的道路上不再孤单。

再次感谢所有在我大学生活中给予我帮助和支持的人们。您们的关怀和鼓励将永远铭刻在我的心中,成为我未来前行的动力。

由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。

  

系统核心代码设计

用户注册

注册页UserController.java,传入user对象,并将"user_id"、 "state"、 "user_group"、"login_time"、"phone"、"phone_state"、 "username"、"nickname"、"password"、"email"、"email_state"、"avatar"、"create_time"输入,重点是 "username"、"nickname"、"password"必须输入,通过获取username,数据库查询是否有该用户,如果存在,则提示“用户已存在”,否则执行将UserId置为空(数据库表中该字段已设置自动递增),代码如图所示。

注册核心代码图

用户登录

登录页,首先传入"username"、"email"、"phone"、"password",用户可通过用户名、邮箱、手机号进行登陆,通过判断resultList来确定查询结果,然后执行查询用户组UserGroup,用户组里面不存在,依然报“用户不存在”,执行完以上代码,最后涉及到用户带有“审核”的,会查询examine_state(用户的审核状态),数据库表user_group中含有source_table和source_field进行查询,以上步骤完成,对输入的密码进行存储Token到数据库,匹对账号和密码,数据库中的AccessToken为令牌,用于身份认证,代码如图所示。

用户登录核心代码图

修改密码

修改密码,通过请求data,获取旧密码,并将新密码重新赋值,期间都是需要通过加密,代码如图所示。

修改密码核心代码图

添加数据

新增一条数据,通过post传入一个json对象,然后经过request.getReader(),最后经过readBody()转成一个Map,含有String和Object,key用的是字段名,Object存放数据,最终得到Map,insert用拼装sql,读取body,组装成一个insert对象,runCountSql()语句,代码如图所示。

添加数据核心代码图

修改数据

修改一个数据,原理与add基本一致,不同点在于通过readConfig()读取关键字,以及通过readQuery()获取URL后面?指定位置的标识,转成Map对象后,执行update操作,同样通过拼接的sql语句执行,执行过程读取query,toWhereSql()语句完成数据库操作,body为修改对象的值,代码如图所示。

修改数据核心代码图

删除数据

删除一条数据,通过readQuery(),获取URL后面的对象地址,删除FROM具体的table,query删除查询FindConfig语句,代码如图示。

删除数据核心代码图

获取列表

通过请求的参数获取列表数据,代码如图所示。

获取列表核心代码图

查询数据

通过请求的参数获取一条数据,通过readQuery(),获取URL后面的对象地址,查询FindConfig语句,select筛选Map对象,FIELD为查询字段,未传输的情况下传入“*”,代码如图所示。

查询数据代码图

文件上传

图片/文件/视频等的上传方法通过MultipartFile,代码如图所示。

文件上传核心代码图

免费领取项目源码,请点赞❤️关注收藏并私信博主,谢谢

免费领取项目源码,请点赞❤️关注收藏并私信博主,谢谢

免费领取项目源码,请点赞❤️关注收藏并私信博主,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值