1、图书馆管理信息系统开发图书馆管理信息系统开发一、绪论当今世界正处于科技高速发展,信息量剧增的时代,伴随科学技术的不断发展进步,人们对图书的需求越来越大,馆存图书也不断增加,各系统对各门类图书的需求也越来越具体。但目前各图书馆对图书的管理很多停留在书卡和书目的一般查询上,花费了大量资金购置的图书和计算机软件,其关系只停留在图书和目录,主要原因在于人们所进行的计算机管理只简单的将书目录入软件中,再根据目录查找图书这一循环体中。目前大部分图书馆的图书管理都处于一种馆藏图书量大,各书馆所存图书相类似,专业性图书所占比例较小,管理方法简单,图书利用率低,管理成本又高。这就要求我们在信息技术高速发展的今天
2、,图书馆管理运用网络技术,通过信息系统的开发,在图书馆之间互通有无,有利于提高图书的利用率。 从与信息有关的学科来看,信息管理处于信息学技术,信息管理,信息社会学之间,它以计算机技术和信息技术为基础融合成管理学、信息学,发展成了一门学科管理信息系统。 本系统在VF环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析传统的人工管理图书馆的不足,创建了一套行之有效的计算机管理图书馆的方案。文章详细介绍了图书管理信息系统的系统分析部分,包括可行性分析、组织机构分析、管理职能分析、业务流程分析、数据流程分析、数据字典、处理描述等等;系统设计部分主要介绍了系统功
3、能设计和数据库设计;系统实现部分列出了几个主要的程序框图,并附带了一些主要的窗口和程序。本系统界面友好,操作简单,比较实用。二、系统规划1.系统功能设计“图书馆借阅管理信息系统”的主要功能有:读者登陆、图书借阅、图书采编、读者信息管理和系统维护。系统功能如下图1:图书管理信息系统读者登陆系统维护图书采编图书借阅用户管理口令修改图书编目图书典藏图书征订图1.1 系统结构图各子系统功能如下所述:读者登陆读者访问系统时系统将检验读者的名字和密码,经过注册的读者允许进入系统。图书借阅系统读者查找到所需图书后,在图书保留期到图书馆办理借阅手续。图书借阅系统处理图书借阅、还书、续借等手续。图书采编体统图书
4、采购入库,经过编目等处理后,将其目录信息存入数据库,提供给读者检索适用。目录信息包括图书编号、图书类别、书名、作者、定价、出版日期和数量等。系统维护模块系统维护模块主要为图书馆管理人员提供图书统计信息和读者统计信息,以便于管理人员从宏观上掌握图书馆运行的总体情况。三、系统分析1.可行性分析可行性分析是在进行初步调查后所进行的对系统开发必要性和可能性的研究,所以也称为可行性研究。信息系统也应从技术可行性,经济可行性和社会可行性三方面来论证。通过长时间的观察与实践,我认为图书馆管理系统的可行性分析如下:(1)经济可行性分析作为图书馆这样的商业性质较小的场所,其经济成分比重相对较少,主要是支出的费用
5、:其中包括设备购置费、软件开发费用、管理和维护费、人员工资和培训费等。由于各个图书馆实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少,前期的资金投入主要集中于购置图书上。建立信息中心,可将来自各方面的信息集中管理,提高图书管理的计划性和预见性,快速地反馈市场信息。(2)技术可行性分析技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准
6、确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。(3)社会可行性分析社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是图书馆完全有可能也有能力采用这样先进的管理技术。它对图书馆带来的影响可以看到:对传统管理理念的冲击,可能引起管理层的变动和人员的调整。对图书馆工作人员的要求提高,使图书馆在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽图书馆在市场环境下的生存空间。对图书馆与读者之间业务方式的
7、转变和扩充。2.组织结构调查为了对系统有一个全貌性的了解,首先要对系统的部人员结构、组织及用户情况有所了解。图书馆系统的组织结构图如下:3.业务调查系统的业务是系统要达到的业务目标,业务流程分析是系统分析中的基础环节。图书馆里信息系统得业务流程如图所示:图书管理员编制图书采购计划,由采购员负责新书的采购工作。采购图书入库后,交由采编室编目,粘贴标签,产生图书目录。图书交由图书借阅室上架,供读者借阅。4.数据流程调查(1)数据流程图是全面描述信息系统逻辑模型的工具,它抽象概括地把信息系统中各种业务处理过程联系起来。以下是图书馆管理信息系统的数据流程图。零层数据流程图1层数据流程图2层数据流程图a
8、图书编目系统数据流程图b图书借阅系统数据流程图c图书征订系统数据流程图d系统维护数据流程图 (2)数据流分析数据流编号:D01数据流名称:图书编目信息 简述:图书编目信息数据流来源:图书购买后,由图书馆采编人员编码整理后,输入计算机.数据流去向: 图书表.图书采编信息将采编数据存入数据库数据流组成: 书名+索书号+作者+容简介+关键词+条码+字数+页数+出版日期数据流量: 30本/日高峰流量: 100本/日数据流编号: D02数据流名称: 图书借阅单 简述: 图书借阅单数据流来源: 用户填写图书借阅单交给图书馆管理人员,图书馆管理人员审核后,输入计算机.数据流去向:P2-11检查读者身份数据流
9、组成: 借书日期+索书号+读者账号+库室数据流量:500本/日高峰流量: 1500本/日数据流编号: D03数据流名称: 填写借阅记录 简述: 填入借阅表的借书记录数据流来源: P2-13检查合格的借阅图书信息录入到借阅表中数据流去向: 借阅表数据流组成: 借书日期+索书号+读者账号+库室+还书日期数据流量: 500人/日高峰流量: 1500人/日数据流编号: D04数据流名称: 借阅图书数量 简述: 修改图书库中图书数量数据流来源: P2-13修改图书典藏模块中图书数量数据流去向: 图书表数据流组成: 索书号+借阅数量数据流量: 500本/日高峰流量: 1500本/日数据流编号: D05数据
10、流名称: 图书征订信息 简述: 读者征订图书时写的信息数据流来源: 用户填写图书征订信息,要求征订图书数据流去向: P4-11预定信息输入数据流组成: 作者+出版日期+数量+征订日期数据流量: 20次/日高峰流量: 50次/日数据流编号: D06数据流名称: 填写图书征订信息 简述: 征订图书填写借阅表数据流来源: 用户填写图书征订信息,要求征订图书数据流去向: 借阅表数据流组成: 作者+出版日期+数量+征订日期数据流量: 20次/日高峰流量: 50次/日数据流编号: D07数据流名称: 还书记录 简述: 还书记录数据流来源: 图书管理人员数据流去向: P2-14图书归还处理数据流组成: 索书
11、号+借阅数量数据流量: 100笔/日高峰流量: 200笔/日数据流编号: D08数据流名称: 填写归还记录 简述: 在图书借阅模块中填写归还记录数据流来源: P2-14图书归还处理数据流去向: 借阅表数据流组成: 索书号+借阅数量+状态数据流量: 100笔/日高峰流量: 200笔/日数据流编号: D09数据流名称: 归还修改在库书量 简述: 还书时修改图书库中的在库数量数据流来源: P2-14图书归还处理数据流去向: 图书表数据流组成: 索书号+借阅数量数据流量: 100笔/日高峰流量: 200笔/日数据流编号: D010数据流名称: 读者登陆信息 简述: 读者登陆信息数据流来源: 图书馆管理
12、人员数据流去向: P7-11读者登陆检查数据流组成: 用户名+密码数据流量: 100人次/日高峰流量: 300人次/日数据流编号: D011数据流名称: 读者信息 简述: 读者信息数据流来源: P7-11读者登陆检查数据流去向: 读者表数据流组成: 用户名+密码+权限数据流量: 100人次/日高峰流量: 300人次/日(3)处理逻辑的描述处理逻辑编号:P1处理逻辑名称:图书编目系统 简述:图书采购入库,经过编目等处理后,将其目录信息存入数据库,提供给读者使用。目录信息包括书名、索书号、作者、容简介、关键词、条码、字数、页数、出版日期等。输入的数据流:图书编目信息(D01) 处理逻辑:编目数据录
13、入,要求录入数据正确输出的数据流:D01处理频率:30本/日处理逻辑编号:P1-11处理逻辑名称:编目管理 简述:图书采购入库,经过编目等处理后,将其目录信息存入数据库,提供给读者使用。目录信息包括书名、索书号、作者、容简介、关键词、条码、字数、页数、出版日期等。输入的数据流:图书编目信息(D01) 处理逻辑:编目数据录入,要求录入数据正确输出的数据流:D01处理频率:30本/日处理逻辑编号:P2处理逻辑名称:图书借阅系统 简述:读者查找到所需图书后应当到图书馆办理借阅手续。图书借阅系统处理图书借阅、还书、续借等手续。输入的数据流: 图书借阅单D02处理逻辑:图书借阅单输入,检查读者身份,检查
14、图书在库情况,然后填写图书借阅库并修改图书表中的在库数量。输出的数据流:D01处理频率:100本/日处理逻辑编号:P2-11处理逻辑名称:检查读者身份。 简述:检查读者身份,已注册的读者可以借书。输入的数据流:图书借阅单D02处理逻辑:查询读者表,已注册的读者可以借书。输出的数据流:D02合格借书者处理频率:100本/日处理逻辑编号:P2-12处理逻辑名称:检查图书是否在库 简述:检查所借图书是否有足够的库存。输入的数据流:图书借阅单D02 处理逻辑:访问图书表,检查所借图书是否有足够的库存。输出的数据流:D02可以借阅处理频率:100本/日处理逻辑编号:P2-13处理逻辑名称:填写借阅表,修
15、改图书表。 简述:填写借阅表,修改图书表。输入的数据流:图书借阅单D02 处理逻辑:修改图书表中的所借图书的在库数量,在借阅表中填写借书情况。输出的数据流:D02可以借阅处理频率:100本/日处理逻辑编号:P2-14处理逻辑名称:图书归还处理 简述:图书归还处理输入的数据流: 还书记录D07处理逻辑:还书时修改图书表中所借图书的在库量,并在借阅表中填写还书情况。输出的数据流:填写归还记录(D08)+归还修改在库书量(D09)处理频率:100本/日处理逻辑编号: P3处理逻辑名称: 图书征订系统 简述:图书征订系统。读者可从图书馆管理系统信息系统进入图书征订系统,进行图书的征订。输入的数据流:
16、图书征订信息(D05)处理逻辑:读者填写图书征订信息,系统将检查读者的身份,合格的将写入借阅表,并修改图书库中该书的库存量。输出的数据流:填写图书征订信息(D06)处理频率: 50本/日处理逻辑编号: P3-11处理逻辑名称: 征订信息输入 简述:征订信息输入输入的数据流: 图书征订信息(D05)处理逻辑:读者填写图书征订信息输出的数据流:P3-12读者身份检查处理频率: 50本/日处理逻辑编号:p3-12处理逻辑名称: 读者身份检查 简述:读者身份检查输入的数据流: 图书征订信息(D05)处理逻辑:检查读者身份。输出的数据流:P3-13征订信息处理频率: 50本/日处理逻辑编号: P3-13
17、处理逻辑名称: 征订处理 简述:征订处理输入的数据流: 图书征订信息(D05)处理逻辑:合格的征订将写入借阅表,并修改图书表中该书的在库数量。输出的数据流:填写图书征订信息(D06)处理频率: 50本/日处理逻辑编号: P4处理逻辑名称: 维护系统 简述:系统维护对读者的管理。只有系统中注册的用户才能在本馆中借阅图书。输入的数据流: 读者登陆信息(D010)处理逻辑:读者登陆信息录入输出的数据流:读者信息(D011)处理频率: 100人次/日处理逻辑编号:P4-11处理逻辑名称:读者登陆检查 简述:审查用户信息,合格的用户信息输入读者库。输入的数据流: 读者登录信息(D010)处理逻辑:读者登
18、录信息录入输出的数据流:读者信息(D011)处理频率:100人次/日(4)数据存储的描述数据存储编号: F01数据存储名称:读者表简述:读者信息,读者在本馆注册后成为注册读者。数据存储组成:用户名+密码关键字: 用户名相关联的处理:P2-11 P3-12 P4-11数据存储编号: F02数据存储名称:图书库简述:存储本图书馆图书信息数据存储组成:书名+索书号+作者+容简介+关键词+条码+字数+页数+出版日期关键字: 书名相关联的处理:P1-11 P2-12 P2-13 P2-14 P3-13数据存储编号: F03数据存储名称:借阅表简述:存储本馆图书借书信息数据存储组成:借书日期+索书号+读者
19、账号+库室+还书日期+借书量+还书量关键字: 索书号相关联的处理:P2-13 P2-14 P3-13(5)外部实体描述外部实体编号:S01外部实体名称:读者简述:图书馆用户输入的数据流:D10输出的数据流:D05外部实体编号:S02外部实体名称:图书馆管理人员简述:图书馆管理人员输入的数据流:D01 D02 D03 D07 D08 D1输出的数据流:D04 D06 D09四、系统设计进入了设计阶段,要把软件“做什么”的逻辑模型变换成“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反应在设计说明书文档中,所以系统的设计是把系统要求转化成系统表示的过程。1.总体设计本系统设置了1名管理员
20、和若干名操作员,分为四大板块9个功能。设置的操作人员由管理员设置。如果用户名或者密码之一错误就会出现错误的提示。2.系统物理配置方案图书馆管理信息系统采用两台服务器构成双机备份结构,保证提供实时服务。为保证较快的响应时间,选用处理速度较快的计算机系统,存大小对数据库系统的响应速度影响较大,选择存教大的系统。网络通信速度选用100Mbit/s/1000Mbit/s。为保证系统中的信息安全,配置必要的数据备份设备(采用外部备份方式)。3.数据存储设计以系统用户数据管理为例:当选择“修改”按纽的时候,三个文本框会自动改为输入状态。如下图当数据修改完以后,只要选择“保存”按纽即可,数据会被存储在名为S
21、ysuserdata的表中。以下是数据修改前后的对比: 4.输出设计以图书征订管理模块为例:读者可以在界面上选择“预览”按纽。得到下图:读者可以通过预览的方式查看自己的信息。如果确认无误,则选择“打印”按纽,进行下一步的操作。这样读者可以把自己想要的读书信息和征订信息通过系统输出,打印成报表。5.输入设计以图书编目模板为例:当管理员进入该界面后,进行数据录入。选择“添加”按纽。当数据录入完毕后,再选择“保存”按纽。数据将保存在表中。两表的对比:6.代码设计及设计规在这里,我以图书借阅模块为例:图书借阅代码设计“借书”按纽*检查是否输入了图书条码if empty(thisform.txtcode
22、.text) messagebox(请输入图书条码,16,图书借阅管理) thisform.txtcode.setfocus returnendif*检查在选择的库室中是否存在该条码图书cCode=alltrim(thisform.txtcode.text)cRoom=thisform.cmbroom.valueselect storebiblilocate for alltrim(条码)=cCode and alltrim(库室名)=croomif not found() messagebox(“+cRoom+”+无条码图书,16,图书借阅管理) thisform.txtcode.setfo
23、cus returnendif*检查读者是否已经借阅了该条码图书select tempCursorlocate for alltrim(条码)=cCodeif found() messagebox(读者已经借阅该条码图书,16,图书借阅管理) thisform.txtcode.setfocus returnendif*保存读者借书记录ndate=val(thisform.txtlenddate.text)if ndate=0 insert into lenddata (条码,证号,库室,借期) ; values (cCode,alltrim(thisform.txtnum.text),cRoo
24、m,date()else nyear=year(date() nmonth=month(date() nday=day(date() nmonth=nmonth+ndate if nmonth12 nyear=nyear+1 nmonth=nmonth-12 endif ddate=date(nyear,nmonth,nday) insert into lenddata (条码,证号,库室,借期,还期) ; values (cCode,alltrim(thisform.txtnum.text),cRoom,date(),ddate)endif*刷新读者借书清单,执行查询获得读者借阅图书数据cn
25、um=alltrim(thisform.txtnum.text)select lenddata.条码,书名,索书号,库室,借期,还期 from lenddata,storebibli ;where lenddata.条码=storebibli.条码 and alltrim(lenddata.证号)=cnum and ; lenddata.库室=storebibli.库室名;into cursor tempCursor*显示读者个人借书清单thisform.txtLended.value=reccount()thisform.grid1.recordsourcetype=1thisform.gr
26、id1.recordsource=tempCursor*根据读者借阅图书册数是否达到借书数量限制禁用或启用借书按钮if thisform.txtsum.value=thisform.txtlended.value thisform.cmdlend.enabled=.F.else thisform.cmdlend.enabled=.T.endif*修改馆藏图书记录的可借数update storebibli set 可借数=可借数-1;where alltrim(条码)=cCode and alltrim(库室名)=cRoom“续借”按纽*检查是否输入了图书条码if empty(thisform.
27、txtcode.text) messagebox(请输入图书条码,16,图书借阅管理) thisform.txtcode.setfocus returnendif*检查读者是否已经借阅了该条码图书cCode=alltrim(thisform.txtcode.text)select tempCursorlocate for alltrim(条码)=cCode if not found() messagebox(读者没有借阅条码图书,16,图书借阅管理) thisform.txtcode.setfocus returnendif*修改该条码对应的借书记录ndate=val(thisform.txt
28、lenddate.text)if ndate=0 update lenddata set 借期=date(); where alltrim(条码)=cCodeelse nyear=year(date() nmonth=month(date() nday=day(date() nmonth=nmonth+ndate if nmonth12 nyear=nyear+1 nmonth=nmonth-12 endif ddate=date(nyear,nmonth,nday) update lenddata set 借期=date(),还期=ddate; where alltrim(条码)=cCode
29、endif*刷新读者借书清单,执行查询获得读者借阅图书数据cnum=alltrim(thisform.txtnum.text)select lenddata.条码,书名,索书号,库室,借期,还期 from lenddata,storebibli ;where lenddata.条码=storebibli.条码 and alltrim(lenddata.证号)=cnum and ; lenddata.库室=storebibli.库室名;into cursor tempCursor*显示读者个人借书清单thisform.txtLended.value=reccount()thisform.grid
30、1.recordsourcetype=1thisform.grid1.recordsource=tempCursor*根据读者借阅图书册数是否达到借书数量限制禁用或启用借书按钮if thisform.txtsum.value=thisform.txtlended.value thisform.cmdlend.enabled=.F.else thisform.cmdlend.enabled=.T.endif“还书”按纽*检查是否输入了图书条码if empty(thisform.txtcode.text) messagebox(请输入图书条码,16,图书借阅管理) thisform.txtcode.setfocus returnendif*检查读者是否借阅了该条码图书cnum=all