xx学校图书馆管理系统(共64页).docx
《xx学校图书馆管理系统(共64页).docx》由会员分享,可在线阅读,更多相关《xx学校图书馆管理系统(共64页).docx(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上开发背景和需求分析例001 图书馆管理系统1.1 开发背景高校拥有一个小型图书馆,为全校师生提供一个阅读、学习的空间。近年来,随着生源不断扩大,图书馆的规模也随之扩大,图书数量也相应地大量增加,有关图书的各种信息成倍增加。面对如此庞大的信息量,校领导决定使用一套合理、有效、规范、实用的图书馆管理系统,对校内图书资料进行统一、集中的管理。笔者受该高校的委托,开发一个图书馆管理系统,开发宗旨是实现图书管理的系统化、规范化和自动化,达成图书资料集中、统一管理的目标。1.2 需求分析图书馆管理系统是图书馆管理工作中不可缺少的部分,对于图书馆的管理者和使用者来说都非常重要,但长
2、期以来,人们使用传统的手工方式或性能较低的图书馆管理系统管理图书馆的日常事务,操作流程比较繁琐,效率相当低。而一个成功的图书馆管理系统应提供快速的图书信息检索功能、快捷的图书借阅、归还流程,为管理者与读者提供充足的信息和快捷的数据处理手段。笔者通过对一些典型图书馆管理系统的考察,从读者与图书馆管理员的角度出发,本着以读者借书、还书快捷、方便的原则,要求本系统应具有以下特点。 具有良好的系统性能,友好的用户界面。 较高的处理效率,便于使用和维护。 采用成熟技术开发,使系统具有较高的技术水平和较长的生命周期。 系统尽可能简化图书馆管理员的重复工作,提高工作效率。 简化数据查询、统计难度。系统设计视
3、频001 系统功能概述例001 图书馆管理系统1.1 系统目标根据以上的需求分析以及与用户的沟通,该系统应达到以下目标。 界面设计友好、美观。 数据存储安全、可靠。 信息分类清晰、准确。 强大的查询功能,保证数据查询的灵活性。 操作简单易用、界面清晰大方。 系统安全、稳定。 开发技术先进、功能完备、扩展性强。 占用资源少、对硬件要求低。 提供灵活、方便的权限设置功能,使整个系统的管理分工明确。1.2 系统功能结构图书馆管理系统分为4大功能模块,分别为“基础数据维护”、“图书借阅管理”、“新书订购管理”、“系统维护”。本系统各个部分及其包括的具体功能模块如图1所示。图Error! Bookmar
4、k not defined. 图书馆管理系统功能结构1.3 系统流程图图书馆管理系统的系统流程如图2所示。图2 图书馆管理系统流程图1.4 系统预览图书馆管理系统由多个程序界面组成,下面仅列出几个典型界面。读者相关信息添加界面如图3所示,该界面用于将读者相关信息添加至数据表中;读者信息修改与删除界面如图4所示,该界面用于展示读者相关信息,并且提供了修改与删除功能。图3 读者相关信息添加界面图4 读者信息修改与删除界面新书订购管理界面如图5所示,主要实现新书订购功能。图书验收界面如图6所示,主要实现新书验收功能。图5 新书订购管理界面图6 图书验收界面1.5 构建开发环境在开发图书馆管理系统时,
5、需要具备下面的开发环境。 操作系统:Windows 2003。 Java开发包:JDK 6.0。 数据库:SQL Server 2000。 开发工具:Eclipse 3.2。1.6 文件夹组织结构在编写代码之前,可以将系统中可能用到的文件夹先创建出来,这样不但方便以后的开发工作,也可以规范系统的整体架构。笔者在开发图书馆管理系统时,设计了如图7所示的文件夹架构图。在开发时将所创建的文件保存在相应的文件夹中即可。图7 图书馆管理系统文件夹组织结构数据库设计视频002 数据库设计视频003 创建项目例001 图书馆管理系统1.1 数据库分析SQL Server 2000具有很强的完整性与可伸缩性,
6、具有较低的价格比与性能比,考虑到本系统的稳定性与可靠性以及开发程序与用户需求,笔者决定在设计该系统时选择SQL Server 2000数据库来满足系统的需求。1.2 数据库概念设计根据以上对系统所作的需求分析、系统设计,规划出本系统中使用的数据库实体分别为图书信息实体、图书分类实体、图书订购实体、读者信息实体、操作员信息实体、图书借阅信息实体、库存信息实体。其中图书信息实体与图书订购实体、图书分类实体、图书订购实体、图书借阅信息实体、库存信息实体都具有关系,而读者信息实体与图书借阅信息实体同样具有关系。下面将介绍几个关键实体的E-R图。 图书信息实体图书信息实体包括图书编号、图书类别编号、书名
7、、作者、译者、出版社、价格、出版时间等属性。其中图书编号为图书信息实体的主键,图书类别编号为图书信息实体的外键,与图书类别实体具有外键关系。图书信息实体的E-R图如图8所示。图8 图书信息实体E-R图 读者信息实体读者信息实体包括条形码、姓名、性别、年龄、电话、押金、生日、职业、证件类型、办证日期、最大借书数量、证件号码等属性。读者条形码作为本实体的唯一标识。其中,在性别属性标识信息中,“1”代表此读者为男性,“2”代表此读者为女性;最大借书数量属性设置默认值为3;而在证件属性标识信息中,“0”代表身份证,“1”代表军人证,“2”代表学生证,“3”代表工作证。读者信息实体的E-R图如图9所示。
8、图9 读者信息实体E-R图 图书借阅信息实体图书借阅信息实体包括编号、图书编号、读者编号、操作员编号、是否归还、借阅日期、归还日期等属性。编号作为图书借阅信息实体的唯一标识,它包括两个外键,分别为图书编号与读者编号,图书借阅信息实体以这两个外键与图书信息实体、读者信息实体建立了关系。图书借阅信息实体的E-R图如图10所示。图10 图书借阅信息实体E-R图 图书分类实体图书分类实体包括编号、类别名称等属性。图书分类实体与图书信息实体以图书类别编号建立了关系。图书分类实体的E-R图如图11所示。 图书订购实体图书订购实体主要包括图书编号、订购日期、订购数量、操作员、是否验收和折扣等属性。图书订购实
9、体以图书编号与图书信息实体建立了关系。图书订购实体的E-R图如图12所示。图11 图书分类实体E-R图图12 图书订购实体E-R图 操作员信息实体操作员信息实体主要包括编号、姓名、性别、年龄、身份证号、工作日期、电话、是否为管理员和密码等属性。其中,性别属性信息中“1”代表男性,“2”代表女性;是否为管理员属性信息中“0”代表当前用户不是管理员,“1”代表当前用户是管理员。操作员信息实体的E-R图如图13所示。图13 操作员信息实体E-R图 库存信息实体库存信息实体主要包括编号、库存数量等属性。库存信息实体以库存编号与图书信息实体建立了关系。库存信息实体的E-R图如图14所示。图14 库存信息
10、实体E-R图1.3 使用PowerDesigner建模在数据库概念设计中已经分析了本系统中主要的数据库实体对象,通过这些实体可以得出数据表结构的基本模型,最终这些实体将被创建成数据表,形成完整的数据结构。笔者使用PowerDesigner软件对数据进行建模操作,创建完成的数据库模型如图15所示。图15 图书馆管理系统的数据库模型公共模块设计视频004 编写公共类例001 图书馆管理系统在开发过程中,经常会用到一些公共模块,如数据库连接及操作的类、限制文本框输入长度的类以及描述组合框索引与内容的类等,因此在开发系统前首先需要设计这些公共模块。下面将具体介绍图书馆管理系统中公共模块的设计过程。1.
11、1 数据库连接及操作类的编写数据库连接及操作类通常包括连接数据库的方法getConnection()、执行查询语句的方法executeQuery()、执行更新操作的方法executeUpdate()、关闭数据库连接的方法close()。下面将详细介绍如何编写图书馆管理系统中的数据库连接及操作的类Dao.java。步骤如下:(1)指定类Dao.java保存的包,并导入所需的类包,本例将其保存到com.wsy.dao包中。关键代码如下:package com.wsy.dao;/指定类的包名称import java.sql.Connection;/导入进行数据库连接时所使用的java.sql.Con
12、nection类import java.sql.DriverManager;/导入进行数据库连接时所使用的java.sql.DriverManager类import java.sql.ResultSet;/导入进行数据表查询时所使用的java.sql.ResultSet类import java.sql.SQLException;/导入进行数据库操作时捕捉异常使用的java.sql.SQLException类注意:包语句以关键字package后面紧跟一个包名称,然后以分号“;”结束;包语句必须出现在import语句之前;一个.java文件只能有一个包语句。(2)在Dao.java类的构造方法中创
13、建数据库连接操作。在此类中首先定义数据库连接驱动包名、数据库连接路径、数据库连接用户名、密码等静态变量,然后在构造函数中实现数据库连接操作。在数据库连接代码中需要添加trycatch关键字,捕捉数据库连接时可能抛出的异常。关键代码如下:/定义驱动包名称protected static String dbClassName = com.microsoft.jdbc.sqlserver.SQLServerDriver;protected static String dbUrl = jdbc:microsoft:sqlserver:/localhost:1433;+ DatabaseName=db_
14、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(dbClassName).newInst
15、ance();/装载SQL Server驱动conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd); /获取数据库连接else/如果连接不为空return;/返回 catch (Exception ee) ee.printStackTrace();/捕捉数据库连接异常(3)创建执行查询语句的方法executeQuery,其返回值为ResultSet结果集。首先需要初始化Dao对象,调用构造函数,从而获取数据库连接。有一点值得注意,就是在创建数据库连接之前首先判断数据库连接是否为空,如果为空再创建数据库连接,避免造成程序资源的浪费。exe
16、cuteQuery方法的代码如下:private static ResultSet executeQuery(String sql) try /捕捉数据库操作异常if(conn=null)/数据库连接如果为空unew Dao();return conn.createStatement(vResultSet.TYPE_SCROLL_SENSITIVE,wResultSet.CONCUR_UPDATABLE).executeQuery(sql);/返回一个ResultSet结果集 catch (SQLException e) e.printStackTrace();/捕捉异常return null
17、; finally u 调用构造函数创建数据库连接。v ResultSet.TYPE_SCROLL_SENSITIVE:常量允许记录指针向前或向后移动,且当ResultSet对象变动记录指针时,会影响记录指针的位置。这种类型的设置使结果集受到其他用户所作更改的影响。例如当一个用户正在浏览记录时,其他用户的操作使数据库中的数据发生了变化,这时当前用户所获取的记录集中的数据也会同步发生改变。w ResultSet.CONCUR_UPDATABLE:这种类型的设置支持对ResultSet的动态更新。(4)创建执行更新操作的方法executeUpdate(),它的返回值为int型的整数,此返回值代表数
18、据表更新操作是否成功,返回1代表成功,返回-1代表没有成功。executeUpdate ()方法的关键代码如下: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 fin
19、ally (5)为了避免运行程序时资源的浪费,优化项目运行速度,需要在完成数据库操作后,关闭数据库连接,所以笔者在Dao.java类中创建了关闭数据库连接的方法close()。为了使数据库连接在程序结束后确定会被关闭,在close()方法中加入了finally字段,在finally块中将数据库连接置空。关键代码如下:public static void close() try /捕捉异常conn.close();/关闭数据库连接 catch (SQLException e) e.printStackTrace();/捕捉异常finallyconn = null;/在最终执行块中将数据库连接置空
20、1.2 MenuActions类的编写通常激活同一个命令有多种方式,用户可以通过工具栏中按钮、菜单选择特定的功能。在本系统中,最常用的命令就是弹出内部窗体,笔者将本系统中需要弹出的内部窗体命令统一放入MenuActions类中,这样触发任何一种组件事件时,都会按照统一的方式处理。Swing包提供了一个非常有用的机制,用来封装命令,并将其连接到多个事件源,这种机制就是Action接口。Action接口有如下方法: public void actionPerformed(ActionEvent e) public Object getValue(String key) public void pu
21、tValue(String key, Object value) public boolean isEnabled() public void setEnabled(boolean b) public void addPropertyChangeListener(PropertyChangeListener listener) public void removePropertyChangeListener(PropertyChangeListener listener)其中第一个方法在实现ActionListener接口的程序中经常看到,实际上Action接口扩展了ActionListene
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- xx 学校图书馆 管理 系统 64
限制150内