华北科技学院毕业设计
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 页
相关推荐: