java课程设计图书馆管理系统.docx
- 文档编号:30530734
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:30
- 大小:26.11KB
java课程设计图书馆管理系统.docx
《java课程设计图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《java课程设计图书馆管理系统.docx(30页珍藏版)》请在冰豆网上搜索。
java课程设计图书馆管理系统
图书馆管理系统课程设计报告
1目录
引言----------------------------------------------------------------2
正文----------------------------------------------------------------3
结论和建议----------------------------------------------------------4
致谢----------------------------------------------------------------5
参考文献------------------------------------------------------------5
附录------------------------------------------------------------5—20
2引言
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
图书管理系统就是为了管理好图书馆信息而设计的。
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。
根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
数据处理手工操作,工作量大,出错率高,出错后不易更改。
图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
如要对很长时间以前的图书进行更改就更加困难了。
基于这些问题,有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
3正文
3.1功能需求分析
(1)作为学生对图书管理系统的要求有:
1. 能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。
2. 能够方便地借阅图书、续借图书、归还图书。
3. 能够查询自己的基本资料、借阅图书情况。
4. 能够熟悉图书管理系统的使用。
(2)作为图书管理员,他们对图书管理系统的要求有:
1. 能方便的对图书进行录入登记,注销陈旧的书籍。
2.能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。
3. 能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况息,以便各学院能够随时获知本院学生的一些借书信息。
3.2系统用例分析
图书管理系统中包含书籍的采购、入库、编目、出借、归还、淘汰等功能,以及读者信息的管理。
本系统对前期的工作进行了简化,删掉了书籍的采购、入库、编目等繁琐的工作,仅对系统主要部分进行分析。
为了提高服务效果,图书馆系统实行开架阅览,并为读者提供客户端,读者可以查询到馆藏书目和个人在借图书的信息。
这项功能也可以通过互联网实现。
图书管理员通过系统记录图书的出借和归还,以及书目的维护和读者信息的维护。
3.3系统模块分析
3.3.1新书入库模块:
(1)新书入库界面包括图书相关的属性:
编号、书名、作者、类别、出版日期、出版社、定价、数量、备注等。
3.3.2图书整理模块:
(1)图书整理界面包括:
图书修改删除、图书类别编辑
图书修改删除界面除了包括图书的相关属性还包括图书修改功能。
图书类别编辑界面包括对类别编号、类别名称进行添加、删除、修改的功模块。
3.3.3办借书卡模块:
办借书卡界面包括借书卡编号、持借书卡人的姓名、性别、组名、证件号。
3.3.4查询模块:
(1)借阅信息查询:
根据查询方式如按借书证号、按姓名等在文本框中输入相关内容即可查询还可查询到期图书
(2)图书信息查询:
查询方式有:
按书号、按书名、按作者、按类别、按出版社。
在关键字中输入相关内容,点击“开始查询”按钮,在DataList中列出查询结果。
如果选中“模糊查询”可查询更多的相关信息。
(3)用户信息查询:
查询方式有:
按借书证号、按姓名。
在关键字框中输入借书证号或者读者姓名。
组用户管理模块:
(4)组用户管理界面:
操作方式包括:
修改、删除、添加。
组用户信息包括:
组编号、组名称、最长天数、最多本数。
3.3.5图书借还模块:
图书借阅界面包括图书编号、书名、类别、出版社、出版日期、借书证号等
归还图书界面包括图书的属性、归还者的信息。
4总结
通过完成本次图书管理系统实践,使我系统的经历了一次JAVA软件开发的整个设计开发过程,把所学的知识综合的运用到这次实践中,重新复习了课本上讲到的知识,觉得有一种温故而知新的感觉,通过实践同时也收获了许多课本上没有的东西。
尤其是在开发图书管理系统的过程当中,也遇到了许多技术上或者其他方面的困难,但是也算经过自己的努力,基本上克服了这些困难。
由于我的水平确实有限,加之也没有实际的项目经验,设计时间短,所以该系统还有许多不尽如人意的地方,比如功能较少,出错处理不够等多方面问题,距离真正实用的图书管理系统还有许多差距,但我相信,软件开发是一个不断完善的过程,我会在以后得学习当中继续完善的。
在这次设计过程中,培养了我的自学能力,在遇到困难的时候,能够认真的对待,不放弃,无论是查看各种书籍还是到图书馆中查找各种资料,想尽一切办法将这个问题解决。
我总结了许多编程经验,这将在以后的学习生活中有很大的帮助。
5、致谢
感谢那些给我带来帮助的书籍和internet,还有周边的同学们。
还要感谢我们的指导老师给我们这么多学生的文档认真批改,让我们知道在课程设计与实现的过程中存在的问题。
6、参考文献
[1]王克宏、郝建文.Java技术教程[M].北京:
清华大学出版社,2002年
[2]基于JAVA的学生信息管理系统李伟电子科技大学【硕士】电子科技大学2009-04-010578
[3]J2EE框架及全文检索技术在信息管理系统中的应用徐立峰电子科技大学【硕士】电子科技大学2009-10-01
7、附录
附部分主要源代码:
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.table.*;
importjava.sql.*;
importedu.njust.cs.*;
publicclassSimpleBookManager{
publicstaticvoidmain(String[]args){
SetFont.setFont(newFont("楷体",0,12));
Connectioncon=null;
try{
con=SqlUtil.acquireConnection("127.0.0.1",
"1433","bookTest","admin","xyz");
}catch(Exceptione){
System.out.println(e);
System.exit(-1);
}
if(con!
=null){
JFramef=newJFrame();
f.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
f.getContentPane().add(newBookManager(f,con));
f.setSize(600,400);
f.show();
}
}
}
classBookManagerextendsJPanelimplementsActionListener{
privateString[]columnNames={"图书编号","书名","定价","出版社"};
privateClass[]dataType={String.class,String.class,Double.class,String.class};
privateCustomTableModelmodel=null;
privateJTabletable=null;
privateConnectioncon=null;
privateJButtonbtnAdd=newTextAndPicButton("image/addrow20.gif","增加");
privateJButtonbtnSearch=newTextAndPicButton("image/search20.gif","查询");
privateJButtonbtnDelete=newTextAndPicButton("image/deleterow20.gif","删除");
privateJButtonbtnExit=newTextAndPicButton("image/exit20.gif","退出");
privateJFramef=null;
publicBookManager(JFramef,Connectioncon){
this.f=f;
this.con=con;
//构建工具条
JToolBartoolBar=newJToolBar();
toolBar.add(btnAdd);
toolBar.add(btnSearch);
toolBar.add(btnDelete);
toolBar.add(btnExit);
//注册事件侦听器
btnAdd.addActionListener(this);
btnSearch.addActionListener(this);
btnDelete.addActionListener(this);
btnExit.addActionListener(this);
//构建表格
model=newCustomTableModel(0,columnNames.length,columnNames,dataType);
table=newJTable(model);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//设定表格每列的宽度
setTableColumnWidth(0,100);
setTableColumnWidth(1,200);
setTableColumnWidth(2,100);
setTableColumnWidth(3,250);
//布局工具条及表格
this.setLayout(newBorderLayout());
this.add(toolBar,BorderLayout.NORTH);
this.add(newJScrollPane(table),BorderLayout.CENTER);
}
//设置表格指定列的宽度
publicvoidsetTableColumnWidth(intcolumn,intwidth){
if(column
TableColumncol=table.getColumn(columnNames[column]);
col.setPreferredWidth(width);
}
}
publicvoidactionPerformed(ActionEvente){
Objects=e.getSource();
if(s==this.btnAdd)add();
elseif(s==this.btnSearch)search();
elseif(s==this.btnDelete)delete();
elseif(s==this.btnExit)System.exit(0);
}
//增加一条记录到数据库
publicvoidadd(){
BookEditorbe=newBookEditor(f,"增加",true);
be.show();
//只有点击了信息对话框中的确定按钮,才增加记录
if(be.getActionCode()==be.OK){
StringinsertSql="insertintobookInfoVALUES(?
?
?
?
)";
Object[]lineForDBAdd={be.getID(),be.getBookName(),
be.getBookPrice(),be.getBookPress()};
if(SqlUtil.addRowToDB(con,insertSql,lineForDBAdd))
{//成功写入数据库的记录,追加到表格的末行显示
Object[]lineForTable=
SqlUtil.getLineForTableFromLineForDB(lineForDBAdd,dataType);
model.insertRow(model.getRowCount(),lineForTable);
//将表格的最后一行选中
table.changeSelection(model.getRowCount()-1,0,false,false);
}
else
JOptionPane.showMessageDialog(this,"新增时出错!
",
"提示",JOptionPane.INFORMATION_MESSAGE);
}
}
//查询数据库
publicvoidsearch(){
SearchDialogsd=newSearchDialog(f,"查询",true);
sd.show();
if(sd.getActionCode()==sd.OK){
StringreadSql=sd.getSQL();
SqlUtil.readDBToTable(con,readSql,model,dataType);
}
}
//删除选定的记录
publicvoiddelete(){
intselected=table.getSelectedRow();
if(selected>=0&&selected intresult=JOptionPane.showConfirmDialog(f,"您确定要删除该条图书信息吗? " "确认",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE); if(result! =JOptionPane.YES_OPTION)return; StringdeleteSql="deletefrombookInfowherebookID=? "; Object[]keys={model.getValueAt(selected,0).toString()}; if(SqlUtil.deleteFromDB(con,deleteSql,keys)) model.removeRow(selected); } else JOptionPane.showMessageDialog(f,"请选定要删除的一行! " "提示",JOptionPane.INFORMATION_MESSAGE); } //内部类,用于显示/编辑图书信息的一个模式对话框 classBookEditorextendsJDialogimplementsActionListener{ finalintOK=1; finalintCANCEL=-1; finalintCLOSE=0; privateintactionCode=CANCEL; privateJLabellabID=newJLabel("图书编号"); privateJTextFieldtxtID=newJTextField(); privateJLabellabBookName=newJLabel("图书名称"); privateJTextFieldtxtBookName=newJTextField(); privateJLabellabBookPrice=newJLabel("单价"); privateJTextFieldtxtBookPrice=newJTextField(); privateJLabellabBookPress=newJLabel("出版社"); privateJTextFieldtxtBookPress=newJTextField(); privateJButtonbtnPre=newJButton("上一个"); privateJButtonbtnNext=newJButton("下一个"); privateJButtonbtnOk=newJButton("确定"); privateJButtonbtnCancel=newJButton("取消"); privateJFramef=null; publicBookEditor(JFramef,Strings,booleanb){ super(f,s,b); this.f=f; //面板p中显示图书信息 JPanelp=newJPanel(); p.setLayout(newGridBagLayout()); LayoutUtil.add(p,GridBagConstraints.NONE, GridBagConstraints.CENTER,0,0,0,0,1,1,labID); LayoutUtil.add(p,GridBagConstraints.HORIZONTAL, GridBagConstraints.CENTER,100,0,1,0,1,1,txtID); LayoutUtil.add(p,GridBagConstraints.NONE, GridBagConstraints.CENTER,0,0,2,0,1,1,labBookName); LayoutUtil.add(p,GridBagConstraints.HORIZONTAL, GridBagConstraints.CENTER,100,0,3,0,1,1,txtBookName); LayoutUtil.add(p,GridBagConstraints.NONE, GridBagConstraints.CENTER,0,0,0,1,1,1,labBookPrice); LayoutUtil.add(p,GridBagConstraints.HORIZONTAL, GridBagConstraints.CENTER,100,0,1,1,1,1,txtBookPrice); LayoutUtil.add(p,GridBagConstraints.NONE, GridBagConstraints.CENTER,0,0,2,1,1,1,labBookPress); LayoutUtil.add(p,GridBagConstraints.HORIZONTAL, GridBagConstraints.CENTER,100,0,3,1,1,1,txtBookPress); //注册事件侦听器 btnOk.addActionListener(this); btnCancel.addActionListener(this); btnPre.addActionListener(this); btnNext.addActionListener(this); btnOk.setIcon(newImageIcon("image/ok20.gif")); btnCancel.setIcon(newImageIcon("image/cancel20.gif")); btnPre.setIcon(newImageIcon("image/pre20.gif")); btnNext.setIcon(newImageIcon("image/next20.gif")); btnNext.setHorizontalTextPosition(SwingConstants.LEFT); //在增加模式下前后移动按钮置为不可用 //读者扩展该程序具有编辑功能时,可以将前后移动按钮置为可用 if(s.equals("增加")){ btnPre.setEnabled(false); btnNext.setEnabled(false); } //面板ap中显示4个按钮 JPanelap=newJPanel
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 图书馆 管理 系统