package com.util;
import java.sql.ResultSet;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
//协同算法
public class Data {
static String[] films =null;//{ "十面埋伏", "一路向北", "那些年我们一起追过的女孩", "CCAV", "非诚勿扰" };//用户
static String[] users = null;//{ "aaa", "bbb", "ccc", "ddd", "葛二蛋" }; 商品
static Map score = new HashMap();
static Set userSet = new HashSet();
static Set filmSet = new HashSet();
static {
DBO db=new DBO();
String sql="";
ResultSet rs=null;
///商品
int i=0;
sql="select * from jiaocai where 1=1";
try{
rs=db.query(sql);
while(rs.next()){
userSet.add(rs.getString("jcid"));//商品
// users[i]=rs.getString("spid");
i++;
}
}catch(Exception e){
e.printStackTrace();
}
users=new String[i-1];
sql="select * from xuesheng where 1=1";
i=0;
try{
rs=db.query(sql);
while(rs.next()){
filmSet.add(rs.getString("yhm"));//用户
//films[i]=rs.getString("yhm");
i++;
}
}catch(Exception e){
e.printStackTrace();
}
films=new String[i-1];
score = getScore();
}
public static String outNearbyUserList(String user) {
DBO db=new DBO();
Map scores = new HashMap();
String sql="";
ResultSet rs=null;
///商品
int i=0;
sql="select * from jiaocai where 1=1";
try{
rs=db.query(sql);
while(rs.next()){
// userSet.add(rs.getString("spid"));//商品
// users[i]=rs.getString("spid");
// i++;
if (rs.getString("jcid").equalsIgnoreCase(user)) {
continue;
}
double score = getOSScore(user, rs.getString("jcid"));
System.out.println("score="+score);
scores.put(rs.getString("jcid"), String.valueOf(score));
}
db.close();
}catch(Exception e){
e.printStackTrace();
}
/*
for (String tempUser : users) {
if (tempUser.equalsIgnoreCase(user)) {
continue;
}
double score = getOSScore(user, tempUser);
System.out.println("score="+score);
scores.put(tempUser, score);
}
*/
System.out.println(scores.toString());
TreeMapTest mp=new TreeMapTest();
String a= mp.getMin(scores);
System.out.println("a="+a);
return a;
}
private static Double getOSScore(String user1, String user2) {
HashMap user1Score = (HashMap) score.get(user1);
HashMap user2Score = (HashMap) score.get(user2);
double totalscore = 0.0;
Iterator it = user1Score.keySet().iterator();
while (it.hasNext()) {
String film = (String) it.next();
int a1 = (Integer) user1Score.get(film);
int a2 = (Integer) user1Score.get(film);
int b1 = (Integer) user2Score.get(film);
int b2 = (Integer) user2Score.get(film);
int a = a1 * a2 - b1 * b2;
//System.out.println(Math.abs(a));
totalscore += Math.sqrt(Math.abs(a));
}
return totalscore;
}
private static Map getScore() {
Map score = new HashMap();
// aaa
HashMap tempScore = null;
DBO db=new DBO();
String sql="select * from jiaocai ";
String sq="";
ResultSet rs=null;
ResultSet r=null;
ResultSet rr=null;
db.open();
int num=0;
try{
rs=db.query(sql);
int j=0;
while(rs.next()){
tempScore= new HashMap();
sql="select * from xuesheng ";
db.open();
r=db.query(sql);
while(r.next()){
sq="select count(1) as num from liulan where jc='"+rs.getString("jcid")+"' and yh='"+r.getString("yhm")+"'";
db.open();
rr=db.query(sq);
if(rr.next()){
num=rr.getInt("num");
}
tempScore.put(r.getString("yhm"), num);
}
score.put(rs.getString("jcid"), tempScore);
j++;
}
}catch(Exception e){
e.printStackTrace();
}finally{
db.close();
}
return score;
}
public static void main(String[] args) {
//
System.out.println( "1号 与其他人的相似度(分值越低越相似):");
Data.outNearbyUserList("11");
//Data.outNearbyUserList(Data.users[0].length());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
一、源码特点 JSP 教材管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 二、功能介绍 (1)管理员管理:对管理员信息进行添加、删除、修改和查看 (2)教师管理:对教师信息进行添加、删除、修改和查看 (3)学生管理:对学生信息进行添加、删除、修改和查看 (4)班级管理:对班级信息进行添加、删除、修改和查看 (5)教材管理:对教材信息进行添加、删除、修改和查看 等其他功能 三、注意事项 1、管理员账号:admin密码:admin 数据库配置文件DBO.java 2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 3、数据库文件名是jspjcgl.sql ,系统名称jcgl 4、系统首页地址:http://127.0.0.1:8080/jcgl/login.jsp 不含人工服务 需要联系作者购买
资源推荐
资源详情
资源评论
收起资源包目录
jsp教材管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目源码
(534个子文件)
xgxt_login.css.bak 1KB
index.jsp.bak 1KB
Data.class 5KB
DBO.class 3KB
StaticMethod.class 3KB
TreeMapTest.class 2KB
TreeMapTest$2.class 1KB
TreeMapTest$1.class 1KB
.classpath 526B
easyui.css 51KB
easyui.css 51KB
easyui.css 51KB
easyui.css 50KB
easyui.css 47KB
tabs.css 8KB
tabs.css 8KB
tabs.css 8KB
tabs.css 8KB
tabs.css 6KB
datagrid.css 5KB
datagrid.css 5KB
datagrid.css 5KB
datagrid.css 5KB
datagrid.css 5KB
linkbutton.css 4KB
linkbutton.css 4KB
linkbutton.css 4KB
linkbutton.css 4KB
linkbutton.css 4KB
color.css 4KB
calendar.css 4KB
calendar.css 4KB
calendar.css 4KB
calendar.css 4KB
calendar.css 4KB
tree.css 3KB
tree.css 3KB
tree.css 3KB
tree.css 3KB
tree.css 3KB
menu.css 3KB
top.css 3KB
right.css 3KB
panel.css 3KB
panel.css 3KB
panel.css 3KB
panel.css 3KB
panel.css 2KB
icon.css 2KB
login.css 2KB
window.css 2KB
window.css 2KB
window.css 2KB
window.css 2KB
menu.css 2KB
menu.css 2KB
menu.css 2KB
menu.css 2KB
menu.css 2KB
tooltip.css 2KB
tooltip.css 2KB
tooltip.css 2KB
tooltip.css 2KB
tooltip.css 2KB
menubutton.css 2KB
menubutton.css 2KB
menubutton.css 2KB
menubutton.css 2KB
menubutton.css 2KB
searchbox.css 2KB
searchbox.css 2KB
searchbox.css 2KB
searchbox.css 2KB
searchbox.css 2KB
textbox.css 2KB
textbox.css 2KB
textbox.css 2KB
textbox.css 2KB
textbox.css 2KB
window.css 2KB
layout.css 2KB
layout.css 2KB
layout.css 2KB
layout.css 2KB
layout.css 2KB
slider.css 2KB
slider.css 2KB
slider.css 2KB
slider.css 2KB
slider.css 2KB
spinner.css 1KB
spinner.css 1KB
spinner.css 1KB
spinner.css 1KB
spinner.css 1KB
pagination.css 1KB
pagination.css 1KB
pagination.css 1KB
pagination.css 1KB
pagination.css 1KB
共 534 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
qq_251836457
- 粉丝: 4212
- 资源: 559
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功