JAVA图书信息管理系统Word格式文档下载.docx
- 文档编号:737316
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:33
- 大小:42.38KB
JAVA图书信息管理系统Word格式文档下载.docx
《JAVA图书信息管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《JAVA图书信息管理系统Word格式文档下载.docx(33页珍藏版)》请在冰点文库上搜索。
2.能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。
能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况息,以便各学院能够随时获知本院学生的一些借书信息。
(3)程序运行平台:
在java虚拟机上,使用软件eclipse编程
三、程序总框架图
图书管理系统中包含书籍的采购、入库、编目、出借、归还、淘汰等功能,以及读者信息的管理。
本系统对前期的工作进行了简化,删掉了书籍的采购、入库、编目等繁琐的工作,仅对系统主要部分进行分析。
为了提高服务效果,图书馆系统实行开架阅览,并为读者提供客户端,读者可以查询到馆藏书目和个人在借图书的信息.这项功能也可以通过互联网实现。
图书管理员通过系统记录图书的出借和归还,以及书目的维护和读者信息的维护。
四、系统模块分析
1.新书入库模块:
新书入库界面包括图书相关的属性:
编号、书名、作者、类别、出版日期、出版社、定价、数量、备注等。
图书整理模块:
(1)图书整理界面包括:
图书修改删除、图书类别编辑
图书修改删除界面除了包括图书的相关属性还包括图书修改功能.
图书类别编辑界面包括对类别编号、类别名称进行添加、删除、修改的功模块。
3.办借书卡模块:
办借书卡界面包括借书卡编号、持借书卡人的姓名、性别、组名、证件号。
4.查询模块:
(1)借阅信息查询:
根据查询方式如按借书证号、按姓名等在文本框中输入相关内容即可查询还可查询到期图书
(2)图书信息查询:
查询方式有:
按书号、按书名、按作者、按类别、按出版社。
在关键字中输入相关内容,点击“开始查询”按钮,在DataList中列出查询结果。
如果选中“模糊查询”可查询更多的相关信息.
(3)用户信息查询:
查询方式有:
按借书证号、按姓名。
在关键字框中输入借书证号或者读者姓名。
组用户管理模块:
(4)组用户管理界面:
操作方式包括:
修改、删除、添加。
组用户信息包括:
组编号、组名称、最长天数、最多本数。
5.图书借还模块:
图书借阅界面包括图书编号、书名、类别、出版社、出版日期、借书证号等
归还图书界面包括图书的属性、归还者的信息。
五、较具特色的函数
//图书管理员
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);
}
});
getContentPane()。
add(newBookManager(f,con));
f.setSize(600,400);
show();
}
}
}
通过图书管理员来区别与学生功能的区别,增添的功能更具有针对性.使用管理员来进行对学生的管理。
六、存在的不足与对策
在开发图书管理系统的过程当中,也遇到了许多技术上或者其他方面的困难。
如:
开始编程的无从下手,编程时遇到的语法问题等,但是也算经过自己的努力,加上eclipse软件上的提示与指导老师指导,使之基本上克服了这些困难.
在这次设计过程中,培养了我的自学能力,在遇到困难的时候,能够认真的对待,不放弃,无论是查看各种书籍还是到图书馆中查找各种资料,想尽一切办法将这个问题解决。
我总结了许多编程经验,这将在以后的学习生活中有很大的帮助.
这次课程设计还让我学会了eclipse软件的运行方法,使得我的编程能力又有了一个显著地提高。
七、参考文献
[1]耿祥义、张跃平《Java2实用教程》(第三版)北京:
清华大学出版社,2006年8月
八、附录(主要源代码及程序类的说明)
importjavax。
swing.*;
importjava。
awt。
*;
importjava.awt。
event.*;
swing。
table。
*;
importjava.sql.*;
importedu.njust.cs。
*;
publicstaticvoidmain(String[]args){
SetFont.setFont(newFont(”楷体"
0,12));
Connectioncon=null;
try{
con=SqlUtil。
acquireConnection(”127。
0。
"
1433"
”bookTest"
,"
);
}catch(Exceptione){
System.out.println(e);
exit(—1);
=null){
JFramef=newJFrame();
f.addWindowListener(newWindowAdapter(){
System。
exit(0);
}
});
f.getContentPane()。
add(newBookManager(f,con));
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);
add(btnExit);
//注册事件侦听器
btnAdd。
addActionListener(this);
btnSearch。
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);
//布局工具条及表格
setLayout(newBorderLayout());
add(toolBar,BorderLayout。
NORTH);
add(newJScrollPane(table),BorderLayout。
CENTER);
//设置表格指定列的宽度
publicvoidsetTableColumnWidth(intcolumn,intwidth){
if(column<
columnNames.length&&
column>
=0){
TableColumncol=table.getColumn(columnNames[column]);
col。
setPreferredWidth(width);
publicvoidactionPerformed(ActionEvente){
Objects=e。
getSource();
if(s==this.btnAdd)add();
elseif(s==this。
btnSearch)search();
btnDelete)delete();
elseif(s==this.btnExit)System。
//增加一条记录到数据库
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<
model。
getRowCount()){
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);
add(p,GridBagConstraints。
HORIZONTAL,
GridBagConstraints.CENTER,100,0,1,0,1,1,txtID);
NONE,
GridBagConstraints.CENTER,0,0,2,0,1,1,labBookName);
LayoutUtil.add(p,GridBagConstraints.HORIZONTAL,
CENTER,100,0,3,0,1,1,txtBookName);
LayoutUtil.add(p,GridBagConstraints。
CENTER,0,0,0,1,1,1,labBookPrice);
HORIZONTAL,
CENTER,100,0,1,1,1,1,txtBookPrice);
add(p,GridBagConstraints。
CENTER,0,0,2,1,1,1,labBookPress);
LayoutUtil.add(p,GridBagConstraints。
GridBagConstraints.CENTER,100,0,3,1,1,1,txtBookPress);
//注册事件侦听器
btnOk.addActionListener(this);
btnCancel.addActionListener(this);
btnPre。
btnNext。
addActionListener(this);
btnOk.setIcon(newImageIcon(”image/ok20。
gif”));
btnCancel.setIcon(newImageIcon("
image/cancel20。
btnPre.setIcon(newImageIcon("
image/pre20.gif”));
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 图书 信息管理 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)