当前位置:文档之家› 基于JAVA的图书管理系统

基于JAVA的图书管理系统

《J a v a核心技术》综合实验报告课程名称:Java核心技术专业:计算机科学与技术*名:***学号:**********指导教师:**成绩:完成日期:2015 年12 月18 日1 系统分析与设计1.1 需求分析图书管理系统是高校图书馆不可缺少的一部分,通过图书管理系统可以实现计算机化的图书借阅管理,能够提供方便快速的图书信息检索功能和便捷的图书借阅和归还功能,并且能够对图书信息和读者信息进行管理,方便管理员和读者的借阅处理。

(本人实现了图书添加、图书查询与修改、图书类别管理、用户添加、用户删除、修改密码功能模块的设计)要求系统具备以下特点。

(1)操作简单、易用。

(2)数据存储可靠,具备较高的处理效率。

(3)系统安全、稳定。

(4)开发技术先进、功能完善、扩展性强。

1.2 系统功能设计根据需求分析,本系统具体的功能模块图如图1.2.1所示。

图1.2.1图书借阅系统功能结构图1.2.1 读者信息管理1、读者信息添加实现向数据库中添加读者信息的功能。

2、读者信息查询与修改实现查询指定编号、姓名、类别以及所在部门的读者信息,并对选中的读者信息进行修改操作。

1.2.2 图书信息管理1、图书信息添加实现向数据库中添加图书信息的功能。

2、图书信息查询与修改实现查询指定ISBN、图书名称、类别、作者以及出版社的图书信息,并对选中的图书信息进行修改操作。

1.2.3 图书借阅管理1、图书借阅输入读者的编号以及借阅的图书信息,记录系统当前时间为借阅时间。

2、图书归还输入读者的编号并选择其名下已借阅的图书,记录系统当前日期为归还时间,判断是否超期并计算罚金。

1.2.4 基础信息维护1、图书类别设置实现显示数据库中图书类别的功能,并对选中的图书类别进行增、删、改、查功能。

2、读者类别设置实现显示数据库中读者类别的功能,并对选中的读者类别进行增、删、改、查功能。

3、罚金设置可以指定超期一天的罚金标准。

1.2.5 用户管理1、修改密码实现当前用户登陆后,修改用户自己密码的功能。

2、用户添加实现向数据库中增加用户的功能。

3、用户删除实现显示数据库中的用户信息,并对选中的用户进行删除的功能。

1.3数据库设计根据需求分析,创建6个数据表,即图书表、图书类型表、读者表、读者类型表、图书借阅表以及用户表。

1、图书表,表名为book,包括ISBN、图书类型编号、图书名称、作者、出版社、出版日期、印刷次数和单价,其中ISBN为主键,如表1.1所示。

表1.1 图书信息表book列名数据类型长度是否为空说明ISBN char 10 否ISBN(主键)typeid varchar 10 是图书类型编号bookname varchar 30 是图书名称author varchar 30 是作者publish varchar 30 是出版社publishdate date —是出版日期printtime int —是印刷次数unitprice money —是单价图书表数据如图1.3.1所示。

图1.3.1图书表数据2、图书类型表,表名为booktype,包括图书类型编号、图书类型名称,其中图书类型编号为主键,如表1.2所示。

表1.2 图书类型表booktype列名数据类型长度是否为空说明id int —否图书类型编号(主键)typename varchar 30 是图书类型名称图书类型表数据如图1.3.2所示。

图1.3.2图书类型表数据3、读者表,表名为reader,包括读者编号、读者类型编号、读者姓名、年龄、性别、电话、所在系部、注册日期,其中读者编号为主键,如表1.3所示。

表1.3 读者信息表reader列名数据类型长度是否为空说明readerid char 8 否读者编号(主键)type int —是读者类型编号name char 20 是读者姓名age int —是年龄sex char 4 是性别phone char 11 是电话dept varchar 20 是所在系部regdate date —是注册日期读者表数据如图1.3.3所示。

图1.3.3读者表数据4、读者类型表,表名为readertype,包括读者类型编号、读者类型名称、最多可借图书数量、最长可借阅图书天数,其中读者类型编号为主键,如表1.4所示。

表1.4 读者类型表readertype列名数据类型长度是否为空说明id int —否读者类型编号(主键)typename varchar 20 是读者类型名称maxborrownum int —是最多可借图书数量limit int —是最长可借阅图书天数读者类型表数据如图1.3.4所示。

图1.3.4读者类型表数据5、用户表,表名为users,包括用户编号、用户名称、用户密码,其中用户编号为主键,如表1.5所示。

表1.5 用户信息表users列名数据类型长度是否为空说明id int —否用户编号(主键)name varchar 20 是用户名称password varchar 20 是用户密码用户表数据如图1.3.5所示。

图1.3.5用户表数据6、图书借阅表,表名为borrowbook,包括读者编号、ISBN、借书日期、还书日期、罚金,其中读者编号和ISBN为联合主键,如表1.6所示。

表1.6 图书借阅表borrowbook列名数据类型长度是否为空说明readerid char 8 否读者编号(主键)ISBN char 10 否ISBN(主键)borrowdate date —是借书日期returndate date —是还书日期fine money —是罚金图书借阅表数据如图1.3.6所示。

图1.3.6图书借阅表数据2 系统实现2.1 系统框架项目分为model、view、db三个包,具体项目架构的设计如图2.1.1所示。

图2.1.1图书借阅表数据1、在com.bbm.model包中创建图书借阅管理系统中的实体类:Book类,BookType类,Reader类,ReaderType类,Users类,BorrowBook类,如表2.1所示。

文件名说明Book.java 图书类模型BookType.java 图书类型类模型2、在com.bbm.view包中创建图书借阅管理系统中的界面及功能类,如表2.2所示。

表2.2 界面类表com.bbm.view3、在com.bbm.db包中创建图书借阅管理系统中的数据访问操作类,如表2.3所示。

表2.3 数据访问操作类表com.bbm.db2.2 图书类型管理模块的实现2.2.1 图书类型管理模块界面的设计与实现图书类型管理模块界面的实现分为三个面板,图书类型查询面板(selectjp),其中包含查询结果面板(jspjp)位于selectjp中部,selectjp整体位于整个JFrame的北部,修改信息面板(infojp)位于整个JFrame中部,按钮面板(buttonjp)位于整个JFrame 南部。

如图2.2.1所示。

图2.2.1图书类型管理模块界面主要代码如下:selectjp.add(jspjp,BorderLayout.CENTER);this.add(selectjp,BorderLayout.NORTH);this.add(infojp,BorderLayout.CENTER);this.add(buttonjp,BorderLayout.SOUTH);2.2.2 图书类型管理模块数据操作的设计与实现本模块需要进行的数据操作如下:1、获取数据库中图书类型表中的数据主要代码如下:public static List<BookType> selectBookType() {List<BookType> list = new ArrayList<BookType>();String sql = "select * from booktype";ResultSet rs = Dao.executeQuery(sql);try {while (rs.next()) {BookType bt = new BookType();bt.setId(rs.getInt("id"));bt.setTypename(rs.getString("typename"));list.add(bt);}} catch (Exception e) {e.printStackTrace();}Dao.close();return list;}2、对指定的图书类型的图书信息进行查询主要代码如下:public static List<BookType> selectBookTypeName(String type) {List<BookType> list = new ArrayList<BookType>();String sql = "select * from booktype where typename like '%"+type+"%'";ResultSet rs = Dao.executeQuery(sql);try {while (rs.next()) {BookType bt = new BookType();bt.setId(rs.getInt("id"));bt.setTypename(rs.getString("typename"));list.add(bt);}} catch (Exception e) {e.printStackTrace();}Dao.close();return list;}3、对其进行添加操作主要代码如下:public static int insertBookType(String btno,String typename) { int i = 0;try {String sql = "insert into booktype values("+btno+",'"+typename+"')";i = Dao.executeUpdate(sql);} catch (Exception e) {e.printStackTrace();}Dao.close();return i;}4、对其进行修改操作代码同3,具体sql语句如下:String sql = "update booktype set id="+btno+",typename='"+typename+"'where id="+btno+"";~~~5、对其进行删除操作代码同3,具体sql语句如下:String sql = "delete from booktype where id="+id+"";2.2.3 图书类型管理模块功能的设计与实现本模块实现的功能如下:1、获取数据库中图书类型表中的数据到JTable中,并添加鼠标监听如上图2.2.1所示。

相关主题