java图书管理系统.docx
《java图书管理系统.docx》由会员分享,可在线阅读,更多相关《java图书管理系统.docx(82页珍藏版)》请在冰点文库上搜索。
java图书管理系统
目录
第1章本设计所要达到的目的和要求
1.1设计目的
1.2设计要求
第2章设计内容
第3章开发和运行环境介绍
第4章需求分析
1、本设计所要达到的目的和要求
1.1设计目的
管理信息系统(MIS)的应用已深入到社会的各行各业,它是信息、软件与科学管理相结合的产物。
MIS的开发过程不仅是一个编写应用程序的过程,而且是一个以软件工程的思想为指导,从可行性研究开始,经过系统分析、系统设计、系统实施到等主要阶段的规范开发过程。
本题目实现的是网络数据库管理系统,我们选择的是图书馆管理系统,不同角色的用户登录,用户信息的管理包括密码管理,及用户借还书,用户对图书信息及本人借还情况的查询,超级管理员对图书信息的增删查改,用户信息的增删查改及借还情况总的查询。
1.2设计要求
1、主题明确,软体开发要有创新性,能体现SQL的存储过程、触发器、游标技术等;
2、用高级语言结合SQLServer数据库进行开发;
3、写出数据库关系模式及相应的数据库表关系图;
4、绘制成绩MIS相应的系统流程图、E-R图等;
5、完成成绩MIS登陆界面、主界面、图书信息录入、图书信息查询和其各项设计与操作。
2、设计内容
我们设计的图书馆管理系统主要用于对图书馆日常工作的管理,主要任务是用计算机对读者、图书等各种信息进行日常管理,如查询、修改、增加、删除、图书借阅和归还的管理等。
本系统实现了图书馆的信息化管理,完成了图书馆管理系统的基本功能。
该系统主要包括用户登录子系统、用户管理子系统、图书管理子系统、图书借阅与归还、图书和用户信息查询子系统四个部分,各部分主要功能如下:
用户登录子系统:
用于数据库的连接,主界面的设计和不同身份用户的登录管理。
用户管理子系统:
用于用户信息的管理,如用户添加、用户信息修改、用户删除。
图书管理子系统:
用于图书信息的管理,如新书入库、图书信息修改、图书信息删除。
图书借阅与归还子系统:
用于用户借阅和归还图书。
图书和用户信息查询:
图书和用户信息的查询。
3、开发和运行环境介绍
开发语言:
前台开发语言为java,后台数据库为SQLserver2005
运行环境:
eclipse
Eclipse是著名的跨平台的自有(IDE)。
最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。
Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。
许多软件开发商以Eclipse为框架开发自己的IDE。
4、需求分析
4.1系统需求描述
实现管理员对用户的增删改查,对图书信息增删查改、图书借阅信息的修改以,实现用户对图书的查找、借阅、续借、归还以及修改密码。
该系统主要包括用户登录子系统、用户管理子系统、图书管理子系统、图书借阅与归还、图书和用户信息查询子系统四个部分,各部分主要功能如下:
用户登录子系统:
用于数据库的连接,主界面的设计和不同身份用户的登录管理。
用户管理子系统:
用于用户信息的管理,如用户添加、用户信息修改、用户删除。
图书管理子系统:
用于图书信息的管理,如新书入库、图书信息修改、图书信息删除。
图书借阅与归还子系统:
用于用户借阅和归还图书。
图书和用户信息查询:
图书和用户信息的查询。
4.2系统功能结构图
图1图书管理系统系统流程图
4.3系统E-R图
图2用户实体图
图3书籍实体图
图4实体属性图
4.5数据库表结构
表1图书信息表
字段名称
字段类型
长度
是否为空
备注
图书id
数字
4
否
主键
图书名称
数字
4
出版社
文本
50
作者
文本
50
出版日期
时间
4
价格
文本
50
图书总数量
数字
4
否
图书剩余量
数字
4
否
备注
文本
50
表2用户借阅表
字段名称
数据类型
长度
是否为空
备注
用户id
数字
4
否
主键
图书id
数字
4
否
主键
借书日期
时间
8
否
还书日期
时间
8
备注
文本
50
是否归还
文本
50
否
表3用户信息表
字段名称
字段类型
长度
是否为空
备注
用户id
数字
4
否
主键
用户名
文本
50
否
用户密码
文本
50
否
权限
文本
50
否
已借书数
数字
4
否
借书上限数
数字
4
否
5.系统设计与实现
5.1模块功能描述
.在整个图书管理系统中用户登录子系统的设计,主要包括如下功能:
连接远程数据库:
首先建立连接,然后配置数据源。
整个界面的设计:
主框架,点击按钮分别触发事件。
用户登录:
管理员,图书馆工作人员,普通用户分别实现进入自己的界面。
.在整个图书管理系统中用户管理子系统的设计,主要包括如下功能:
用户添加:
用于添加用户信息。
用户信息修改:
管理员可以修改用户所有信息,用户可以修改自己的密码。
用户删除:
用于删除用户信息。
包括按用户id和密码删除。
.在整个图书馆管理系统中图书管理子系统的设计,主要包括如下功能:
图书添加:
用于添加图书信息。
图书信息修改:
管理员可以修改图书所有信息。
图书删除:
用于删除图书信息。
包括按图书id删除。
.在整个图书馆管理系统中图书借阅管理子系统的设计,主要包括如下功能:
借阅图书:
用户借书。
续借:
通过改变归还日期来续借。
借阅信息显示:
管理员和工作人员可以查看所有用户借阅信息,普通用户只可以查看自己的借阅信息。
.在整个图书馆管理系统中图书和用户信息查询子系统的设计,主要包括如下功能:
图书信息查询:
可以查询所有图书信息,也可以根据图书id,图书名称,作者,出版社进行图书检索。
用户信息查询:
用于查询用户信息。
5.2软件实现
用户登录子系统:
连接数据库:
importjava.sql.*;
publicclassNetConn//建立数据库连接类
{
Connectioncon;
Statementsql;
publicStatementconnect()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundExceptione1)
{}
try
{con=DriverManager.getConnection("jdbc:
odbc:
liber_db","sa","123");
sql=con.createStatement();
}
catch(SQLExceptione2)
{}
returnsql;
}
}
主框架:
publicclasslibrary
{
publicstaticvoidmain(Stringargs[])
{
Libraryboxmf=newLibrarybox();
mf.mi_system_alogin.setEnabled(false);
mf.bookse.setEnabled(false);
mf.bookth.setEnabled(false);
mf.bookfo.setEnabled(false);
mf.bookfi.setEnabled(false);
mf.mi_system_manger.setEnabled(false);
}
}
publicclassLibraryboxextendsJFrameimplementsActionListener
{
JLabelmlabel,tlabel;
JMenuBarmainmenu;
staticJMenusystem,bookse,bookth,bookfo,bookfi,booksex,mi_system_manger;
JMenuItemmi_system_login,mi_system_alogin,mifi_system_adduser,mifi_system_moduser,mifi_system_deluser,mi_system_exit;
JMenuItemse_book_addbook,se_book_modifybook,se_book_delbook;
JMenuItemth_book_borrowmsg,th_book_borrowmsgmodif;
JMenuItemfo_book_returnmsg;
JMenuItemfi_msglabel_book,fi_msglabel_borrow,fi_msglabel_user;
JMenuItemsex_edition;
Loginfrmfrml=null;
Adduserfrma=null;
Mdiuserfrmm=null;
Deluserfrmd=null;
Addbookfrmfrmab;Mdibookfrmfrmmb;Delbookfrmfrmdb;Borbookfrmfrmbb;BorMsgbookfrmfrmbmb;
Booklistfrmfrmbl;Borlistbookfrmfrmblb;Userlistfrmfrmul;ReturnMsgbookfrmfrmrmb;Returnbookfrmfrmrb;
Readmefrmread;
Messagemsg;
intid=0;
intunit=3;
Librarybox()
{
super("图书管理系统");
frml=newLoginfrm(this,"登录窗口",client,msg);
frma=newAdduser(this,"添加用户",client,msg);
frmm=newMdiuser(this,"修改用户",client,msg);
frmd=newDeluser(this,"删除用户",client,msg);
setLayout(newGridLayout(4,1));
FontmyFont1=newFont("楷体",Font.BOLD,60);
FontmyFont2=newFont("楷体",Font.BOLD,40);
mlabel=newJLabel("图书管理系统");
tlabel=newJLabel("请在系统管理中进行登录");
mlabel.setFont(myFont1);
tlabel.setFont(myFont2);
add(mlabel);
add(tlabel);
mainmenu=newJMenuBar();
system=newJMenu("系统管理");
mi_system_login=newJMenuItem("用户登录");
mi_system_alogin=newJMenuItem("重新登录");
mi_system_manger=newJMenu("用户管理");
mifi_system_adduser=newJMenuItem("添加用户");
mifi_system_moduser=newJMenuItem("修改用户");
mifi_system_deluser=newJMenuItem("删除用户");
mi_system_manger.add(mifi_system_adduser);
mi_system_manger.add(mifi_system_moduser);
mi_system_manger.add(mifi_system_deluser);
mi_system_exit=newJMenuItem("退出");
mi_system_login.addActionListener(this);
mi_system_alogin.addActionListener(this);
mi_system_exit.addActionListener(this);
mifi_system_adduser.addActionListener(this);
mifi_system_moduser.addActionListener(this);
mifi_system_deluser.addActionListener(this);
system.add(mi_system_login);
system.add(mi_system_alogin);
system.add(mi_system_manger);
system.addSeparator();//添加分隔线
system.add(mi_system_exit);
mainmenu.add(system);
bookse=newJMenu("书籍管理");
se_book_addbook=newJMenuItem("添加书籍");
se_book_modifybook=newJMenuItem("修改书籍");
se_book_delbook=newJMenuItem("删除书籍");
se_book_addbook.addActionListener(this);
se_book_modifybook.addActionListener(this);
se_book_delbook.addActionListener(this);
bookse.add(se_book_addbook);
bookse.add(se_book_modifybook);
bookse.add(se_book_delbook);
mainmenu.add(bookse);
bookth=newJMenu("借阅管理");
th_book_borrowmsg=newJMenuItem("借书窗口");
th_book_borrowmsgmodif=newJMenuItem("续借窗口");
th_book_borrowmsg.addActionListener(this);
th_book_borrowmsgmodif.addActionListener(this);
bookth.add(th_book_borrowmsg);
bookth.add(th_book_borrowmsgmodif);
mainmenu.add(bookth);
bookfo=newJMenu("还书管理");
fo_book_returnmsg=newJMenuItem("还书窗口");
fo_book_returnmsg.addActionListener(this);
bookfo.add(fo_book_returnmsg);
mainmenu.add(bookfo);
bookfi=newJMenu("信息");
fi_msglabel_book=newJMenuItem("书籍列表");
fi_msglabel_borrow=newJMenuItem("借阅情况表");
fi_msglabel_user=newJMenuItem("用户列表");
fi_msglabel_book.addActionListener(this);
fi_msglabel_borrow.addActionListener(this);
fi_msglabel_user.addActionListener(this);
bookfi.add(fi_msglabel_book);
bookfi.add(fi_msglabel_borrow);
bookfi.add(fi_msglabel_user);
mainmenu.add(bookfi);
booksex=newJMenu("帮助");
sex_edition=newJMenuItem("—制作信息及版本—");
sex_edition.addActionListener(this);
booksex.add(sex_edition);
mainmenu.add(booksex);
this.setJMenuBar(mainmenu);
Toolkittool=getToolkit();
Dimensiondim=tool.getScreenSize();
setBounds(0,0,dim.width,dim.height);
this.setVisible(true);
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getActionCommand()=="退出")
{
dispose();
System.exit(0);
}
elseif(e.getActionCommand()=="添加用户")
{
frma.setVisible(true);
}
elseif(e.getActionCommand()=="用户登录")
{
this.setVisible(false);
this.dispose();
frml.setVisible(true);
}
elseif(e.getActionCommand()=="重新登录")
{
this.dispose();
frml.setVisible(true);
}
elseif(e.getActionCommand()=="修改用户")
{
frmm.setVisible(true);
if(unit==3)
{
Mdiuser.t_mid.setText(String.valueOf(id));
Mdiuser.t_mid.disable();
Mdiuser.c_munit.select("3");
Mdiuser.c_munit.disable();
}
}
elseif(e.getActionCommand()=="删除用户")
{
frmd.setVisible(true);
}
elseif(e.getActionCommand()=="添加书籍")
{
frmab=newAddbookfrm();
frmab.setVisible(true);
}
elseif(e.getActionCommand()=="修改书籍")
{
frmmb=newMdibookfrm();
frmmb.setVisible(true);
}
elseif(e.getActionCommand()=="删除书籍")
{
frmdb=newDelbookfrm();
frmdb.setVisible(true);
}elseif(e.getActionCommand()=="借书窗口")
{
frmbb=newBorbookfrm();
frmbb.setVisible(true);
}
elseif(e.getActionCommand()=="续借窗口")
{
frmbmb=newBorMsgbookfrm();
frmbmb.setVisible(true);
BorMsgbookfrm.t_bookid.disable();
BorMsgbookfrm.t_data.disable();
}
elseif(e.getActionCommand()=="还书窗口")
{
frmrb=newReturnbookfrm();
frmrb.setVisible(true);
}
elseif(e.getActionCommand()=="还书信息修改")
{
frmrmb=newReturnMsgbookfrm();
frmrmb.setVisible(true);
}
elseif(e.getActionCommand()=="书籍列表")
{
frmbl=newBooklistfrm();
frmbl.setVisible(true);
}
elseif(e.getActionCommand()=="借阅情况表")
{
frmblb=newBorlistbookfrm();
frmblb.setVisible(true);
}
elseif(e.getActionCommand()=="用户列表")
{
frmul=newUserlistfrm();
frmul.setVisible(true);
}
elseif(e.getActionCommand()=="—制作信息及版本—")
{
frmread=newReadme();
frmread.setVisible(true);
}
}
}
用户登录:
classLoginfrmextendsDialogimplementsActionListener
{
JLabell_name,l_pass,l_error;
JTextFieldt_name;
JButtonb_enter,b_cancle,b_clear;
JPanelpan1,pan2,pan3,pan4;
JPasswordFieldt_pass;
Stringsname,spass;
intsunit;
NetConnsql;
Statementsqll;
ResultSetrs;
Libraryboxlbox;
intuntil=0;
Clientclient;
Messagemsg;
Loginfrm(Framef,Strings,Clientclient,Messagemsg)
{
//界面布局
super(f,s);
l_name=newJLabel("名字:
");
l_pass=newJLabel("密码:
");
l_