当前位置:   article > 正文

idea开发 java web 酒店推荐系统bootstrap框架开发协同过滤算法web结构java编程计算机网页

idea开发 java web 酒店推荐系统bootstrap框架开发协同过滤算法web结构java编程计算机网页

一、源码特点
 java 酒店推荐推荐系统是一套完善的完整信息系统,结合java web开发和bootstrap UI框架完成本系统 采用协同过滤算法进行推荐 ,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
前段主要技术 css jquery  bootstrap UI框架
后端主要技术 java jsp
数据库 mysql
开发工具 IDEA  JDK1.8

java web基于协同过滤酒店推荐系统1


二、功能介绍
前台功能:
1)系统首页
2)公告浏览
3)酒店浏览、查看酒店详情 ,系统并记录用户浏览记录,系统采用协同过滤算法,根据用户的行为习惯进行推荐其他酒店
4)客房预定、入住、查看订单
5)用户注册、登录


后台功能:
(1)管理员管理:对管理员信息进行添加、删除、修改和查看
(2)用户管理:对用户信息进行添加、删除、修改和查看
(3)员工管理:对员工信息进行添加、删除、修改和查看
(4)公告管理:对公告信息进行添加、删除、修改和查看
(5)酒店管理:对酒店信息进行添加、删除、修改和查看
(6)浏览管理:对浏览信息进行添加、删除、修改和查看
(7)客房类型管理:对客房类型信息进行添加、删除、修改和查看
(8)客房管理:对客房信息进行添加、删除、修改和查看
(9)预定管理:对预定信息进行添加、删除、修改和查看
(10)入住管理:对入住信息进行添加、删除、修改和查看
(11)商品管理:对商品信息进行添加、删除、修改和查看
(12)订单管理:对订单信息进行删除、修改和查看
(13)订单明细管理:对订单明细信息进行删除、修改和查看
(14)用户登录、个人信息修改

数据库设计

  1. CREATE TABLE `gly` (
  2. `glyid` int(11) NOT NULL auto_increment,
  3. `yhm` VARCHAR(40) default NULL COMMENT '用户名',
  4. `mm` VARCHAR(40) default NULL COMMENT '密码',
  5. `xm` VARCHAR(40) default NULL COMMENT '姓名', PRIMARY KEY (`glyid`)
  6. ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
  7. CREATE TABLE `yonghu` (
  8. `yhid` int(11) NOT NULL auto_increment,
  9. `yhm` VARCHAR(40) default NULL COMMENT '用户名',
  10. `mm` VARCHAR(40) default NULL COMMENT '密码',
  11. `xm` VARCHAR(40) default NULL COMMENT '姓名',
  12. `lxdh` VARCHAR(40) default NULL COMMENT '联系电话',
  13. `lxdz` VARCHAR(40) default NULL COMMENT '联系地址', PRIMARY KEY (`yhid`)
  14. ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
  15. CREATE TABLE `yuangong` (
  16. `ygid` int(11) NOT NULL auto_increment,
  17. `yhm` VARCHAR(40) default NULL COMMENT '用户名',
  18. `mm` VARCHAR(40) default NULL COMMENT '密码',
  19. `xm` VARCHAR(40) default NULL COMMENT '姓名',
  20. `lxdh` VARCHAR(40) default NULL COMMENT '联系电话',
  21. `jd` VARCHAR(40) default NULL COMMENT '酒店', PRIMARY KEY (`ygid`)
  22. ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
  23. CREATE TABLE `gonggao` (
  24. `ggid` int(11) NOT NULL auto_increment,
  25. `bt` VARCHAR(40) default NULL COMMENT '标题',
  26. `nr` VARCHAR(40) default NULL COMMENT '内容',
  27. `fbsj` VARCHAR(40) default NULL COMMENT '发布时间', PRIMARY KEY (`ggid`)
  28. ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
  29. CREATE TABLE `jiudian` (
  30. `jdid` int(11) NOT NULL auto_increment,
  31. `jdmc` VARCHAR(40) default NULL COMMENT '酒店名称',
  32. `wz` VARCHAR(40) default NULL COMMENT '位置',
  33. `tp` VARCHAR(40) default NULL COMMENT '图片',
  34. `lxdh` VARCHAR(40) default NULL COMMENT '联系电话', PRIMARY KEY (`jdid`)
  35. ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
  36. CREATE TABLE `liulan` (
  37. `llid` int(11) NOT NULL auto_increment,
  38. `jd` VARCHAR(40) default NULL COMMENT '酒店',
  39. `yh` VARCHAR(40) default NULL COMMENT '用户',
  40. `llsj` VARCHAR(40) default NULL COMMENT '浏览时间', PRIMARY KEY (`llid`)
  41. ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

代码设计

  1. int N = scanner.nextInt();
  2. int[][] sparseMatrix = new int[N][N];//建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】
  3. Map<String, Integer> userItemLength = new HashMap();//存储每一个用户对应的不同物品总数 eg: A 3
  4. Map<String, Set<String>> itemUserCollection = new HashMap();//建立物品到用户的倒排表 eg: a A B
  5. Set<String> items = new HashSet();//辅助存储物品集合
  6. Map<String, Integer> userID = new HashMap();//辅助存储每一个用户的用户ID映射
  7. Map<Integer, String> idUser = new HashMap();//辅助存储每一个ID对应的用户映射
  8. System.out.println("Input user--items maping infermation:<eg:A a b d>");
  9. scanner.nextLine();
  10. for(int i = 0; i < N ; i++){//依次处理N个用户 输入数据 以空格间隔
  11. String[] user_item = scanner.nextLine().split(" ");
  12. int length = user_item.length;
  13. userItemLength.put(user_item[0], length-1);//eg: A 3
  14. userID.put(user_item[0], i);//用户ID与稀疏矩阵建立对应关系
  15. idUser.put(i, user_item[0]);
  16. //建立物品--用户倒排表
  17. for(int j = 1; j < length; j ++){
  18. if(items.contains(user_item[j])){//如果已经包含对应的物品--用户映射,直接添加对应的用户
  19. itemUserCollection.get(user_item[j]).add(user_item[0]);
  20. }else{//否则创建对应物品--用户集合映射
  21. items.add(user_item[j]);
  22. itemUserCollection.put(user_item[j], new HashSet<String>());//创建物品--用户倒排关系
  23. itemUserCollection.get(user_item[j]).add(user_item[0]);
  24. }
  25. }
  26. }
  27. System.out.println(itemUserCollection.toString());
  28. //计算相似度矩阵【稀疏】
  29. Set<Entry<String, Set<String>>> entrySet = itemUserCollection.entrySet();
  30. Iterator<Entry<String, Set<String>>> iterator = entrySet.iterator();
  31. while(iterator.hasNext()){
  32. Set<String> commonUsers = iterator.next().getValue();
  33. for (String user_u : commonUsers) {
  34. for (String user_v : commonUsers) {
  35. if(user_u.equals(user_v)){
  36. continue;
  37. }
  38. sparseMatrix[userID.get(user_u)][userID.get(user_v)] += 1;//计算用户u与用户v都有正反馈的物品总数
  39. }
  40. }
  41. }
  42. System.out.println(userItemLength.toString());
  43. System.out.println("Input the user for recommendation:<eg:A>");
  44. String recommendUser = scanner.nextLine();
  45. System.out.println(userID.get(recommendUser));
  46. //计算用户之间的相似度【余弦相似性】
  47. int recommendUserId = userID.get(recommendUser);
  48. for (int j = 0;j < sparseMatrix.length; j++) {
  49. if(j != recommendUserId){
  50. System.out.println(idUser.get(recommendUserId)+"--"+idUser.get(j)+"相似度:"+sparseMatrix[recommendUserId][j]/Math.sqrt(userItemLength.get(idUser.get(recommendUserId))*userItemLength.get(idUser.get(j))));
  51. }
  52. }
  53. //计算指定用户recommendUser的物品推荐度
  54. for(String item: items){//遍历每一件物品
  55. Set<String> users = itemUserCollection.get(item);//得到购买当前物品的所有用户集合
  56. if(!users.contains(recommendUser)){//如果被推荐用户没有购买当前物品,则进行推荐度计算
  57. double itemRecommendDegree = 0.0;
  58. for(String user: users){
  59. itemRecommendDegree += sparseMatrix[userID.get(recommendUser)][userID.get(user)]/Math.sqrt(userItemLength.get(recommendUser)*userItemLength.get(user));//推荐度计算
  60. }
  61. System.out.println("The item "+item+" for "+recommendUser +"'s recommended degree:"+itemRecommendDegree);
  62. }
  63. }

三、注意事项
1、管理员账号:admin密码:admin 数据库配置文件DBO.java
2、开发环境为IDEA开发,数据库为mysql,使用java语言开发。
3、数据库文件名是jspjdtj.sql 系统名称jdtj
4、地址:qt/index.jsp 

四系统实现


 

代码下载

https://download.csdn.net/download/qq_41221322/89064345

需要源码 其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号