第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/8/22 17:05:53 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

华北科技学院毕业设计

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文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c73fzx7mpc6670es7bbc8_7.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top