为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 图书馆管理系统

图书馆管理系统

2020-03-05 15页 doc 644KB 13阅读

用户头像

is_556823

暂无简介

举报
图书馆管理系统图书馆管理系统 ganquanzhong.top图书馆管理系统进入21世纪以来,信息技术从根本上推动了图书馆的飞速发展,计算机和计算机管理系统已成为图书馆进行图书管理的主要设备和系统。虽然日前很多大型的图书馆已经有”整套比较完善的管理系统,但是在一些中小型的图书馆中,大部分工作仍需手工完成,工作起来效率比较低,不便于动态,及时地调整图书结构。为了更好地适应当前图书馆的管理需求,解决手工管理中存在的弊端,越来越多的中小型图书馆正在逐步向计算机信息化管理转变。通过阅读本章,可以学习到:1.掌握图书馆管理系统的开发过程2...
图书馆管理系统
图书馆管理系统 ganquanzhong.top图书馆管理系统进入21世纪以来,信息技术从根本上推动了图书馆的飞速发展,计算机和计算机管理系统已成为图书馆进行图书管理的主要设备和系统。虽然日前很多大型的图书馆已经有”整套比较完善的管理系统,但是在一些中小型的图书馆中,大部分工作仍需手工完成,工作起来效率比较低,不便于动态,及时地调整图书结构。为了更好地适应当前图书馆的管理需求,解决手工管理中存在的弊端,越来越多的中小型图书馆正在逐步向计算机信息化管理转变。通过阅读本章,可以学习到:1.掌握图书馆管理系统的开发过程2.掌握如何使用PowerDesigner建模3.掌握如何在系统开发中实现Action接口4.掌握如何在蘖单栏中添加图标5.掌握如何使用格式化文本框1.1开发背景××高校拥有一个小型图书馆,为全校师生提供一个阅读、学习的空间。近年来,随着生源不断扩大,图书馆的规模也随之扩大,图书数量也相应地大量增加,有关图书的各种信息成倍增加。面对如此庞大的信息量,校领导决定使用一套合理、有效、、实用的图书馆管理系统,对校内图书资料进行统一、集中的管理。受该高校的委托,开发一个图书馆管理系统,其开发宗旨是实现图书管理的系统化、规范化和自动化,达成图书资料集中、统一管理的目标。1.2需求分析图书馆管理系统是图书馆管理工作中不可缺少的一部分,对于图书馆的管理员和读者来说都非常重要,但长期以来,人们习惯于使用传统的手工方式或性能较低的图书馆管理系统管理图书馆的日常事务,操作流程比较繁琐,效率相当低。而一个成功的图书馆管理系统应提供快速的图书信息检索功能,快捷的图书借阅、归还流程,能够为管理员与读者提供充足的信息和快捷的数据处理手段。通过对一些典型图书馆管理系统的考察,从读者与图书馆管理员的角度出发,本着以读者借书、还书快捷、方便的原则,要求本系统应具有以下特点。1.具有良好的系统性能,友好的用户界面。2.提高处理效率,便于使用和维护。3.采用成熟技术开发,使系统具有较高的技术水平和较长的生命周期。4.系统尽可能简化图书馆管理员的重复工作,提高工作效率。5.简化数据查询、降低统计难度。1.3系统设计1.3.1系统目标根据以上的需求分析以及与用户的沟通,该系统应达到以下目标。·界面设计友好、美观。·数据存储安全、可靠。·信息分类清晰、准确。·强大的查询功能,保证数据查询的灵活性。·操作简单易用。·系统安全、稳定。·开发技术先进、功能完备、扩展性强。·占用资源少、对硬件要求低。·提供灵活、方便的权限设置功能,使整个系统的管理分工明确。1.3.2系统功能结构图书馆管理系统分为4大功能模块,分别为“基础数据维护”、“图书借阅管理”、“新书订购管理”和“系统维护”。本系统各个部分及其包括的具体功能模块如图1.1所示。图1.1图书馆管理系统功能结构1.3.3系统用例图图书馆管理系统的用例图如图1.2所示。图1.2图书馆管理系统用例图1.3.4系统预览图书馆管理系统由多个程序界面组成,下面仅列出几个典型界面。读者相关信息添加界面如图1.3所示,该界面用于将读者相关信息添加至数据表中;读者信息修改与删除界面如图1.4所示,该界面用于展示读者相关信息,并且提供了修改与删除功能。1.用户登录1)用户登录用例 2)用户登录用例描述表用户登录用例描述 用例名称 用户登录 简要说明 前置条件 用户启动登录界面 基本事件流 用户录入姓名与密码,系统判断是否是合法用户和用户的级别 后置条件 保存用户的姓名与级别3)界面设计登录界面设计1.4读者信息修改与删除界面图书类别添加图1.3读者相关信息添加界面图图书类别修改新书订购管理界面如图1.5所示,主要实现新书订购功能。图1.5新书订购管理界面图书验收界面如图1.6所示,主要实现新书验收功能。图1.6图书验收界面更改密码用户信息添加用户信息修改与删除1.3.5构建开发环境在开发图书馆管理系统时,需要具备下面的开发环境。·操作系统:Windows7。·Java开发包:JDK6.0。·数据库:SQLServer2005。·开发工具:Eclipse3.2.1.3.6文件夹组织结构在编写代码之前,可以将系统中可能用到的文件夹先创建出来,这样不但方便以后的开发工作,也可以规范系统的整体架构。在开发图书馆管理系统时,设计了如图1.7所示的文件夹架构图。在开发时,将所创建的文件保存在相应的文件夹中即可。图1.7图书馆管理系统文件夹组织结构1.4数据库设计1.4.1数据库分析SQLServer具有很强的完整性与可伸缩性,性价比相当高。考虑到本系统的稳定性、可靠性以及用户需求,决定在设计该系统时选择SQLServer数据库来满足系统的需求。1.4.2数据库概念设计根据以上对系统所作的需求分析、系统设计,规划出本系统中使用的数据库实体分别为图书信息实体、图书分类实体、图书订购实体、读者信息实体、操作员信息实体、图书借阅信息实体、库存信息实体。其中图书信息实体与图书订购实体、图书分类实体、图书订购实体、图书借阅信息实体、库存信息实体都具有关系,而读者信息实体与图书借阅信息实体同样具有关系。下面将介绍几个关键实体的E-R图。·图书信息实体图书信息实体包括图书编号、图书类别编号、书名、作者、译者、出版社、价格、出版时间等属性。其中图书编号为图书信息实体的主键,图书类别编号为图书信息实体的外键,与图书分类实体具有外键关系。图书信息实体的E-R图如图1.8所示。 书名类别编号作者编号图书译者价格出版时间出版社图1.8图书信息实体E-R图·读者信息实体读者信息实体包括条形码、姓名、性别、年龄、电话、押金、生日、职业、证件类型、办证日期、最大借书数量、证件号码等属性。其中,条形码作为本实体的唯”标识;在性别属性标识信息中,“1”代表此读者为男性,“2”代表此读者为女性:最大借书数量属性设置默认值为3;而在证件类型属性标识信息中,“0"代表身份证,"1”代表军人证,“2”代表学生证,“3"代表工作证。读者信息实体的E-R图如图1.9所示。图1.9读者信息实体E-R图·图书借阅信息实体图书借阅信息实体包括编号、图书编号、读者编号、操作员编号、是否归还、借阅日期、归还日期等属性。编号作为图书借阅信息实体的唯”标识,包括两个外键,分别为图书编号与读者编号,图书借阅信息实体以这两个外键与图书信息实体、读者信息实体建立了关系。图书借阅信息实体的E-R图如图1.10所示。图1.10图书借阅信息实体E-R图·图书分类实体图书分类实体包括编号、类别名称、可借天数和罚款金额等属性。图书分类实体与图书信息实体以图书类别编号建立了关系。图书分类实体的E-R图如图1.11所示。图1.11图书分类实体E-R图·图书订购实体图书订购实体主要包括图书编号、订购日期、订购数量、操作员、是否验收和折扣等属性。图书订购实体以图书编号与图书信息实体建立了关系。图书订购实体的E-R图如图1.12所示。图1.12图书订购实体E-R图·操作员信息实体操作员信息实体主要包括编号、姓名、性别、年龄、身份证号、工作日期、电话、是否为管理员和密码等属性。其中,性别属性信息中“1"代表男性,“2"代表女性:是否为管理员属性信息中“0”代表当前用户不是管理员,“1"代表当前用户是管理员。操作员信息实体的E-R图如图1.13所示。图1.13操作员信息实体E-R图·库存信息实体库存信息实体主要包括编号、库存数量等属性。库存信息实体以库存编号与图书信息实体建立了关系。库存信息实体的E-R图如图1.14所示。图1.14库存信息实体E-R图1.4.3数据库建模在数据库概念设计中已经分析了本系统中主要的数据库实体对象,通过这些实体可以得出数据表结构的基本模型,最终这些实体将被创建成数据表,形成完整的数据结构,创建完成的数据库模型如图1.15所示。1.5公共模块设计在开发过程中,经常会用到些公共模块,如数据库连接及操作的类、限制文本框输入长度的类以及描述组合框索引与的类等,因此在开发系统前首先需要设计这些公共模块。下面将具体介绍图书馆管理系统中公共模块的设计过程。1.1.1数据库连接及操作类的编写数据库连接及操作类通常包括连接数据库的方法getConnection()、执行查询语句的方法executeQuery()、执行更新操作的方法executeUpdate()和关闭数据库连接的方法close()。下面将详细介绍如何编写图书馆管理系统中的数据库连接及操作类Dao.java。步骤如下:(1)指定类Dao.java保存的包,并导入所需的类包,本例将其保存到com.tsgl.dao包中。关键代码如下:packagecom.tsgl.dao;//指定类的包名称importjava.sqL.Connection;//导入进行数据库连接时所使用的java.sqL.Connection类importjava.sql.DriverManager//导入进行数据库连接时所使用的java.sql.DriverManager类Importjava.sql.ResultSet;//导入进行数据表查询时所使用的java.sql.ResultSet类impottjava.sqL.SQLException;//导入进行数据库操作时捕捉异常使用的java.sqI.SQLException类注意:包语句以关键字package后面紧跟一个包名称,然后以分号“;”结束;包语句必须出现在import语句之前;一个.java文件只能有一个包语句。(2)在Dao.java类的构造方法中创建数据库连接操作。在此类中首先定义数据库连接驱动包名、数据库连接路径、数据库连接用户名、密码等静态变量,然后在构造函数中实现数据库连接操作。在数据库连接代码中需要添加try".catch关键字,捕捉数据库连接时可能抛出的异常。关键代码如下://定义驱动包名称 protectedstaticStringdbClassName="com.mierosoft.jdbc.sqlserver.SQLServerDriver"; protectedstaticStringdbUrl="jdbc:mierosoft:sqlserver://localhost:1433;" +"DatabaseName=db_library;SelectMethod=Cursor";//定义数据库连接路径 protectedstaticStringdbUser="sa";//定义数据库连接用户名 protectedstaticStringdbPwd="";//定义数据库连接密码 protectedstaticStringsecond=null; privatestaticConnectionconn=null;//定义一个数据库连接 privateDao(){ try{//捕捉数据库连接异常 if(conn==null){//果连接为空 Class.forName(dbClassName).newInstance();//装载SQLServer驱动 conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd);//获取数据库连接 }else //果连接不为空 return;//返回 }catch(Exceptionee){ ee.printStackTrace();//捕捉数据库连接异常 } }(3)创建执行查询语句的方法executeQuery(),其返回值为ResultSet结果集。首先需要初始化Dao对象,调用构造函数,从而获取数据库连接。有一点值得注意,就是在创建数据库连接之前首先判断数据库连接是否为空,如果为空再创建数据库连接,避免造成程序资源的浪费。executeQuery()方法的代码如下: privatestaticResultSetexecuteQuery(Stringsql){ try{//捕捉数据库操作异常 if(conn==null)//库连接如果为空 newDao(); returnconn.createStatement(ResultSet.TYPE_SerOLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE).executeQuery(sql);//回一个RerultSet结果集 }catch(SQLExceptione){ e.printStackTrace();//异常 returnnull; }finally{ } }代码贴士●调用构造函数创建数据库连接.●ResultSet.TYPE-SerOLL-SENSITIVE:这种类型的设置允许记录指针向前或向后移动,且当ResultSet对象变动记录指针时,会影响记录指针的位I.这种类型的设置使结果集受到其他用户所做更改的影响.例如当一个用户正在浏览记录时,其他用户的操作使数据库中的数据发生了变化,这时当前用户所获取的记录集中的数据也会同步发生改变。●ResultSet.CONCURUPDATABLE:这种类型的设置支持对RcsultSet的动态更新。(4)创建执行更新操作的方法executeUpdate(),其返回值为int型的整数,此返回值代表数据表更新操作是否成功,返回1代表成功,返回-1代表没有成功。executeUpdate()方法的关键代码如下:privatestaticintexecuteUpdate(Stringsql){ try{ if(conn==null) newDao();//获取数据库连接 returnconn.createStatement().executeUpdate(sql);//进行数据库更新操作 }catch(SQLExceptione){ System.out.println(e.getMessage());//打印捕捉的异常 //if(e.getMessage().equals("[Mierosoft][SQLServerDriverforJDBC][SQLServer]DELETE语句与COLUMNREFERENCE约束'FK_TB_BORRO_REFERENCE_TB_BOOKI'冲突。该冲突发生于数据库'db_library',表'tb_borrow',column'bookISBN'。")) return-1;//返回-1 }finally{ } }(5)为了避免运行程序时资源的浪费,优化项目运行速度,需要在完成数据库操作后,关闭数据库连接,所以在Dao.java类中创建了关闭数据库连接的方法close()。为了使数据库连接在程序结束后确定会被关闭,在closc0方法中加入了finally字段,在finally块中将数据库连接置空。关键代码如下:publicstaticvoidclose(){ try{ conn.close();-- }catch(SQLExceptione){ e.printStackTrace(); }finally{ conn=null; } }1.1.2MenuActions类的编写
/
本文档为【图书馆管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索