xx学校图书馆管理系统.pdf
《xx学校图书馆管理系统.pdf》由会员分享,可在线阅读,更多相关《xx学校图书馆管理系统.pdf(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、页脚下载后可删除,如有侵权请告知删除!开发背景和需求分析 例 001 图书馆管理系统 1.1 开发背景 高校拥有一个小型图书馆,为全校师生提供一个阅读、学习的空间。近年来,随着生源不断扩大,图书馆的规模也随之扩大,图书数量也相应地大量增加,有关图书的各种信息成倍增加。面对如此庞大的信息量,校领导决定使用一套合理、有效、标准、实用的图书馆管理系统,对校内图书资料进展统一、集中的管理。笔者受该高校的委托,开发一个图书馆管理系统,开发宗旨是实现图书管理的系统化、标准化和自动化,达成图书资料集中、统一管理的目标。1.2 需求分析 图书馆管理系统是图书馆管理工作中不可缺少的局部,对于图书馆的管理者和使用
2、者来说都非常重要,但长期以来,人们使用传统的手工方式或性能较低的图书馆管理系统管理图书馆的日常事务,操作流程比拟繁琐,效率相当低。而一个成功的图书馆管理系统应提供快速的图书信息检索功能、快捷的图书借阅、归还流程,为管理者与读者提供充足的信息和快捷的数据处理手段。笔者通过对一些典型图书馆管理系统的考察,从读者与图书馆管理员的角度出发,本着以读者借书、还书快捷、方便的原那么,要求本系统应具有以下特点。具有良好的系统性能,友好的用户界面。较高的处理效率,便于使用和维护。采用成熟技术开发,使系统具有较高的技术水平和较长的生命周期。系统尽可能简化图书馆管理员的重复工作,提高工作效率。简化数据查询、统计难
3、度。系统设计 视频 001 系统功能概述 例 001 图书馆管理系统 1.1 系统目标 根据以上的需求分析以及与用户的沟通,该系统应到达以下目标。界面设计友好、美观。数据存储平安、可靠。信息分类清晰、准确。强大的查询功能,保证数据查询的灵活性。操作简单易用、界面清晰大方。系统平安、稳定。页脚下载后可删除,如有侵权请告知删除!开发技术先进、功能完备、扩展性强。占用资源少、对硬件要求低。提供灵活、方便的权限设置功能,使整个系统的管理分工明确。1.2 系统功能构造 图书馆管理系统分为 4 大功能模块,分别为“根底数据维护、“图书借阅管理、“新书订购管理、“系统维护。本系统各个局部及其包括的具体功能模
4、块如图 1 所示。图错误!未定义书签。图书馆管理系统功能构造 1.3 系统流程图 图书馆管理系统的系统流程如图 2 所示。图书馆管理新书订购管理图书借阅管理新书订购验收新书图书还书管理图书借书管理图书查询读者信息管理更改密码图书信息管理基础数据维护图书类别管理系统维护用户管理页脚下载后可删除,如有侵权请告知删除!图 2 图书馆管理系统流程图 1.4 系统预览 图书馆管理系统由多个程序界面组成,下面仅列出几个典型界面。读者相关信息添加界面如图 3 所示,该界面用于将读者相关信息添加至数据表中;读者信息修改与删除界面如图 4 所示,该界面用于展示读者相关信息,并且提供了修改与删除功管理员基础数据维
5、护新书订购管理读者相关信息订购相关信息图书类别相关信息图书馆管理系统管理员登录读者信息管理图书类别管理图书信息管理图书相关信息读者图书借阅图书归还图书查询新书订购验收新书系统维护管理更改密码用户管理用户添加用户修改与删除操作员相关信息读者添加读者修改与删除图书类别添加类别修改图书添加图书修改读者信息录入图书借阅管理图书相关信息页脚下载后可删除,如有侵权请告知删除!能。图 3 读者相关信息添加界面 图 4 读者信息修改与删除界面 新书订购管理界面如图 5 所示,主要实现新书订购功能。图书验收界面如图 6 所示,主要实现新书验收功能。页脚下载后可删除,如有侵权请告知删除!图 5 新书订购管理界面
6、图 6 图书验收界面 1.5 构建开发环境 在开发图书馆管理系统时,需要具备下面的开发环境。操作系统:Windows 2003。Java 开发包:。页脚下载后可删除,如有侵权请告知删除!数据库:SQL Server 2000。开发工具:。1.6 文件夹组织构造 在编写代码之前,可以将系统中可能用到的文件夹先创立出来,这样不但方便以后的开发工作,也可以标准系统的整体架构。笔者在开发图书馆管理系统时,设计了如图 7 所示的文件夹架构图。在开发时将所创立的文件保存在相应的文件夹中即可。图 7 图书馆管理系统文件夹组织构造 数据库设计 视频 002 数据库设计 视频 003 创立工程 例 001 图书
7、馆管理系统 1.1 数据库分析 SQL Server 2000 具有很强的完整性与可伸缩性,具有较低的价格比与性能比,考虑到本系统的稳定性与可靠性以及开发程序与用户需求,笔者决定在设计该系统时选择 SQL Server 2000 数据库来满足系统的需求。1.2 数据库概念设计 根据以上对系统所作的需求分析、系统设计,规划出本系统中使用的数据库实体分别为图书信息实体、图书分类实体、图书订购实体、读者信息实体、操作员信息实体、图书借阅信息实体、库存信息实体。其中图书信息实体与图书订购实体、图书分类实体、图书订购实体、图书借阅信息实体、库存信息实体都具有关系,而读者信息实体与图书借阅信息实体同样具有
8、关系。下面将介绍几个关键实体的 E-R 图。图书信息实体 页脚下载后可删除,如有侵权请告知删除!图书信息实体包括图书编号、图书类别编号、书名、作者、译者、出版社、价格、出版时间等属性。其中图书编号为图书信息实体的主键,图书类别编号为图书信息实体的外键,与图书类别实体具有外键关系。图书信息实体的 E-R 图如图 8 所示。图 8 图书信息实体 E-R 图 读者信息实体 读者信息实体包括条形码、姓名、性别、年龄、押金、生日、职业、证件类型、办证日期、最大借书数量、证件号码等属性。读者条形码作为本实体的唯一标识。其中,在性别属性标识信息中,“1代表此读者为男性,“2代表此读者为女性;最大借书数量属性
9、设置默认值为 3;而在证件属性标识信息中,“0代表身份证,“1代表军人证,“2代表学生证,“3代表工作证。读者信息实体的 E-R 图如图 9 所示。图 9 读者信息实体 E-R 图 图书借阅信息实体 图书借阅信息实体包括编号、图书编号、读者编号、操作员编号、是否归还、借阅日期、归还日期等属性。编号作为图书借阅信息实体的唯一标识,它包括两个外键,分别为图书编号与读者编号,图书借阅信息实体以这两个外键与图书信息实体、读者信息实体建立了关系。图书借阅信息实体的 E-R 图如图 10 所示。图 10 图书借阅信息实体 E-R 图 图书分类实体 图书分类实体包括编号、类别名称等属性。图书分类实体与图书信
10、息实体以图书类别编图书编号类别编号书名作者译者出版社价格出版时间读者条形码姓名性别年龄最大借书数量办证日期证件号码电话押金生日职业证件类型图书借阅编号读者编号操作员编号图书编号归还日期借阅日期是否归还页脚下载后可删除,如有侵权请告知删除!号建立了关系。图书分类实体的 E-R 图如图 11 所示。图书订购实体 图书订购实体主要包括图书编号、订购日期、订购数量、操作员、是否验收和折扣等属性。图书订购实体以图书编号与图书信息实体建立了关系。图书订购实体的 E-R 图如图 12所示。图 11 图书分类实体 E-R 图 图 12 图书订购实体 E-R 图 操作员信息实体 操作员信息实体主要包括编号、姓名
11、、性别、年龄、身份证号、工作日期、是否为管理员和密码等属性。其中,性别属性信息中“1代表男性,“2代表女性;是否为管理员属性信息中“0代表当前用户不是管理员,“1代表当前用户是管理员。操作员信息实体的 E-R 图如图 13 所示。图 13 操作员信息实体 E-R 图 库存信息实体 库存信息实体主要包括编号、库存数量等属性。库存信息实体以库存编号与图书信息实体建立了关系。库存信息实体的 E-R 图如图 14 所示。图书订购图书编号是否验收订购数量订购日期折扣操作员操作员编号姓名性别工作日期身份证号电话年龄是否为管理员密码页脚下载后可删除,如有侵权请告知删除!图 14 库存信息实体 E-R 图 1
12、.3 使用 PowerDesigner 建模 在数据库概念设计中已经分析了本系统中主要的数据库实体对象,通过这些实体可以得出数据表构造的根本模型,最终这些实体将被创立成数据表,形成完整的数据构造。笔者使用 PowerDesigner 软件对数据进展建模操作,创立完成的数据库模型如图 15 所示。库存编号库存数量 FK_TB_BOOKI_REFERENCE_TB_BOOKT FK_TB_BORRO_REFERENCE_TB_OPERA FK_TB_BORRO_REFERENCE_TB_BOOKI FK_TB_ORDER_REFERENCE_TB_BOOKI FK_TB_STOCK_REFEREN
13、CE_TB_BOOKI FK_TB_BORRO_REFERENCE_TB_READE tb_stockpile ISBN amount varchar(13)int tb_reader name sex age identityCard date maxNum tel keepMoney zj zy ISBN bztime varchar(10)varchar(2)int varchar(30)datetime int varchar(50)money int varchar(50)varchar(13)datetime tb_order ISBN date number operator c
14、heckAndAccept zk varchar(13)datetime int varchar(6)int float tb_operator id name sex age identityCard workdate tel admin password int varchar(12)varchar(2)int varchar(30)datetime varchar(50)bit varchar(10)tb_borrow id bookISBN operatorId readerISBN isback borrowDate backDate varchar(20)varchar(13)in
15、t varchar(13)int datetime datetime tb_bookType id typeName days fk int varchar(20)int float tb_bookInfo ISBN typeId bookname writer translator publisher date price varchar(13)int varchar(40)varchar(21)varchar(30)varchar(50)smalldatetime money 页脚下载后可删除,如有侵权请告知删除!图 15 图书馆管理系统的数据库模型 公共模块设计 视频 004 编写公共类
16、 例 001 图书馆管理系统 在开发过程中,经常会用到一些公共模块,如数据库连接及操作的类、限制文本框输入长度的类以及描述组合框索引与内容的类等,因此在开发系统前首先需要设计这些公共模块。下面将具体介绍图书馆管理系统中公共模块的设计过程。1.1 数据库连接及操作类的编写 数据库连接及操作类通常包括连接数据库的方法 getConnection()、执行查询语句的方法executeQuery()、执行更新操作的方法 executeUpdate()、关闭数据库连接的方法 close()。下面将详细介绍如何编写图书馆管理系统中的数据库连接及操作的类。步骤如下:1指定类保存的包,并导入所需的类包,本例将
17、其保存到包中。关键代码如下:package;/指定类的包名称 import;/导入进展数据库连接时所使用的 java.sql.Connection 类 import;/导入进展数据库连接时所使用的 java.sql.DriverManager 类 import;/导入进展数据表查询时所使用的 java.sql.ResultSet 类 import;/导入进展数据库操作时捕捉异常使用的 java.sql.SQLException 类 注意:包语句以关键字 package 后面紧跟一个包名称,然后以分号“;完毕;包语句必须出现在 import 语句之前;一个.java 文件只能有一个包语句。2在类
18、的构造方法中创立数据库连接操作。在此类中首先定义数据库连接驱动包名、数据库连接路径、数据库连接用户名、密码等静态变量,然后在构造函数中实现数据库连接操作。在数据库连接代码中需要添加 trycatch 关键字,捕捉数据库连接时可能抛出的异常。关键代码如下:/定义驱动包名称 protected static String dbClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver;protected static String dbUrl=jdbc:microsoft:sqlserver:/localhost:1433;+DatabaseNam
19、e=db_library;SelectMethod=Cursor;/定义数据库连接路径 protected static String dbUser=sa;/定义数据库连接用户名 protected static String dbPwd=;/定义数据库连接密码 protected static String second=null;页脚下载后可删除,如有侵权请告知删除!private static Connection conn=null;/定义一个数据库连接 private Dao()try /捕捉数据库连接异常 if(conn=null)/如果连接为空 Class.forName(dbC
20、lassName).newInstance();/装载 SQL Server 驱动 conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd);/获取数据库连接 else /如果连接不为空 return;/返回 catch(Exception ee)ee.printStackTrace();/捕捉数据库连接异常 3创立执行查询语句的方法 executeQuery,其返回值为 ResultSet 结果集。首先需要初始化 Dao 对象,调用构造函数,从而获取数据库连接。有一点值得注意,就是在创立数据库连接之前首先判断数据库连接是否为空,如果为空再创立数
21、据库连接,防止造成程序资源的浪费。executeQuery 方法的代码如下:private static ResultSet executeQuery(String sql)try /捕捉数据库操作异常 if(conn=null)/数据库连接如果为空 new Dao();return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,).executeQuery(sql);/返回一个ResultSet结果集 catch(SQLException e)e.printStackTrace();/捕捉异常 return null;finally
22、 页脚下载后可删除,如有侵权请告知删除!调用构造函数创立数据库连接。:常量允许记录指针向前或向后移动,且当 ResultSet 对象变动记录指针时,会影响记录指针的位置。这种类型的设置使结果集受到其他用户所作更改的影响。例如当一个用户正在浏览记录时,其他用户的操作使数据库中的数据发生了变化,这时当前用户所获取的记录集中的数据也会同步发生改变。:这种类型的设置支持对 ResultSet 的动态更新。4创立执行更新操作的方法 executeUpdate(),它的返回值为 int 型的整数,此返回值代表数据表更新操作是否成功,返回 1 代表成功,返回-1 代表没有成功。executeUpdate()
23、方法的关键代码如下:private static int executeUpdate(String sql)try /捕捉数据库操作异常 if(conn=null)/如果数据库连接为空 new Dao();/获取数据库连接 return conn.createStatement().executeUpdate(sql);/进展数据库更新操作 catch(SQLException e)System.out.println(e.getMessage();/打印捕捉的异常 return-1;/返回-1 finally 5 为了防止运行程序时资源的浪费,优化工程运行速度,需要在完成数据库操作后,关闭数
24、据库连接,所以笔者在类中创立了关闭数据库连接的方法 close()。为了使数据库连接在程序完毕后确定会被关闭,在 close()方法中参加了 finally 字段,在 finally 块中将数据库连接置空。关键代码如下:public static void close()try /捕捉异常 conn.close();/关闭数据库连页脚下载后可删除,如有侵权请告知删除!接 catch(SQLException e)e.printStackTrace();/捕捉异常 finally conn=null;/在最终执行块中将数据库连接置空 1.2 MenuActions 类的编写 通常激活同一个命令有
25、多种方式,用户可以通过工具栏中按钮、菜单项选择择特定的功能。在本系统中,最常用的命令就是弹出内部窗体,笔者将本系统中需要弹出的内部窗体命令统一放入 MenuActions 类中,这样触发任何一种组件事件时,都会按照统一的方式处理。Swing 包提供了一个非常有用的机制,用来封装命令,并将其连接到多个事件源,这种机制就是 Action 接口。Action 接口有如下方法:public void actionPerformed(ActionEvent e)public Object getValue(String key)public void putValue(String key,Object
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- xx 学校图书馆 管理 系统
限制150内