SpringBoot+Vue.js协同过滤算法美食推荐小程序

news2024/12/24 8:46:18

摘 要

伴随着我国社会的发展,人民生活质量日益提高。于是对各种需求进行规范而严格是十分有必要的,所以许许多多的微信小程序应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套协同过滤算法美食推荐小程序,帮助美食推荐进行美食分类、美食信息、订单信息等繁琐又重复的工作,提高工作效率的同时,也减轻了管理者的压力。
本论文的主要内容包括:
第一,研究分析当下主流的Uni-weixin技术,结合美食推荐日常管理方式,进行协同过滤算法美食推荐小程序的数据库设计,设计协同过滤算法美食推荐小程序功能,并对每个模块进行说明。
第二,陈列说明该微信小程序实现所采用的架构、系统搭建采用的服务器、系统开发环境和使用的工具,以及系统后台采用的数据库。
最后,对微信小程序进行全面测试,主要包括功能测试、查询性能测试、安全性能测试。分析微信小程序存在的不足以及将来改进的方向。
关键词:协同过滤算法美食推荐小程序;

Abstract
With the development of our society, the quality of life of the people is improving day by day. Therefore, it is necessary to standardize and strictly enforce various requirements, so many WeChat applets have emerged as the times require. At this point, relying solely on human resources to deal with these matters seems to be somewhat inadequate. Therefore, this paper will design a collaborative filtering algorithm food recommendation applet to help food recommendation perform tedious and repetitive tasks such as food classification, food information, and order information, improving work efficiency, while also reducing the pressure on managers.
The main contents of this paper include:
Firstly, research and analyze the current mainstream Uni-weixin technology, combine the daily management methods of food recommendation, design the database of collaborative filtering algorithm food recommendation applet, design the functions of collaborative filtering algorithm food recommendation applet, and describe each module.
Secondly, the architecture used to implement the WeChat applet, the server used to build the system, the system development environment, and the tools used, as well as the database used in the background of the system, are displayed and explained.
Finally, conduct a comprehensive test of the WeChat applet, mainly including functional testing, query performance testing, and security performance testing. Analyze the shortcomings of WeChat applet and the direction for future improvement.
Keywords: collaborative filtering algorithm, food recommendation applet;

目 录

摘 要 Ⅰ
Abstract Ⅱ
1 绪 论 1
1.1研究背景 1
1.2 研究意义 1
1.3 研究现状 2
1.4本文组织结构 2
2 技术介绍 3
2.1微信开发者工具 3
2.2小程序目录结构以及框架介绍 5
2.3 SpringBoot框架 5
2.4 Java语言 6
2.5Vue简介 6
2.6 Mysql的特点 6
2.7协同过滤算法简介 6
2.8本章小结 6
3需求分析 7
3.1可行性分析 7
3.1.1经济可行性 7
3.1.2技术可行性 8
3.1.3运营可行性 8
3.1.4法律可行性 8
3.2系统需求分析 8
3.2.1 性能需求 9
3.2.2 安全性需求 9
3.2.3 功能需求 10
3.3本章小结 10
4系统设计 11
4.1系统结构设计 11
4.2系统功能模块设计 11
4.3 数据库设计 12
4.3.1 概念模型设计 12
4.3.2 数据库表结构 12
4.4本章小结 14
5 系统实现 15
5.1系统开发环境以及运行环境 15
5.1.1 系统开发环境 15
5.1.2 系统运行环境 16
5.2协同过滤算法美食推荐小程序的主要功能模块实现 16
5.2.1用户微信端功能的实现 17
5.2.2管理员服务端功能的实现 17
5.2.3本章小结 18
6系统测试 19
6.1 系统测试目的 19
6.2 系统测试环境 19
6.3系统测试用例 19
6.4本章小结 20
结 论 21
参考文献 22
致 谢 23

1 绪 论

1.1研究背景
信息技术的集成化和信息网络化的不断发展,人类开始步入信息化时代,信息技术作为一种资源成为美食推荐战略不可分割的一部分,在当今社会,人们的生活节奏逐渐加快,人们对经济的要求逐渐降低,越来越多的人开始追求简单、快捷的方式。以现在计算机的技术的应用,使计算机成为人们使用现代发达技术的桥梁[1]。计算机可以有效的解决信息,十分方便的获取信息,从而提高工作的效率。
1.2 研究意义
现如今科技的卓越发展,时代环境的大变革。人们生活变得越来越多元化,这种多元化很大程度上由互联网科技发展引起,日新月异的互联网让我们实现了众多的不可能。利用网络进行信息管理改革已经成为了人们追捧的一种趋势[2]。“协同过滤算法美食推荐小程序”是运用java语言,springboot框架,以Mysql数据库为基础而来发出来的。为保证我国经济的持续性发展,必须要让互联网信息时代在我国日益壮大,蓬勃发展,一个好的协同过滤算法美食推荐小程序,方便用户通过注册登录微信端查看美食信息、购物车、美食资讯,修改个人信息等,管理员对信息进行维护与管理,还能帮助工作者从琐碎冗杂的日常管理事务中解放出来,更专心投入在其它事务上,因而能更好的履行它自身的社会责任,这个协同过滤算法美食推荐小程序也就间接地为美好社会的创建出了一份力[3]。所以协同过滤算法美食推荐小程序的设计和实现是必要的也是很有意义的。
1.3研究现状
如今,因为无线网相关技术的快速,尤其是在网上进行资源的上传下载、搜索查询等技术,以及信息处理和语言开发技术的进步,同时编程语言、建模技术的不断发展,促使诸多的平台系统架构由C/S(客户端/服务器)更多的转变为采用B/S(浏览器/服务器)的架构,从而让程序平台网络端的系统架构迎来了一个新的阶段。
并且,在对国外协同过滤算法美食推荐小程序发展现状的了解中,发现国外协同过滤算法美食推荐小程序一大多是一种门户的建设,除日常的办公业务外,与物流和资金流关系紧密的许多业务也都被设计为功能模块加入系统中[4]。在这一点上,我国完全没有落后,通过采用集成了这些功能的系统,帮助美食推荐各项业务的工作效率都得到了极大提高,从而持续地为美食推荐带来更多经济收益。
1.4本文组织结构
本论文将详细阐述协同过滤算法美食推荐小程序的开发背景、应用可行性以及系统实现所具有的现实意义,在对协同过滤算法美食推荐小程序进行详细的需求分析后,会根据需求分析的结果再结合实际情况为系统的实现选取合适的技术和架构,之后在上述分析论述的基础上进行系统设计,最后完成系统实现和测试。
本文共分为七章,分别是:
第一章绪论,在这一章中对协同过滤算法美食推荐小程序的研究背景和意义进行介绍,同时浅述了信息管理系统的发展,明确了协同过滤算法美食推荐小程序的实现的目的和方向[5]。
第二章技术介绍,在本章中列举介绍了系统实现采用到的所有技术,包括一些主流的框架技术。
第三章需求分析,这一章对协同过滤算法美食推荐小程序的需求进行了全面详细的分析,从系统实现的应用可行性、技术可行性,再到系统的功能、性能、安全性需求都做了说明分析,最后描述了系统的业务流程对需求分析进行补充。
第四章系统设计,这一章中包含了系统实现选取的架构模式,以及组成系统的各个功能模块。
第五章系统实现,本章是在经过前面几章的分析后,将协同过滤算法美食推荐小程序开发实现,章节内容包括系统开发环境、运行环境和具体的功能模块实现。
第六章系统测试,模拟系统的实际应用环境,对编写完成的程序进行测试。在本章中列举了测试用例和测试结果。
第七章总结,对协同过滤算法美食推荐小程序的整个设计和实现过程进行总结[6]。

2 技术介绍

在这一章中,主要是罗列出实现小程序前端使用微信开发者工具设计,对应小程序的基本组件和页面,通过微信官方的控件属性或者自设属性填充wxss,然后根据业务流程确定各页面逻辑js。数据库使用mysql,小程序框架使用Uni-weixin,管理员界面联系之前所学的web开发相关知识,使用eclipse设计出管理员登录和管理界面,服务器用tomcat7.0搭建。使用springboot框架开发。
2.1微信开发者工具
目前腾讯发布的微信官方网站上所使用的软件开发工具主要是微信开发工具,并且有官方网站为它提供了一个前端开发平台。由于软件不能在浏览器上运行,因此在网络上是不允许使用 Document,Window等方法的。而在以往对HTML5进行加载的过程中,会受到网络环境的限制,需要对HTML、CSS以及JS进行一步又一步的加载,然后返回信息,从而渲染页面,将其在浏览器当中进行呈现。这样的方式用户需要等待许久,而且会降低用户的体验感。微信Web开发者工具与H5开发工具的预览模式存在着一定的差异,其属于一项自己的工具,因此可有效地实现同步本地文件开发和调试等流程。此外小程序开发了相关的标签语言和样式语言,并没有使用相关的HTML5+CSS3。在微信小程序软件的开发过程中,还进一步提供了原生APP的组件。而在HTML5+CSS3当中,这是需要通过模拟才能够有效实现的相关功能,但在小程序当中可以通过组件来得到有效的实现。
2.2小程序目录结构以及框架介绍
(1)目录结构
一个小程序主体部分由三个文件组成,必须放在项目的根目录。小程序主体组成如表2-1。

表2-1 小程序主体组成
文件 必需 作用
app.js 是 小程序逻辑
app.json 是 小程序公共配置
app.wxss 否 小程序公共样式表

一个小程序页面由四个文件组成。小程序页面组成如表2-2。

表2-2 小程序页面组成
文件类型 必需 作用
js 是 页面逻辑
wxml 是 页面结构
json 否 页面配置
wxss 否 页面样式表

(2)框架
整个小程序架构由两个部分组成:逻辑层和视图层。小程序还提供了 WXML和 WXSS的视图层描述语言,并在此基础上构建了一个基于 JavaScript的逻辑层,并在视图层和逻辑层之间设置了数据传递和事件处理,使得开发者可以集中精力在数据和逻辑上。微信小程序的结构,如图2-3所示。
① 逻辑层 App Service
我们所说的逻辑层Service,其实就是对业务流程的控制,主要由JavaScript语言来编写,具体体现在小程序中有四个功能:一、对数据进行初始化,还可以进行云端存储和云端调用。二、增加即将需要处理的逻辑事务。三、把需要进行的逻辑交易进行操作。四、变换视角,显示结果。
② 视图层 View
框架的视图层由 WXML 与 WXSS 编写,由组件来进行展示。将逻辑层的数据反映成视图,同时将视图层的事件发送给逻辑层。

在这里插入图片描述

图2-3 微信小程序的结构

2.3 SpringBoot框架
该框架拥有自己独特的配置方式,网站开发人员不需要再进行大量重复的样板 式的配置工作,开箱即用,不会生成额外代码量,不需要进行XML文件的配置。
2.4 Java语言
Java 最大的两个特点就是功能强大和简单易用。Java可以让程序员进行复杂的编程而不必为储存管理对象等问题所烦恼,把精力和时间更多的放在研发与设计上,极大地提高了开发者的工作效率和工作热情。

2.5 Vue简介
VUE是一套用于构建用户界面的渐进式框架。为了实现前后端分离的开发理念,开发前端 SPA(single page web application) 项目,实现数据绑定,路由配置,项目编译打包等一系列工作的技术框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动.

2.6 Mysql的特点
Mysql 可以处理拥有上千万条记录的大型数据,支持常见的SQL语句规范,可移植性高,安装简单小巧,良好的运行效率,有丰富信息的网络支持,相对其他大型数据库而言,调试、管理,优化简单;使用客户端工具操作效率高,安全性高,使用WEB方式简单方便,不受限制。

2.7协同过滤算法简介
协同过滤算法在推荐系统算法领域中也已经被研究了许多年,提出了不少的方法,我们就来把这些算法归类一下。协同过滤方法的一个基本假设就是,如果用户A和用户B在一些物品偏好上,具有相似的历史标注模式或者行为习惯,那么他们在其余项目上都具有一定相似的兴趣。协同过滤算法主要分为两大类:基于内存的方法、基于模型的方法。而协同过滤算法的难点就在于用户评价矩阵非常稀疏,缺省的值较多,存在共同评价的物品非常少。

2.8本章小结
在本章中,详细介绍了本论文中实现的协同过滤算法美食推荐小程序所采用的技术,包括后台开发中所使用的springboot框架,对上述技术的研究和应用,可以为程序后续的顺利开发提供帮助,在简化程序开发的同时提高开发效率和质量[7]。

3需求分析

在这一章中将对本论文要实现的协同过滤算法美食推荐小程序进行详尽的可行性分析、需求分析等,本章内容主要涵盖了对系统预期应用环境的分析,对系统功能和安全性需求的分析,最后还有对系统的功能需求的分析[8]。这一章的内容将为之后的系统设计和实现提供可靠依据,是系统完整可靠实现的重要保障。

3.1可行性分析
3.1.1经济可行性
系统采用的是开发环境Eclipse进行设计以及编写,并且根据所学的java语言来实现相应的功能的开发,综合就是一个比较基础的系统开发设计,所以所用到的有开源的开发环境所构成。而且可以利用现有的设备,不用进行另外的硬件设备购买[9]。
用户通过使用协同过滤算法美食推荐小程序,很大程度减小了人员成本,极大提高了管理的效率。目前的由人员管理的方式存在很多不足,首先是人工成本大,并且工作效率比较低,然后是存在着很多现金流失的问题[10]。
经济可行性是主要计算项目的开发成本,还有项目成功后可能带来的有效收益。很多的项目只有开发成本能控制在企业有可能接受的范围内的情况下,这样的项目才会被批准开发。然而本次系统的开发在上述所有的问题的情况下,是可以完成相关的系统设计。
3.1.2技术可行性
技术可行性是分析系统都需要用到哪些技术知识,语法是否规范标准,代码量多大,是否具有可移植性,在 B/C在这种设计模式下能够真正的实现数据层和表示层的分离,以及微信端页面是否可以做到美观实用,是否吸引眼球。网站是否足够稳定,服务端管理页面是否足够方便管理,数据库的构建是否可以符合系统要求,是否需要搭建集群等等[11]。
3.1.3运营可行性
可操作性是指将系统开发所涉及到的所有功能全都实现,代码收尾工作完成后对用户消费水平,系统的业务能力是否与用户消费水平所对等,是否可以满足大部分消费者的需求,页面是否美观,能否让用户满意,代码显示是否为轻量级,操作和功能是否简单便捷,是否同时适用于小孩,成人和老人。系统能否同时应用于windows、linux等操作系统,这取决于系统的可移植性。JAVA 编程语言的适应性非常强,基本上能够较好的适应目前市场环境中所流行的各个平台。也就是说Java的可移植性很强,那么系统的价值越高,可行性也就越强[12]。
3.1.4法律可行性
该协同过滤算法美食推荐小程序是面向大众开源化和不收取任何费用的。它的主要目的是帮助人们解决高重复手工问题。完全符合法律可行性要求,系统内部权限划分不会导致内部用户泄露系统机密。对于用户信息,系统有保护措施,用户密码在数据库中加密,并有严格的自我控制[13]。

3.2系统需求分析
3.2.1 性能需求
协同过滤算法美食推荐小程序设计的目的在于帮助美食推荐的管理者能够更加高效轻松地进行日常的管理工作,所以作为一个工具,该系统应该被设计得易于上手使用,整个系统界面需要简洁明了、清晰易懂,而且一定要为用户提供必要的提示信息,比如在登录时用户密码或者用户名输入错误时要给予提示。总之一定要从使用者的角度出发,去设计用户操作界面[14]。
3.2.2 安全性需求
首先要保证服务器不受攻击,数据库不能曝露在互联中。对使用系统的不同用户赋予相应的权限,用户只能进行自己权限允许范围内的操作。数据库中进行多用户管理,对用户的敏感信息如身份证信息,只有最高权限的数据库管理员用户可查询,其他用户无权限查看。
3.2.3功能需求
本协同过滤算法美食推荐小程序是为了提高用户查阅信息的效率和管理人员管理信息的工作效率,可以快速存储大量数据,还有信息检索功能,这大大的满足了用户和管理员这二者的需求。操作简单易懂,合理分析各个模块的功能,尽可能优化界面,让用户和管理员能使用环境更好的系统。
对比要实现的功能来分析出用户的需求,可以让用户在线对其进行查看美食信息、购物车、美食资讯等信息,这不仅满足了用户的需求,还大大的节省了时间。因此,管理员对信息进行添加、修改、删除、查看,可以提高管理员的工作效率。
(1)管理员用例图如图3-1所示;
在这里插入图片描述

                            图3-1 管理员用例图

(2) 用户用例图如图3-2所示:

在这里插入图片描述
图3-2 用户用例图

3.3本章小结
在本章中对本论文要实现的协同过滤算法美食推荐小程序要实现的需求进行了详尽的说明,包括系统实现的可行性分析,整个系统在功能、性能和安全方面需求的分析,最后对整个系统不同身份用户的业务流程进行了有序的阐述。通过对以上内容的分析和说明,使得系统要实现的具体功能更加清晰,这给后面系统的设计和实现奠定了良好的基础,有助于整个程序开发的顺利进行。

4系统设计

通过前三章的分析说明,本论文中协同过滤算法美食推荐小程序已经具有了良好的实现基础,目前的第四章将对系统的具体实现进行说明介绍。
4.1系统结构设计
随着互联网的兴起以及国内外许多B/S架构的优秀系统被广泛使用而变得流行,B/S架构成为了系统开发的主流。本论文中的协同过滤算法美食推荐小程序也同样采用了B/S架构标准的三层架构,即将整个系统划分为表现层、业务层和持久层这三层,并且在表现层采用B/C设计模型。
以上这种对程序进行分层的方式,可以使开发者专注于结构中的某一层,每一层要进行的工作十分明确,降低了耦合性,这种标准化的开发方式,有利于程序的复用,也极大地降低了之后对系统功能扩充和维护的成本。
这些功能可以充分满足协同过滤算法美食推荐小程序的需求。此系统功能较为全面如下图系统功能结构如图4-1所示。

在这里插入图片描述

图4-1功能结构图

4.2系统功能模块设计
协同过滤算法美食推荐小程序的使用者主要有二类用户,一类是管理员,他拥有整个系统的最高权限,然后是用户,他具有管理员给予级别的权限,都只能对自己的个人信息进行操作。系统根据这二类用户,划分出了二大功能模块。
4.3 数据库设计
4.3.1 概念模型设计
概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体线以及关联构成的图,E-R图可以明确地叙述系统中涵盖的实体线相互关系。
管理员信息实体图如图4-2所示:
在这里插入图片描述

    图4-2管理员信息实体图

用户信息实体图如图4-3所示:
在这里插入图片描述

图4-3用户信息实体图

美食信息实体图如图4-4所示:
在这里插入图片描述

图4-4美食信息实体图

订单信息实体图如图4-5所示:
在这里插入图片描述

图4-5订单信息实体图

4.3.2 数据库表结构
本论文中的协同过滤算法美食推荐小程序采用MySQL数据库,系统中的所有对象以及对象的所有属性都将在下列表格中展现。

表4-1:美食信息评论表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
refid bigint 关联表id
userid bigint 用户id
avatarurl longtext 4294967295 头像
nickname varchar 200 用户名
content longtext 4294967295 评论内容
reply longtext 4294967295 回复内容

表4-2:配置文件
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

name varchar 100 配置参数名称
value varchar 100 配置参数值

表4-3:在线客服
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
userid bigint 用户id
adminid bigint 管理员id
ask longtext 4294967295 提问
reply longtext 4294967295 回复
isreply int 是否回复

表4-4:用户
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
yonghuzhanghao varchar 200 用户账号
mima varchar 200 密码
yonghuxingming varchar 200 用户姓名
xingbie varchar 200 性别
nianling int 年龄
touxiang longtext 4294967295 头像
money float 余额 0

表4-5:购物车表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
tablename varchar 200 商品表名 meishixinxi
userid bigint 用户id
goodid bigint 商品id
goodname varchar 200 商品名称
picture longtext 4294967295 图片
buynumber int 购买数量
price float 单价
discountprice float 会员价
goodtype varchar 200 商品类型

表4-6:用户表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

username varchar 100 用户名
password varchar 100 密码
role varchar 100 角色 管理员
addtime timestamp 新增时间 CURRENT_TIMESTAMP

表4-7:地址
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
userid bigint 用户id
address varchar 200 地址
name varchar 200 收货人
phone varchar 200 电话
isdefault varchar 200 是否默认地址[是/否]

表4-8:token表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

userid bigint 用户id
username varchar 100 用户名
tablename varchar 100 表名
role varchar 100 角色
token varchar 200 密码
addtime timestamp 新增时间 CURRENT_TIMESTAMP
expiratedtime timestamp 过期时间 CURRENT_TIMESTAMP

表4-9:收藏表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
userid bigint 用户id
refid bigint 商品id
tablename varchar 200 表名
name varchar 200 名称
picture longtext 4294967295 图片
type varchar 200 类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注) 1
inteltype varchar 200 推荐类型
remark varchar 200 备注

表4-10:订单
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
orderid varchar 200 订单编号
tablename varchar 200 商品表名 meishixinxi
userid bigint 用户id
goodid bigint 商品id
goodname varchar 200 商品名称
picture longtext 4294967295 商品图片
buynumber int 购买数量
price float 价格 0
discountprice float 折扣价格 0
total float 总价格 0
discounttotal float 折扣总价格 0
type int 支付类型 1
status varchar 200 状态
address varchar 200 地址
tel varchar 200 电话
consignee varchar 200 收货人
remark varchar 200 备注
logistics longtext 4294967295 物流
goodtype varchar 200 商品类型

表4-11:美食资讯
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
title varchar 200 标题
introduction longtext 4294967295 简介
picture longtext 4294967295 图片
content longtext 4294967295 内容

表4-12:美食信息
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
meishimingcheng varchar 200 美食名称
meishifenlei varchar 200 美食分类
meishitupian longtext 4294967295 美食图片
kouwei varchar 200 口味
meishixiangqing longtext 4294967295 美食详情
clicktime datetime 最近点击时间
clicknum int 点击次数 0
price float 价格

表4-13:美食分类
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键
主键

addtime timestamp 创建时间 CURRENT_TIMESTAMP
meishifenlei varchar 200 美食分类

4.4本章小结
本章主要是对协同过滤算法美食推荐小程序进行设计,详细的说明了该系统实现所采用的架构、系统中所有的功能模块,并以表格的形式展现了系统持久层中的所有实体和实体的所有属性。明确的功能说明和详尽的数据陈列,方便将系统业务和数据联系起来,为后面的程序开发提供方便。

5 系统实现

在上一章中,本论文中的协同过滤算法美食推荐小程序进行了全面的系统设计。接下来第五章对本协同过滤算法美食推荐小程序的实现过程进行说明,包括对该协同过滤算法美食推荐小程序所需的开发环境、运行环境的说明以及对上一章中提到的各种内容的实现。
5.1系统开发环境以及运行环境
5.1.1 系统开发环境
表5-1 开发环境
开发使用的操作系统 Windows10
开发使用的编程语言 JAVA
开发框架选择 springboot
选取的数据库 MySQL
开发采用的Eclipse Eclipse

5.1.2 系统运行环境
本协同过滤算法美食推荐小程序的运行环境如表5-2所示。

表5-2 客户端运行环境
运行使用操作系统 Windows10
客户端软件 Chrome浏览器

5.2协同过滤算法美食推荐小程序的主要功能模块实现

5.2.1用户微信端功能的实现
注册界面,第一次使用本小程序的使用者,首先是要进行注册,点击“注册”,然后就会进入到注册的页面里面,将用户信息录入注册表,确认信息正确后,页面才会跳转到登录界面,用户登录成功后可使用本小程序所提供的所有功能,如图5-1所示。
在这里插入图片描述

图5-1用户注册界面

登录界面,首先双击打开微信小程序端系统,连上网络之后会显示出本系统的登录界面,这是进入小程序的第初始页面“登录”,能成功进入到该登录界面则代表小程序的开启是成功的,接下来就可以操作本系统所带有的其他所有的功能,如图5-2所示。
在这里插入图片描述

图5-2用户登录界面

小程序首页是用户注册登录后进入的第一个界面,用户可通过小程序端首页进入对应的页面或者通过小程序最下面的那一行导航栏中的“首页、美食信息、购物车、美食资讯、我的”,也可以点击“我的”进入我的页面,在我的页面可以对我的收藏管理、用户充值、在线客服、购物车、我的订单等进行详细操作,如图5-3所示。
在这里插入图片描述

图5-3小程序首页界面图

用户点击美食信息,在美食信息页面的搜索栏输入美食名称,进行查询,还可以查看美食名称、美食分类、美食图片、口味、点击次数、价格等信息,如有需要可进行加入购物车、立即购买、收藏或评论等操作,如图5-4所示。
在这里插入图片描述

图5-4 美食信息界面图

用户将想要购买的东西加入购物车,加入购物车后可以增减数量、删除、点击购买,可一键清除失效商品,如图5-5所示。
在这里插入图片描述

图5-5购物车界面图

在我的功能界面,用户点击“我的”进入我的页面,在我的页面可以对我的收藏管理、用户充值、在线客服、购物车、我的订单等进行详细操作,如图5-6所示。
在这里插入图片描述

图5-6我的功能界面图

5.2.2管理员服务端功能的实现
管理员进行登录,进入系统前在登录页面根据要求填写用户名和密码等信息,点击登录操作,如图5-7所示。
在这里插入图片描述

图5-7管理员登录界面图

管理员登录系统后,可以对系统首页、个人中心、用户管理、美食分类管理、美食信息管理、系统管理、订单管理等进行相应的操作管理,如图5-8所示。
在这里插入图片描述

图5-8管理员功能界图面

管理员点击用户管理,在用户管理页面输入用户账号、用户姓名、性别、年龄、头像等信息,然后进行查询、新增或删除用户信息等操作,如图5-9所示。
在这里插入图片描述

图5-9用户管理界面图

管理员点击美食分类管理,在美食分类管理页面输入美食分类等信息,然后进行查询、新增或删除美食分类等操作,如图5-10所示。
在这里插入图片描述

图5-10美食分类管理界面图

管理员点击美食信息管理,在美食信息管理页面输入美食名称、美食分类、美食图片、口味、点击次数、价格等信息,然后进行查询、新增或删除美食信息等操作,如图5-11所示。
在这里插入图片描述

图5-11美食信息管理界面图

管理员点击系统管理,在系统管理页面对轮播图管理、在线客服、美食资讯、
等信息,然后进行查询或删除系统信息等操作,如图5-12所示。
在这里插入图片描述

图5-12系统管理界面图

管理员点击订单管理,在订单管理页面对订单编号、商品名称、商品图片、购买数量、价格、折扣价格、总价格、折扣总价格、支付类型、状态、地址、电话、收货人、备注、商品类型、下单时间等信息,然后进行查询或删除订单信息等操作,如图5-13所示。
在这里插入图片描述

图5-13订单管理界面图

5.2.3本章小结
在本章中对系统的开发和应用环境进行说明,这些内容为下一章测试时的环境搭建提供依据。本章还通过文字说明和截图的方式对系统应用的界面做了简要介绍。

6系统测试

系统测试是针对整个美食推荐进行的测试,通过测试验证整个系统是否正确满足了前面需求分析篇章中的所有需求,测试系统的性能和功能是否与预想的一致,进而提高系统的稳定性和可靠性[15]。同时,通过合理的测试可以发现系统中存在的问题,以防止系统在正式投入使用后出现故障,影响系统使用者工作的顺利进行。系统测试的的主要方法有白盒测试和黑盒测试,本章节将采用黑盒测试法,从系统的功能和性能两方面入手进行测试。
6.1 系统测试目的
在一个可靠的软件系统开发过程中,系统测试是其中重要的一环,有时在一套大型的软件系统中一个小故障就可能带来严重后果。虽然不存在完全没有问题的软件,但是可以通过全面系统的测试尽可能的发现漏洞,并在系统投入使用前修复漏洞,尽可能减小在实际使用中系统发生故障的概率[16]。

6.2 系统测试环境
为了使测试结果更加可靠,需要模拟实际的系统应用场景来搭建测试环境。下表列出了系统测试环境的组成部分。
表6-1系统测试环境组成
硬件或软件 型号以及版本
操作系统 Windows10
数据库 MySQL
浏览器 Chrome
测试网络 4G热点
6.3系统测试用例
1.页面跳转测试
目的测试是测试系统的不同功能页面间能否正常准确跳转,测试结果如下表。
表6-2首页跳转表
编号 操作 预期结果 测试结果
1 点击用户管理 跳转相应用户管理界面 成功跳转管理界面
2 点击登录 跳转至初始界面 成功跳转初始界面
3 点击注册 跳转到注册界面 成功跳转注册界面

2.用户登录功能测试
测试登录注册功能的正确性以及用户错误登录时的系统反馈,测试结果如下表所示。
表6-3 注册登陆页面测试表
编号 操作 预期结果 测试结果
1 点击注册,输入新的用户名密码 注册成功 注册成功
2 使用注册成功的用户名进行登录 登陆成功 登录成功
3 使用错误用户名登录 显示账号或密码错误 提示“账号或密码错误”
4 用户名为空进行登录 显示用户名不能为空 提示“用户名不能为空”

6.4本章小结
本章旨在进一步的完善系统,为此进行了系统测试,通过测试验证了系统运行的正确性和可靠性,根据测试结果也进一步完善了协同过滤算法美食推荐小程序的功能。

结 论

本文对协同过滤算法美食推荐小程序的实现进行了分析设计,并给予分析设计的内容实现了协同过滤算法美食推荐小程序。在论文开端,通过对现实背景的分析论述,证明了协同过滤算法美食推荐小程序的应用可行性和现实意义。之后我们对系统实现所采用的技术进行研究说明,然后结合美食推荐日常管理工作的实际情况,提出了系统实现要满足的需求,并详细叙述了这些需求的具体内容以及将要应用系统的不同使用者的业务流程,这些是协同过滤算法美食推荐小程序能够正确实现功能的基本前提和依据,后续的设计与实现都将围绕需求中的内容展开。接着开始进行系统设计,首先进行系统架构设计,采用了当下主流的B/S结构,并在表现层使用了B/C设计模式,将整个系统分层,方便了系统的开发,降低了系统功能扩充的维护成本。然后,对数据库进行设计,将所有数据表列出。最后,我们将协同过滤算法美食推荐小程序实现,并进行测试。
在整个系统的设计与实现过程中,除了应用在学校中学到的知识外还学习了新的技术,使我在整合已有知识的同时,拓宽了自己的知识面,增加了自己的技能点。这个过程必然不是一帆风顺的,其中有许多同学和老师的帮助,所以这次毕业设计是十分愉快的一次经历。

参考文献

[1]张敏. 昆明市康驰协同过滤算法美食推荐小程序的设计与实现[D].电子科技大学,2019.
[2]崔文明. 海东宜达社区业务管理系统的设计与实现[D].北京工业大学,2020.
[3]刘辉兰. 基于B/S的协同过滤算法美食推荐小程序的研究与实现[D].广西大学,2019.
[4]栾雪莲. 社区培训管理系统设计与实现[D].黑龙江大学,2020.
[5]张乃勇. 协同过滤算法美食推荐小程序的设计与实现[D].电子科技大学,2021.
[6]赵庆东. 本溪卧龙协同过滤算法美食推荐小程序的设计与实现[D].电子科技大学,2020.
[7]web应用开发中的springboot框架设计[J]. 贺雪梅. 电子世界. 2019(01).
[8]springboot框架在模型层的应用及原理[J]. 温立辉. 福建电脑. 2020(05).
[9]大型网站分布式架构的研究和应用[J]. 张玛丽. 山西电子技术. 2021(02).
[10]我国中小企业信息化的思考与探索[J]. 胡磊. 企业经济. 2019(11).
[11]史济民,顾春华,李昌武,苑荣.软件工程——原理、方法与应用.北京:高等 教育出版社,2019.
[12]黄光奇。Web数据库互连技术开发指南.北京:国防工业出版社,2020.
[13]Cook, Guy. Principles & Practice in Applied Linguistics. Oxford: Oxford University Press. 2019.
[14]Stern, H.H. Issues and Options in Language Teaching. Oxford: Oxford University Press. 2019.
[15] Research and application of Web System Based on springboot framework [J] Zou Hongting Journal of Hunan Institute of Technology (NATURAL SCIENCE EDITION) 2019(01).

致 谢

毕业设计是我在大学校园中的最后一项内容了,毕业设计结束的那天也意味着我的大学生活的结束,所以在做毕业设计的时候我的内心十分复杂,因为大学生活对我来说是十分幸福的一段时光。在大学我遇到了很好的老师和同学,他们身上有很多吸引我值得我学习的特质,在和他们的相处中我也在不断完善自己,所以只是和他们相遇相识就已经让我很开心很感谢了。包括在完成毕业论文的过程中,老师也十分耐心的给予同学们耐心的指导,在我们不自信和受挫的时候也一直鼓励我们、相信我们,在毕业论文的写作遇到瓶颈的时候,还有很好的同学彼此沟通,又或者是一起去打球,往往使我感到放松并且产生新的思路。毕业后的分离总是难免的,但老师同学们带给我的成长是无法磨灭的,所以真心地感恩遇到过的这些优秀的人,我相信他们未来的生活必将精彩,我也由衷的祝福他们,我将继续努力,希望有一天能再见到他们,我能成为更优秀的自己,开心的和他们打招呼,在一起怀念大学的美好时光。

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

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

相关文章

【SQL Server】实验四 数据更新

1 实验目的 掌握SQL数据更新语句的基本使用方法,如UPDATE、DELETE、INSERT。掌握更新语句条件中的嵌套查询使用方法。 2 实验内容 2.1 掌握SQL更新语句的基本使用方法 INSERT基本语句。UPDATE基本语句。DELETE基本语句。 2.2 掌握SQL更新语句的高级使用方法 …

SimpleDateFormat类 --java学习笔记

SimpleDateFormat 代表简单日期格式化,可以用来把日期对象、时间毫秒值格式化成我们想要的形式 常见构造器和方法: pattern 代表需要应用的时间格式—— 时间格式的常见符号: 时间格式的应用举例: import java.text.SimpleDate…

(二)丶RabbitMQ的六大核心

一丶什么是MQ Message Queue(消息队列)简称MQ,是一种应用程序对应用程序的消息通信机制。在MQ中,消息以队列形式存储,以便于异步传输,在MQ中,发布者(生产者)将消息放入队列&#xff…

基于信号分解的几种一维时间序列降噪方法(MATLAB R2021B)

自适应信号分解算法是一种适合对非平稳信号分析的方法,它将一个信号分解为多个模态叠加的形式,进而可以准确反应信号中所包含的频率分量以及瞬时频率随时间变化的规律。自适应信号分解算法与众多“刚性”方法(如傅里叶变换,小波变换)不同&…

最后十几天!未备案小程序将会被清退

微信官方通知 2023年8月9日,微信公众平台发布了“关于开展微信小程序备案的通知”: 去年就已经在逐步推进备案了,新注册小程序必须备案才可以上架。若微信小程序已上架,须于2024年3月31日前完成备案,逾期未完成备案&a…

苹果大模型MM1强势来袭!300亿参数所向披靡

功能展示 左图问:图片中有多少个苹果? 苹果大模型答:7个 左图问:这些州中哪一个是最北的? 回答:Delaware 追问:其他的州是什么? 回答:Arizona, Oklahoma, North Caro…

Ant Design Pro complete版本的下载及运行

前言 complete 版本提供了很多基础、美观的页面和组件,对于前端不太熟练的小白十分友好,可以直接套用或者修改提供的代码完成自己的页面开发,简直不要太爽。故记录一些下载的步骤。 环境 E:\code>npm -v 9.8.1E:\code>node -v v18.1…

[HTML]Web前端开发技术24(HTML5、CSS3、JavaScript )JavaScript基础JavaScript,Netscape,事件处理代码,外部JS——喵喵画网页

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…

Java学习笔记(12)

包 导包 Final 不能被改变的,修饰方法 类 变量 方法不能被重写 类不能被继承 变量,赋值一次,变成常量,不能再被赋值 final修饰引用数据类型,地址值不能变,里面的内容可以变 字符串是不可变的 源码中使…

ubuntu(20.04)-安装JAVA环境-IDEA

1.下载IDEA 2.解压文件 sudo tar -zxvf idealC-2022.2.3.tar.gz -C /opt 3.添加环境变量: .vim ~/.bashrc export IDEA_HOME/opt/ideaIC-2022.2.3/ export PATH${IDEA_HOME}/bin:$PATH source ~/.bashrc 4.启动: cd /opt/ideaIC-2…

安装jupyter报错:404 GET /static/notebook/4131.bundle.js

1、报错安装过程 我直接是pip install jupyter 进行的安装,如下,安装的版本是7.1.2 2、报错结果 运行jupyternotebook后报错:404 GET /static/notebook/4131.bundle.js (3bea7012d1534d70a935c3c193d9308d127.0.0.1) 5.70ms refererht…

cf(163)

D. Tandem Repeats? 找最长串联字串的长度 #include<iostream> #include<algorithm> #include<cstring> #include<queue> #include<vector> #include<map> using namespace std; typedef pair<int,int>PII; typedef long long ll…

ThingsBoard Edge 安装部署

文章目录 一、概述1.官方文档2.部署说明3.安装准备3.1. 克隆服务器3.2.安装 Docker3.3.安装 Java 113.4.安装 PostgreSQL3.5.下载安装包 二、安装部署1.创建 Edge 实例2.创建数据库3.Edge 服务安装3.1.安装服务3.2.配置 Edge3.3.运行安装脚本3.4.重新启动服务 4.访问 Edge5.故障…

基于ssm+layui的图书管理系统

基于ssmlayui的图书管理系统 账户类型分为&#xff1a;管理员&#xff0c;用户管理员私有功能用户私有功能公共功能技术栈功能实现图 视频演示 账户类型分为&#xff1a;管理员&#xff0c;用户 图书管理系统主要登录账户类型为管理员账户与用户账户 管理员私有功能 账户管理…

算法的渐进时间复杂度

T(n) = O(F(n)) T(n):Time 渐进时间复杂度 O:正比例关系 F(n):代码执行次数 只要代码执行的次数越来越多 所耗费的时间也就越来越高 常见的5种: O(n^2) O(n logn) O(n) O(logn) O(1):不管重复多少次1次也是这个时间,10次也是这个时间。 时间复杂度排序:由小到…

关于如何在BIOS中设置引导顺序,看这篇文章就差不多了

前言 更改计算机上“可引导”设备(如USB端口、软盘驱动器或光盘驱动器中的硬盘驱动器或可引导介质)的引导顺序非常容易。 为什么要更改引导顺序 有几个场景需要更改引导顺序,例如启动一些数据销毁工具和可引导防病毒程序,以及安装操作系统。 BIOS设置实用程序用于更改引…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:ScrollBar)

滚动条组件ScrollBar&#xff0c;用于配合可滚动组件使用&#xff0c;如List、Grid、Scroll。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 可以包含单个子组件。 接口 ScrollBar(val…

C++ 入门篇

目录 1、了解C 2、C关键字 2、命名空间 2.1 命名空间的定义 2.2 命名空间的使用 3. C输入与输出 4.缺省参数 4.1 缺省参数的概念 4.2 缺省参数的分类 5. 函数重载 5.1 函数重载的概念 5.2 C中支持函数重载的原理--名字修饰 6. 引用 6.1 引用概念 6.2 引用…

【Miniconda】Linux系统中 .condarc 配置文件的位置一般在哪里

【Miniconda】Linux系统中 .condarc 配置文件的位置一般在哪里 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望得到…

Elasticsearch 索引库操作 文档操作

索引库就类似数据库表&#xff0c;mapping映射就类似表的结构。要向es中存储数据&#xff0c;必须先创建“库”和“表”。 mapping映射属性 mapping是对索引库中文档的约束&#xff0c;常见的mapping属性包括&#xff1a; type&#xff1a; 字段数据类型&#xff0c;常见的简…