基于Knn算法的图书推荐系统(毕业设计)

2026/1/19 8:58:10

华北科技学院毕业设计

conn=odbcConnect(\ hotbookmsg=c()

sql.hotbookid=\ group by keyNum

order by count(*) desc\

hotbookid=sqlQuery(conn,sql.hotbookid) for(i in 1:10){

sql.getbook=paste(\ hotbookmsg=rbind(hotbookmsg,sqlQuery(conn,sql.getbook)) }

odbcClose(conn) na.omit(hotbookmsg) }

#根据书籍名称推荐

recFromBook=function(bName,user.item.matrix,distance){ library(RODBC) odbcDataSources()

conn=odbcConnect(\

sql.reader=paste(\ data=sqlQuery(conn,sql.reader) result=\

rec=knn.book.item(data$keyNum,user.item.matrix,distance,k=10) rec=na.omit(rec)#缺失值处理 for(i in 1:length(rec)){

sql.rec=paste(\ result=rbind(result,sqlQuery(conn,sql.rec)) }

odbcClose(conn) na.omit(result) }

#根据书籍编号推荐

recFromBookNum=function(bNum,user.item.matrix,distance){ library(RODBC) odbcDataSources()

conn=odbcConnect(\ result=\

rec=knn.book.item(bNum,user.item.matrix,distance,k=10) rec=na.omit(rec)#缺失值处理 for(i in 1:length(rec)){

sql.rec=paste(\ result=rbind(result,sqlQuery(conn,sql.rec)) }

odbcClose(conn) na.omit(result) }

#书目信息查询

BookMsg=function(bookNum){ library(RODBC) odbcDataSources()

conn=odbcConnect(\

sql.reader=paste(\ data=sqlQuery(conn,sql.reader) odbcClose(conn) na.omit(data) }

#个人推荐结果

recFromPerson=function(readerNum,user.item.matrix1=user.item.matrix,distance1=distance){

第 19 页 共 27 页

图书推荐系统

library(RODBC) odbcDataSources()

conn=odbcConnect(\ result=\

rec=knn.itembase(readerNum,user.item.matrix1,distance1,k=25,return.item.num=10) rec=na.omit(rec)#缺失值处理 for(i in 1:length(rec)){

sql.rec=paste(\ result=rbind(result,sqlQuery(conn,sql.rec)) }

odbcClose(conn) na.omit(result) }

2.Java端代码 BSC.java

package richard;

import java.awt.BorderLayout;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel;

import javax.swing.JScrollPane; import javax.swing.JTable;

import javax.swing.JTextField;

import org.rosuda.REngine.REXPMismatchException; import org.rosuda.REngine.Rserve.RserveException; public class BCS { public static void main(String[] args) throws RserveException { // UserWin user=new UserWin(); UserWind user2=new UserWind(); } }

class UserWin extends JFrame implements ActionListener{ pBDisp md; JTextField userNum; JButton button,button2; JLabel userMsg; JLabel comMsg; JTable userTable,comTable; Object name1[]={\编号\,\姓名\,\性别\,\等级\,\单位\,\班级\,\年级\}; Object name2[]={\标题\,\作者\,\出版社\,\出版日期\,\索书号\,\书目类型\}; Object data1[][]={}; Object data2[][]={}; JPanel pNorth,pCenter,pSouth; UserWin() throws RserveException{ md= new pBDisp(); userNum=new JTextField(20); button=new JButton(\查询\); button2=new JButton(\书目查询\); button.addActionListener(this); button2.addActionListener(this); userMsg=new JLabel(\用户信息\); comMsg=new JLabel(\相关推荐\); pNorth=new JPanel();

第 20 页 共 27 页

华北科技学院毕业设计

pCenter=new JPanel(); pSouth=new JPanel(); // userTable=new JTable(data1,name1); // comTable=new JTable(data2,name2); pNorth.add(new JLabel(\读者编号\)); pNorth.add(userNum); pNorth.add(button); pNorth.add(button2); // pCenter.add(new JScrollPane(userTable)); // pSouth.add(new JScrollPane(comTable)); add(pNorth,BorderLayout.NORTH); // add(pCenter,BorderLayout.CENTER); // add(pSouth,BorderLayout.SOUTH); setBounds(60,60,700,600); setVisible(true); setDefaultCloseOperation(DISPOSE_ON_CLOSE); validate(); } @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub if(arg0.getSource()==button){ try { md.getData(userNum.getText().trim()); Object[]

pMsg={md.getReaderNum(),md.getrName(),md.getSex(),md.getrRank(),md.getrUnit(),md.getrClass(),md.getrGrade()}; data1=new Object[1][7]; for(int i=0;i

第 21 页 共 27 页

图书推荐系统

}

}

catch (REXPMismatchException e) { // TODO Auto-generated catch block e.printStackTrace(); } }

if(arg0.getSource()==button2){ System.out.println(\哈哈\); }

BMsgWin.java

package richard;

import java.awt.BorderLayout;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel;

import javax.swing.JScrollPane; import javax.swing.JTable;

import javax.swing.JTextField;

import org.rosuda.REngine.REXPMismatchException; import org.rosuda.REngine.Rserve.RserveException; class UserWind extends JFrame implements ActionListener{ bDisp bdisp; JTextField bookNum; JButton button; JLabel bookMsg; JTable bookTable,comTable; Object name1[]={\标题\,\作者\,\出版社\,\出版日期\,\索书号\,\书目类型\}; Object name2[]={\标题\,\作者\,\出版社\,\出版日期\,\索书号\,\书目类型\}; Object data1[][]={}; Object data2[][]={}; JPanel pNorth,pCenter,pSouth; UserWind() throws RserveException{ bdisp=new bDisp(); bookNum=new JTextField(20); button=new JButton(\查询\); button.addActionListener(this); bookMsg=new JLabel(\书名\); pNorth=new JPanel(); pCenter=new JPanel(); pSouth=new JPanel(); pNorth.add(new JLabel(\书号\)); pNorth.add(bookNum); pNorth.add(button); add(pNorth,BorderLayout.NORTH); setBounds(60,60,700,600); setVisible(true); setDefaultCloseOperation(DISPOSE_ON_CLOSE); validate(); } @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub

第 22 页 共 27 页


基于Knn算法的图书推荐系统(毕业设计).doc 将本文的Word文档下载到电脑
搜索更多关于: 基于Knn算法的图书推荐系统(毕业设计) 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219