文章目录
具体实现截图
可定制亮点创新点->协同过滤算法
1.协同过滤算法(Collaborative Filtering, CF)是一种广泛应用的推荐算法,它通过分析和挖掘用户的历史行为数据,发现用户之间的相似性或者物品之间的相似性,从而为用户推荐他们可能感兴趣的物品。我们所使用的协同过滤算法是基于用户的协同过滤(User-Based Collaborative Filtering, UserCF),它的原理是首先计算用户之间的相似度,然后根据相似用户的行为和评分来预测目标用户对未评分物品的兴趣程度。相似度计算方法:包括余弦相似度、皮尔逊相关系数、杰卡德相似系数等。
首页推荐会按用户相似行为推荐,比如用户1购买商品A和商品B,用户2购买商品C,然后用户3登录购买商品A,那么此时用户3的行为跟用户1是最像的(因为他们都买了商品A),系统就会先推荐商品B,而不是推荐商品C。
1、登录账号后收藏或者购买商品,会优先推荐同类型用户收藏或者购买过的商品
2、协同过滤算法使用条件,有购物车或者有收藏功能的情况下才可以使用
项目和技术介绍
后端语言支持以下技术栈:
1 java(SSM/springboot/springcloud微服务架构)-idea/eclipse
2.Nodejs+Vue.js -vscode
3.python(flask/django)–pycharm/vscode
4.php(thinkphp/laravel)-hbuilderx
数据库工具:Navicat/SQLyog等都可以
前端开发框架:vue.js
数据库 mysql 版本不限
微信开发者工具/hbuiderx
可定制亮点创新点->普通算法推荐
点击次数推荐:首页推荐是按点击次数排序的,点击次数高的会排在最前面 收藏推荐:首页推荐是按收藏类型排序的,收藏一种类型后该类型会排在最前面
通过用户行为相似度来推荐物品,比如:用户1购买商品A和商品B,用户2购买商品C,然后用户3登录购买商品A,那么此时用户3的行为跟用户1是最像的(因为他们都买了商品A),系统就会先推荐商品B,而不是推荐商品C,只要用户通过购买或者收藏都可以实现协同算法的推荐。适用于所有的场景
这段代码实现了一个基于用户的协同过滤算法(User-Based Collaborative Filtering)。协同过滤是一种广泛使用的推荐系统算法,它通过分析用户之间的相似性或者物品之间的相似性来进行推荐。
可定制亮点创新点->最短路线推荐算法
使用场景:最短路线推荐使用场景包括但不限于以下方面
交通出行:在城市中,人们需要从一个地方快速到达另一个地方。通过最短路线算法,可以规划出最快捷的行驶路径,减少旅行时间和油耗。
物流配送:物流公司需要高效地分配货物,确保货物能够以最低的成本和最快的速度送达目的地。最短路线算法可以帮助确定最佳的配送路径。
电力网络:在电力网络中,电线杆和变电站可以视为节点,电线可以视为边。最短路线算法有助于优化电线布局,减少电力损耗和成本。
社交网络:在社交网络中,用户之间的关注关系可以视为边,用户本身可以视为节点。最短路线算法可以用于推荐好友或关注对象,增强用户间的连接。
计算机网络:在计算机网络中,数据包需要在各个路由器之间传输。最短路线算法可以用于确定数据包的最优传输路径,提高网络效率。
应急响应:在紧急情况下,如火灾、地震等,救援队伍需要尽快到达事发地点。最短路线算法可以帮助规划出最快的救援路径,提高救援效率。
游戏开发:在电子游戏中,角色可能需要在地图上移动到特定位置。最短路线算法可以用于计算角色的最佳移动路径,提升游戏体验。
机器人导航:在自动驾驶或机器人导航中,最短路线算法可以帮助机器人规划出避开障碍物的最优路径,实现自主导航。
旅游规划:在旅游行业中,游客可能需要从一个景点前往另一个景点。最短路线算法可以提供最佳旅游路线建议,帮助游客节省时间和费用。
可定制亮点创新点->标签算法
标签算法通过一系列复杂的计算和分析过程,将数据或文本内容自动分配到预定义的类别或标签中。用户注册的时候可以设定喜欢的标签,登录会根据选择的标签进行算法推荐。
1.在个人中心选择标签类型后首页会优先推荐选择的类型
2.标签使用条件,所有需要标签推送的都可以使用,标签算法跟收藏功能有冲突,使用标签算法的列表就不能使用收藏功能了
uniapp+hbuilderx+mysql
HBuilderX,H 是 HTML 的首字母,Builder 是构造者,X 是 HBuilder 的下一代版本。我们也简称 HX。 HX 是轻如编辑器、强如 IDE 的合体版本。代表了新一代开放服务的方向,基于持续更新的云知识库的高效开放工具,让开发者更加专注于解决问题本身,让技术服务变得更智能。
uni-app(uni,读you ni,是统一的意思) [2]是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、鸿蒙(HarmonyOS)以及各种小程序、快应用等多个平台。 [1-2]
MySQL使用的SQL语言是访问数据库较为常用的标准化语言,它可以通过一些简单的操作从而实现对复杂的功能进行查询,并且具有良好的可扩展性和可维护性等优点,MySQL软件非常的适合用作中小型网站发展的网站数据库,因为它的体积小,速度快,总体拥有成本低,尤其是开放源码。
小程序框架以及目录结构介绍
小程序自身分为两个主要部分独立运行:view 模块和 service 模块。在开发者工具中,它们独立运行于不同的 webivew tag 中。
view 模块负责前端界面显示,它由 wxml 和 wxss 转换后代码以及微信提供相关辅助模块组成。 一个 view 模块对应一个 页面, 小程序支持同时多个 view 存在。
service 模块负责后台逻辑,它由 js 代码以及微信提供的相关辅助模块组成。 一个应用只有一个 service 进程,它同样也是一个页面。它在程序生命周期内后台运行,service 模块通过与 view 模块实现不同但接口格式一样的微信JSBridge 对象跟后台通信。
小程序需要使用微信开发者工具来进行开发,同时最常用的参考文档是微信小程序官方文档。在开发者工具中包含了模拟器、调试器等,内容很全面。也可以用云模式来在腾讯云进行后台开发。使得开发者不用搭建数据库等,专注于逻辑设计,简化后台设计,另外为了更好的展示小程序可以用一些工具插件,例如wx-charts和echarts等,这两个都可用于图形化展示统计数据。
java类核心代码部分展示
@RestController
@RequestMapping("/yuangong")
public class YuangongController {
@Autowired
private YuangongService yuangongService;
@Autowired
private TokenService tokenService;
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
YuangongEntity user = yuangongService.selectById(id);
return R.ok().put("data", user);
}
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", username));
if(user==null || !user.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(), username,"yuangong", "员工" );
return R.ok().put("token", token);
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", username));
if(user==null) {
return R.error("账号不存在");
}
user.setMima("123456");
yuangongService.updateById(user);
return R.ok("密码已重置为:123456");
}
/**
* 注册
*/
@IgnoreAuth
@RequestMapping("/register")
public R register(@RequestBody YuangongEntity yuangong){
//ValidatorUtils.validateEntity(yuangong);
YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", yuangong.getYuangonggonghao()));
if(user!=null) {
return R.error("注册用户已存在");
}
Long uId = new Date().getTime();
yuangong.setId(uId);
yuangongService.insert(yuangong);
return R.ok();
}
/**
* 退出
*/
@RequestMapping("/logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
论文写作大纲参考
目 录
摘 要 I
Pick to I
1绪论 1
1.1项目研究的背景
1.2开发意义
1.3项目研究现状及内容
1.4论文结构
2开发技术介绍
2.1微信小程序技术
2.2 编程语言
2.3 MySQL环境配置
2.4uniapp框架
2.5微信开发者工具
3系统分析
3.1 系统可行性分析
3.1.1 经济可行性
3.1.2 技术可行性
3.1.3 运行可行性
3.1.4 操作可行性
3.2 需求分析
3.3流程的分析
3.3.1 用户管理流程
3.3.2 系统登录流程图
3.3.3 添加信息流程
3.3.4 删除信息流程
3.4微信序的性能
4系统设计
4.1 系统结构设计
4.2 数据库设计
4.2.1 数据库表说明
4.2.2 数据库逻辑设计
5系统详细设计
5.1 小程序端
5.2管理员功能模块
6系统测试
6.1 功能测试
6.2 可用性测试
6.3 性能测试
6.4 测试结果分析
7总结与心得体会
7.1 总结
7.2 心得体会
参考文献
致 谢
源码获取/详细视频演示
需要成品,加我们的时候,记得把页面截图发下我,方便查找相应的源代码和演示视频。
如果你对本设计介绍不满意或者想获取更详细的信息
文章最下方名片联系我即可~