图书馆信息管理系统总体设计
宁波理工学院
毕业论文(设计)
题 目 图书信息管理系统总体设计
姓 名 吴凯
学 号 3020813093
分院(系) 信息分院
专业班级 02计算机科学与技术(3)
指导教师 白剑宇
2006年5月30日
摘要
在网络连接各地信息的时代,各行各业都将自己的部分甚至全部工作都放到了网络上来进行,商业,工业,银行,教育等体系都有着自己独特的网络平台来提高工作效率。
一直以来图书馆都是以工作手工操作管理的,随着计算机的发展,更多的图书馆采用计算机图书管理系统来实现,这样可以得到更好的管理。对于图书馆而言,一个功能完备的图书管理系统是很重要的,它可以很大程度上,节省人力和物力资源。本论文主要介绍了开发图书管理系统的时代背景、系统设计的相关原理、可行性分析、设计模式、总体设计实现的具体内容及系统涉及到的技术问题。主要功能模块是用户登录、图书查询、图书管理等。
【关键词】图书管理系统;网络
Abstract
In the era of network dominative world, every walk of life applies the network to their partial or even whole work process. Each of the systems of commerce, industry, bank, education and so on possesses the exclusive network platform to improve the efficiency of work.
Library works have been always manually managed before. However,with the development of computers, more libraries are using computer management system to achieve their works, which could be better managed. As to the library, a well-functioning library management system is very important, which can to some extent significantly save human and material resources. This paper mainly introduced background of developing library management system, the relevant principles of system designing, feasibility analysis, designing patterns, detail of general system design and specific technical issues. Main function module is User's log-in , books inquiry , taking care of books。
Key Words: library management system; Internet
目录
第一章 概述
第二章 需求分析
第三章 总体设计 10
第四章 详细设计 20
第五章 系统实现 23
第六章 本系统使用说明 36
结束语 38
参考文献 39
致 谢 40
4 7
第一章 概述
Internet/Intranet的出现是本世纪内计算机通信领域最重要的一次革命。利用这种媒体, 人们可以建立一个虚拟的电子世界, 在这个世界里, 人们的思想和概念可以在几分钟内传遍全世界。借助于WWW 通过动态的交互式信息发布, 诸如网上购物、网上银行、网上书店、网上图书馆等一系列在线电子服务系统得以盛行。这些系统都离不开分布式的数据库、与用户及后台数据库交互的动态Web 应用程序、安全认证等技术。
目前国内各单位开发的图书资料管理信息系统很多, 其规模一般不很大, 管理范围多集中于本单位所从事的研究领域和专业的技术文档, 开发的软、硬件平台各异, 它们多运行于不同类型的主机、操作系统和数据库系统上。因此, 在当今网络跨平台、跨系统的现实面前, 这些图书管理信息系统的兼容性极差, 这给用户之间的信息交流和共享带来极大的不便。其后果是多个信息系统的经济效益和社会效益得不到充分地发挥。因此在Internet/Intranet环境下如何构建动态Web 图书信息数据库, 开发一套操作简便、易学、易用, 具有相同用户界面的统一查询系统是非常有意义的。
Intranet 采用的是一种全新的技术, 它以Web 技术为基础, 支持多种软、硬件平台(多种机型和多种操作系统) , 具有统一的用户界面。表现在统一的语言格式、统一的传输协议。用户界面简单易学, 终端用户几乎不需要培训。采用Intranet 技术能保护已有的软、硬件资源, 不会浪费已经开发的应用系统。利用它, 可以更好地使用已有的数据库系统信息。
图书管理系统的发展历史可以追溯到20世纪60年代末期。由于当时计算机技术已经进入实用阶段,同时大型图书馆用手工来计算和发放图书信息既费时费力又非常容易出差错,为了解决这个矛盾,第一代的图书管理系统应运而生。几乎没有报表生成功能和图书信息数据分析功能。但是,它的出现为图书管理的管理展示了美好的前景,即用计算机的高速度和自动化来替代手工的巨大工量,用计算机的高准确性来避免手工的错误和误差,使大规模集中处理大型图书馆的图书信息管理系统成为可能。第二代的图书管理系统出现于20世纪70年代末。由于计算机技术的飞速发展,无论是计算机的普及性,还是计算机系统工具和数据库技术的发展,都为图书管理系统的阶段性发展提供了可能。第二代图书管理系统基本上解决了第一代系统的主要缺陷,对报表生成和图书信息数据分析功能也都有了较大的改善。但
这一代的系统主要是由计算机专业人员开发研制的,未能系统地考虑图书管理的需求和理念,而且其非财务的图书管理信息也不够系统和全面。
图书管理系统的革命性变革出现在20世纪90年代末。由于市场竞争的需要, " 公正、公平、合理" 的图书馆管理理念和图书馆管理水平的提高,使社会对图书管理系统有了更高的需求;同时由于个人电脑的普及,数据库技术、客户/服务器技术,特别是Internet/Intranet技术的发展,使得第三代图书管理系统的出现成为必然。第三代图书管理系统的特点是从图书管理的角度出发,用集中的数据库将几乎所有与图书管理相关的数据统一管理起来,形成了集成的信息源。友好的用户界面,强有力的报表生成工具、分析工具和信息的共享使得图书管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑图书馆图书管理规划和政策。
1974年,国家批准“汉字信息工程”研制项目,由此揭开了我国图书馆建设的序幕。至今,我国图书馆信息管 理系统的发展大致经历了三个阶段,即单项业务的计算机管理阶段、图书馆计算机集成管理阶段和图书馆网络化建设阶段。
1.1图书馆发展初期
70年代中期至80年代中期,是我国图书馆信息管理系统的起步阶段。这一阶段历了从无到有,从小到大的发展过程。各图书情报单位开始研究和开发图书馆单项业务的计算机管理系统,如编目系统、流通系统,同时建立各种类型、 各种范围的联合目录及各种学科、各种层次的文献数据库系统。在这些系统中,硬件一般采用一台或多台计算机,软件大多使用DB ASE 和FoxBASE 数据库管理系统。该类系统的应 用标志着我国图书馆计算机管理局面的初步形成。
1.2 图书馆计算机集成系统管理阶段
80年代中期至90 年代中期,是我国图书馆信息管理系统高速发展阶段。在这一阶段里,各种类型的图书馆管理软件系统陆续研制成功并且投入应用,其显著特点是系统的集成化。这一时期,各个较大的文献信息机构和部分高等学校 图书馆相继开发各
编目、典藏、流通、期刊等) 自的图书馆自动化集成系统,以实现图书馆各项业务(如采购、
的自动化。此时的系统多数采用计算机局域网结构,有的采用大、中、小型 结构,也有的采用计算机多用户结构。该阶段较有代表性的系统有:大连博菲特公司的文献管理集成系统、上海交通大学包兆龙图书馆集成系统和东北电力大学图书馆集成系统等。
1.3 图书馆网络化建设阶段
90年代中期,从我国图书馆自动化整体情况看,正在由传统图书馆向自动化图书馆过渡,图书馆处在集成系统的提高和广泛应用阶段。随着Internet 的普及与发展,图书馆信息 管理系统迫切需要加快网络化建设。一方面加速现有图书馆信息管理系统的更新换代,向网络化拓展;另一方面加速引进国外大型图书馆信息管理系统,借鉴其先进的网络化功能。如 1996年上海图书馆引进的Horizon 系统,1997年初清华大学图书馆引进了INNOPAC 系统,1998年北京大学引进 并汉化了Sirsi 公司的Unicom 图书馆自动化集成系统等。经过一系列的努力,我国现已研制成具有网络功能的图书馆信息管理系统,如深圳图书馆ILAS 系统、江苏汇文系统、北京NLIS 大学的系统等。
计算机正被日益广泛地应用于信息管理。使计算机进行信息化管理,大大提高了工作效率,节省了大量的人力,物力。Internet 技术的发展使得图书管理技术手段和载体发生了革命性的变化,Internet 的开放性、分布性的特点和基于Internet 的巨大的计算能力使得图书管理突破了时间和空间的限制。基于Internet 的图书管理系统正成为人们的研究热点之一。与传统图书管理相比,基于Web 图书管理具有无可比拟的优越性,它可以将传统图书管理过程中的图书查询,图书的管理、图书的借阅等各个环节从以前的双手劳动中解放出来,大部分的工作可由计算机完成,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度提高图书管理过程的完整性。在现代大学图书馆管理中,如何快捷地为读者提供服务,提高读书的利用率等问题变得越来越突出。虽然图书馆管理系统既有操作简单,美观大方,也非常直观,也方便用户的查找。但现行的图书馆管理系统都存在的一个问题就是当图书的数量比较大的时候,处理的速度比较慢。有些图书馆管理系统也不能保证系统的安全性,会在用户非法入侵后系统崩溃。有些系统也并不具备可维护性,这些都可以在设计阶段通过周密的考虑得到解决。
第二章 需求分析
需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。
2.1图书管理现状
随着计算机技术的飞速发展,其应用方面已渗透到社会生活的各个领域。它已经成为我们学习和工作的得力助手。在学校,尤其是在一些高校,图书是学校的一项重要资源,图书的管理也是学校的一项常规性的重要工作。而长期以来,学生图书管理都是依赖人工进行的。现今,有很多的学校都已经开始使用计算机进行图书信息管理,并且起得良好的效果。近年来我校招生情况越来越好,所以图书管理工作越来越繁重,但由于种种原因,管理人员并没有增加,因此原有的人工管理工作已不能适应现行的工作需要。同时,陈旧的人工管理也不利于推广计算机应用。为使图书管理工作科学化、规范化,就必须采用计算机辅助管理。
2.2 功能需求分析
在图书馆管理系统中,对于读者来说,他们所关心的问题其实是如何方便的查询到图书馆中的书籍以及自己正在借阅或者已经借阅过些什么书,所借的书是否已经到期等等。所以对上述的“需求”进行分析之后,可以得到一个面向读者的简单的需求分析并得出系统在系统在面向读者方面应该至少做到如下几点:
(1) 图书查询。
图书的查询可以按图书的分类查,包括数据库类、网络类、科技类、程序类等等;也可以按书籍名称、书籍编号、作者、出版社等等进行详细细致的查询
(2) 读者信息查询,读者信息查询内容应该包括下面的几个方面:
① 读者信息——对读者的基本信息进行显示。
读者的基本信息包括:姓名、年龄、性别、学号、借书的卡号、联系电话、联系地址等
② 书刊借阅——对读者正在借阅的书籍进行查询。
输入读者的卡号,可以看到读者已借阅书籍的全部信息
③ 借阅历史——查询该读者借阅过的所有书籍。
包括正在借阅的书籍和已经借阅过的书籍,以及包括他们借阅的时间等
④ 违章信息——该读者的违章信息。
查看一下读者是否有借阅的书籍已经到归还的日期仍未归还的。如果有
应该取消其借书资格。
对于图书管理员来说,他所关心的问题是:
(1) 图书馆里有些什么书,他们都存放在那里,是不是可以被借阅;
图书馆里书的数量、种类、名称,以及新到的新书它们的存放地点。
新书是否已经入库、是否能够被借阅。
(2) 本图书馆发放的读者证有那些,如何管理这些读者证;
图书馆发放的读者证应该分为学生、老师和教授等,他们的证件不同所
借阅的书籍、书籍的数量、书籍的归还日期等都应该有所不同。
(3) 这些读者证都借阅着哪些书;
当管理员想要查看某位读者的借阅信息时,可以看到该读者什么时候借
阅了哪些书籍,借阅的书记是否已经到期等等。
(4) 如何来确定这些读者证是否可以用,以及借书的还期等。
当读者所借的额书籍当中有过期未还的书籍时,应该取消该读者的
借阅资格,并提醒该读者及时归还过期、以及即将到期的书籍。
基于这些出发,可以得到而向管理员的部分还应该具有的功能:
(1) 借阅管理——对读者的每一次借阅,还书进行登记和管理
管理员应该对读者的每一次书籍的借阅和归还,都进行登记并存储
在数据库中备份,方便以后的查询管理。
(2) 图书管理——对图书馆中的书籍进行管理。
对每一本书进行详细的遍类包括:书籍名称、书籍编号、作者、出
版社、书籍的种类、书籍存放地点等,以及新书是否入库,是否可
以借阅等。
(3) 借阅证管理——对读者的借阅证进行管理。
根据读者的身份不同,比如学生和老师,读者的借阅证的权限也不
同,具体到他们所借阅的书籍、书籍的数量、书籍的归还日期等。
(4) 读者规则管理——设置和管理读者规则。
主要就是读者所借书籍的数量和归还的日期,还判断读者是否有过
期未还的书籍等。
系统的可行性分析:
需求分析的任务:准确,完整的确定图书馆管理系统的各项要求。根据表格,卡片等资料了解系统中数据元素的输入,输出及流向情况。
1.系统开发的初步调查:
在系统的开发前期进行各项调查的目的是明确系统的开发目标和规模,这是对系统进行可行性研究的基础。考虑系统面向的场所和规模,为系统的开发做准确的定位是十分必要的。一般来讲,图书馆的规模决定藏书量的大小,图书馆作为学习的场所,不仅要求便于管理,还要求对读者和借阅者提供方便快速的查询,借阅和登记手续。一个好的图书馆管理系统关键在与管理机制是否健全。图书馆管理系统要统一图书的管理,对各类书籍的借阅情况和图书馆的现有藏书数量,种类要及时掌握,所以要求该系统具有很强的时效性。
2.系统可行性研究分析:
(1) 经济可行性分析:由于图书馆管理是商业性质比较小,所以在经济上并不需要太多的投入,其主要的支出可以在软件的开发费用上面。
(2) 社会可行性分析:图书馆管理系统可以对传统的管理概念带来一些冲击,对图书馆的工作人员有较高的要求,开拓图书馆在新环境下的生存空间,对社会的发展有着积极的作用。
综上所述,此系统开发目标已明确,在需求,技术等方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。
第三章 总体设计
需求分析简单来说就是分析出系统要做一件什么事情。图书管理系统开发的总体任务是实现图书的借阅和管理的信息化。总体设计就是把这些概念从抽象到具体的过程。
图书馆管理信息系统的功能是,利用现有服务器、终端、网络和数据库技术,对各种图书资料等信息进行有效管理。如图书信息录入,信息查询,借还登记等等。使广大读者及时了解馆藏资料信息和最新图书情况,达到信息共享。
方案的选择:
1.基于C/S模式架够的图书管理系统
C /S :客户/服务器(Client/Server) 结构:客户端向服务器发出服务请求,服务器根据服务请求完成相应的作业并将处理结果送回客户端。把应用程序中的程序执行内容划分成两部分:与数据存取有关的部分由DBMS Server承担,这样做的好处:1) 充分调动LAN 中的Server 与Client 。
两方面的处理能力;2) 极大地减少网络上的信息流量;3) 有效地发挥了服务器软硬件执行效率高,集中管理数据库安全方便的长处,也可以充分利用Pc 机client 端处理用户界面和本地I /0的优点。传统的基于C /S 模式的图书管理系统是一种分布式的计算模式,具有较好的可伸缩性和较优的性价比。
但是但随着系统的不断扩展,两层的C /S 结构逐渐暴露出其缺陷,即由于实际需求的千变万化,客户端可能会不堪重负,而客户端的过于庞大显然与分布式计算的思想背道而驰。并且C /S 模式的图书管理系统的使用范围、使用对象等都是局限在一定的范围和区域,随着图书数字化和网络化的发展,图书管理系统的使用范围和使用对象等都在进一步的扩大,为了满足日益变化的需要,必然促使图书管理技术趋向于网络化发展。
2.基于B/S模式架够的图书管理系统
B /S 浏览器/服务器(Browser/server) :以Web 服务器作为系统的核心,用户端
通过brow—ser向Web 服务器提出查询请求(Http协议方式) ,Web 服务器根据需要再向数据服务器发出数据请求。数据库服务器则根据检索与查询条件返回相应的数据结果给Web 服务器,最终Web 把结果翻译成HTML 或各类Scripts 语言的相应格式发回至browsers ,用户通过browser 浏览。由于图书馆普通馆员和高级馆员功能是图书和期刊管理、读者管理、借出管理、还书管理,功能比较多,有些操作还要用到专用设备,比如在借还书操作就用到条形码阅读器、在查询报表时就用到普通打印机、在登记读者时就要用到条码打印机,这些功能最适合采用客户机/服务器模式,在客户端安装相应的图书管理应用程序,对馆员进行相应的培训,使之熟悉操作流程。读者主要是图书查询和借出查询,功能简单。在设计这方面的功能时要考虑到用户操作的简单性,读者无需专门培训就能方便查询书目和书籍实时在馆情况,这部分功能采用浏览器/服务器模式,读者只要在联网微机上轻轻一点浏览器,打开指定网页,就可以方便地查询了,采用B /S 便于系统升级,当增加查询终端时,只要在局域网增加一台微机,无须安装专用客户端软件。
方案比较:
通过系统分析,我们基于ASP 技术构建的B /S 结构的图书管理系统,该系统可以
提供各阅览室实时的、动态的借阅状态,使读者不仅能查
阅到自己所要的图书,而且可以了解所需图书目前的借阅情况,并提供模糊查询,切实解决读者盲目查找的状况。另外,通过对各阅览室的入库人数、阅览册次、借出的图书情况的统计分析,可以进一步了解各类型读者使用图书的频率,以便有针对性地采购典藏图书,调整阅览室的藏书结构,更好地满足读者的阅览图书的需求。
基于B /S 结构的软件其操作界面完全通过www 浏览器实现,使用B /S 软件很容易就实现了其它软件需要很复杂的编程才能实现的功能,一方面节约了软件开发成本,另一方面加快了软件开发速度。B /S 结构的软件,大部分事务在服务器端实现,软件直接安装在WEB 服务器上,客户端只需要打开浏览器,调出软件主页面即可以进行各种操作,所以客户端基本上不需要安装任何程序,只需要有浏览器即可,不会增加客户端任何安装和维护的工作量。B /S 结构的软件,其升级相对C /S 结构软件来说比较容易,如同网页的更新,只要在服务器端进行修改,就可以在所有客户端看到升级后的软件效果。需要有浏览器即可,不会增加客户端任何安装和维护的工作量。B /S 结构的软件,其升级相对C /S 结构软件来说比较容易,如同网页的更新,只要在服务器端进行修改,就可以在所有客户端看到升级后的软件效果。
特别是B /S 系统的投入。能极大的方便读者检索。 因此我们选择方案2。
3.1系统层次模块图
系统的总体结构图如图3.1所示:
图3-1系统的总体结构图
3.2系统流程图
系统流程图图3.2所示:
系统总体流程图
3.3数据流程图
数据流程图如图3.3所示:
图3-3 数据流程图
3.3.1 图书类别管理基本信息流程图
流程图分析:图书类别基本信息的流动首先是以图书类别的编号为依据,来达到添加、修改、查询图书类别记录。同时,也对数据库中的图书类别表的编号进行检查
3.3.2 图书信息管理基本信息流程图
流程图分析:图书基本信息的流动首先是以图书编号为流动方向的依据,来达到添加、修改、记录、删除图书记录。为了数据的一致性,进行这些操作的同时,也对数据库中的记录进行检查,检查是否有重复的记录。如有则不能进行添加。
3.3.3 读者类别管理基本信息流程图
流程图分析:读者类别基本信息的流动首先是以读者类别编号为流动方向的依据,来达到添加、修改、记录读者类别记录。为了数据的一致性,进行这些操作的同时,也对数据库中的记录进行检查,检查是否有重复的记录。如没有则可进行添加。
流程图分析:读者基本信息的流动首先是以读者的编号为依据,来达到添加、修改、查询、删除读者信息的记录。同时,也对数据库中的读者
信息表的编号进行检查。 3.3.5借书管理基本信息流程图
流程图分析:借书管理基本信息的流动首先是以借阅编号为流动方向的依据,来
达到添加、查询借书记录。为了数据的一致性,进行这些操作的同时,也对数据库中的记录进行检查,检查是否有重复的记录。如没有则可进行添加。
3.3.6 还书管理基本信息流程图
流程图分析:借阅管理部分是实现对各部分数据内容的添加和查询操作,在借阅信息中包括借阅编号、读者编号、读者姓名、书籍名称、出借日期和还书日期。并通过添加功能来达到借阅信息表的数据的更新,通过查询可使管理员很快地了解借阅信息,从而避免书籍的丢失现象产生。
3.4数据库设计
为满足系统需要,我们使用“企业数据库”新建数据库,命名为Library, 再建立系统所需的各个数据表。 表3-4-2
系统中所用到的表及其用途
图书信息表 用户信息表 角色权限表
用户信息表如表3-4-3所示
表3-4-3 用户信息表(UserInfo )
名称
数据类型 数据长度 作用图书信息表BookInfo 如表3-4-4所示 表3-4-4 图书信息表
借阅信息表LendInfo 如表3-4-5所示
表3-4-5 借阅信息表
角色权限表RoleInfo, 如表3-4-5所示 表3-4-5
角色权限表
第四章 详细设计
图书借阅系统的主要目的就是图书的网络化管理,使图书借阅工作更加容易,提高工作效率、降低管理成本。
对于任何用户都可以进行图书的查询操作,然而图书借阅系统中其他操作需要区分不同的用户,通常借阅用户分为学生、教师等,而图书管理员可以分为图书借阅管理员和图书借阅系统管理员等。系统访问操作权限设置通过对用户进行按角色分组,在不同的角色中赋予权限来控制。其中具有图书管理权限可以对图书 进行添加、修改、删除以及图书借阅与归还等、系统管理权限可以添加修改拥护以及角色权限维护等操作。
4.1 功能设计
其具体功能需求分析如下: 1.安全管理
提供用户登录,注销以及修改密码等功能。 2.用户个人信息管理
每个用户可以对自己的信息进行查看以及修改密码等操作,还可以查看自己的当
前和历史借阅信息以及预约信息等。
3.信息发布
用户可以查看当前最新图书信息以及预约到书列表和过期书列表。 4.图书信息管理
图书管理员可以对当前最新图书信息进行增加以及更新操作,在图书管理员登入
图书信息时,需要输入图书名称、图书作者、出版社等信息,同时还需要选者图书状态。对于已经保存的图书信息同样可以对其进行修改删除等操作。
5.图书借阅管理
图书管理员可以对图书进行借阅和归还操作,图书管理员可以根据用户ID 得到
该用户信息明细,并进行相应的图书借、还等操作。
6.图书查询
根据一定的条件对图书进行查询,并可以查看图书详细信息。 7.用户信息管理
系统管理员可以添加新用户,并对用户的信息进行修改更新操作。在用户编辑修改界面,可以更改用户类别和用户状态等,但不可以对用户的ID 进行修改。
8.系统角色权限管理 系统管理员可以添加、修改和删除某一角色。对应与某一种角色,有类别名称、借书数量、借书天数、是否允许预约、是否允许续借、是否允许管理图书信息、是否允许管理系统等参数。
4.2 模块设计
系统的模块划分如图3-1所示,将系统分为6个模块、每个模块负责的功能相对专一。其中,用户登录与验证提供用户身份的验证,同时读取用户所具有的权限,只有具有系统帐号的用户才可以使用系统的所有功能。系统最底层是数据库。
1. 用户身份验证模块 用户身份验证模块实现用户合法性检查,把用户ID 保存到Session 中,而在后面的页面中通过判断这个Session 值是否为空来判断用户是否登录。在这个模块中还提供注销和修改密码的功能。
2.用户的个人信息管理模块 在用户个人信息管理模块里主要包括了查看用户信息、当前借阅信息、历史借阅信息、预约信息等功能,同时还可以在当前借阅信息中续借图书、在预约信息列表中查看当前的预约的图书状态,并可以取消预约的图书。
3.信息发布模块 信息发布模块主要提供的是查看最近上架的图书信息,当前已经过期的图书信息和所有已经预约到的图书列表等功能,以方便用户查看,并起到提示的作用。这个信息是面向所有的用户,并不需要登录。
4.图书管理模块 图书管理模块主要包括图书信息管理和图书借阅与归还管理。图书信息管理中包括了图书的添加与更新操作。进行图书借阅操作时,需要查看当前书籍是否处于流通状态、是否在架以及是否有人预约等,图书管理员需要输入用户ID 和图书条码,这2个信息是通过扫描输入的,这里提供输入框进行输入。而归还图书时,输入用户ID 之后,系统会自动显示出用户当前所借的图书,在书列表的复选框中选定要归还的图书,然后单击“归还”按钮即可。归还的时候如果有过期图书,会弹出过期书
的名字、过期的天数等信息。
5.图书查询模块 图书查询模块提供用户查询图书信息,通常图书馆都会有专门的用于查询的计算机,在这样的机器中,不需要用户登录就可直接进行查询操作。查询可分为简单查询、一般查询和高级查询3种。
6.系统管理模块 系统管理模块包括用户信息管理和角色权限管理2个功能。用户信息管理主要包括了用户信息的添加与删除、查询等功能。而角色权限管理主要包括了角色权限的添加、修改与删除功能。在设计的时候,将不同的功能模块当作一种权限分配给某角色组,一种角色组里面可以有不同的用户,对于不用的用户,他具有不同的角色的权限。这样设计类似于Windows 系统权限管理,简单明了,且操作简单。
第五章 系统实现
在本章给出系统几个主要功能的界面以及代码。在用户未登陆之前是图书馆信息系统发布的首页。如图5-1所示。
图5-1 图书馆信息系统发布的首页
5.1 用户图书查询模块
公共接口设计了查询功能。这一功能是面向公共的,只要这2个系统被放到互联网上,当用户访问图书馆网站时,都将看到如图5-1所示的界面。在这个界面中提供了图书查询系统。当你想模糊查询时,可以根据图书分类中的具体类别进行查询,里面分为网络类、科技类、程序类等。当你想要精确查找时,可以点击进入书籍详细查询模块。如图
5-2所示。
图5-2 书籍详细查询模块
主要功能代码如下:
书籍编号:
查询数据库的主要代码:
sql="select * from Library_team"
set rs=db.execute(sql)
图5-2 书籍详细查询 在这一页面中,查询的方式可以根据书籍的名称、书籍的编号、作者、出版社以及书籍类别进行查询。访问者在选择查询方式并输入查询内容之后,可以很直接地找到想要的书,查询的结果如图5-3所示。
图5-3 显示书籍详细信息
5.2 超级用户模块
要实现权限的处理,首先为管理员的帐号和密码建立数据表。可以对系统的权限进行任何的控制。管理员做一个登录页面,如图5-4所示。
图5-4 管理员登录界面
判断用户名是否存在,密码是否正确,代码如下:
dim username,password
username=trim(request("username"))
password=trim(request("password"))
set rs=server.createobject("adodb.recordset")
sql="select * from Administrator where name='"&username&"' and password='"&password&"'"
rs.open sql,db,1,3
管理员的帐号和密码都是 admin,输入点提交可以进入管理员的界面。如图5-5所示。
图5-5 管理员操作界面
5.2.1 图书管理模块
管理员的权限有会员借书、会员还书、注册会员、查询会员、书籍种类管理、添加书籍、修改书籍信息、删除书籍信息、查询过期书籍等。
借阅功能:当有一个读者要借书的时候,读者把图书和借书卡号给管理员,管理远根据书和卡号上的ID ,填入如图5-6所示的界面中,单击“提交”按钮,就完成了一次借阅。
根据输入的书籍编号、名称、借书卡号、借书的姓名,查询数据库判断数据库中是否包含该信息,如果有则返回“信息添加成功!”,并保存在数据库中。如果不成功则返回一个错误信息,然后重新添加。
图5-6 图书借阅界面
book_id=Request.Form("book_id")
book_name=Request.Form("book_name")
card_id=Request.Form("card_id")
card_name=Request.Form("card_name")
lend_time=Request.Form("lend_time")
' 判断此书是否已经借出
sql="select count(*) from library_book where "
sql=sql&" book_id='"&book_id&"' and book_name='"&book_name&"' and sf_return='Y'"
set book=db.execute(sql)
' 判断此卡是否存在
sql="select count(*) from card where card_id='"&card_id&"' and card_name='"&card_name&"'"
set ca=db.execute(sql)
if book(0)=0 or ca(0)=0 then
' 书已借出或卡号不存在则返回
Response.Redirect "adminlendbook.asp?comm=信息不正确,请重新添加!" else
' 求借阅图书的最大ID +1,将借阅信息放到数据库中,将书籍借阅信息置成已借阅。
sql="select max(id),count(*) from lend_book"
set rs=db.execute(sql)
if rs(1)=0 then
id=1
else
id=rs(0)+1
end if
sql="insert into lend_book(id,book_id,book_name,card_id"
sql=sql&",card_name,lend_time) values ("&id&",'"&book_id&"'"
sql=sql&" ,'"&book_name&"','"&card_id&"'"
sql=sql&",'"&card_name&"','"&lend_time&"')"
db.execute(sql)
sql="update library_book set sf_return='N'"
sql=sql&" where book_id='"&book_id&"'"
db.execute(sql)
Response.Redirect "adminlendbook.asp?comm=信息添加成功!"
还书的过程跟借阅的设计的差不多,在还书界面中输入书籍编号或者书籍名称之后单击“提交”,然后执行还书流程,更改数据库里的表的相关记录。
5.2.2 用户注册
用户借书:用户首先要在本系统中注册一个借书卡号,以及填写相关的用户详细信息,包括性别、联系电话、联系地址。经管理员认证就可以获得借书卡号。详细界面如图5-7。
图5-7 用户注册
首先要判断是不是管理员,不是回到登陆页,主要代码入下:
if not session("user_session_id")=Session.SessionID then
parent.window.location.href="../admin.asp"
当页面中已经填写了信息的时候,需要获取所添入的信息,可以由如下代码来实现: card_id=Request.Form("card_id")
card_name=Request.Form("card_name")
sex=Request.Form("sex")
phone=Request.Form("phone")
address=Request.Form("address")
假如该卡号已经被注册过了,那么就返回已经注册的警告信息,可以如下实现:
sql="select count(*) from card where card_id='"&card_id&"'"
set rs=db.execute(sql)
if rs(0)0 then
Response.Redirect "admincard.asp?comm=此卡信息已登记过!"
如果该卡号在数据库中没有记录,那么就将该卡号写入数据库中,并且保存,最后返回一个注册成功的信息:
sql="insert into card(card_id,card_name,sex"
sql=sql&",phone,address)
values ('"&card_id&"','"&card_name&"'"
sql=sql&",'"&sex&"','"&phone&"','"&address&"')"
db.execute(sql)
Response.Redirect "admincard.asp?comm=信息添加成功!"
5.2.3 查询用户信息
这个模块可以显示用户注册时所需要的相关说明。当页面已经输入信息时,判断是要跳转到left.asp 或者right.asp ,如果页面中没有写入信息,那么就跳转到left.asp 页面中去,如果已经写入信息就转入right.asp 中去进行下一步的处理,在right.asp 页面中需要写入用户注册的相关警告和说明。
图书种类管理
在该页面中,如果点击删除分类那么跳转到admindelteam.asp 中处理图书种类的删除。如果直接在页面中添加图书的种类,首先要将rs 数组置空,将book_team赋值到数组中去,然后根据页面中的信息,将页面中所输入的信息传到book_team中,跳转到adminteamsave.asp 中将有关数据保存到数据库中,如果该图书分类已经存在,那么报“对不起已经有这个分类”的信息。最后将rs 数组重新置空。完成数据的添加之后,将返回到adminaddteam.asp 页面。
其代码如下表示:
book_team=trim(request.form("book_team"))
set rs=server.createobject("adodb.recordset")
sql="select * from Library_team where book_team='"&book_team&"'"
rs.open sql,db,1,3
if not rs.eof or not rs.bof then
response.write "alert('对不起已经有这个分类');
history.back(-1)
添加书籍
在图这一页面中,主要是往数据库里添加书籍信息,完成后点提交跳转到图5-8。
图5-8 书籍添加
循环将编号,名称,位置,作者,社名,图书简介信息放入rs 数组中
sql="select * from Library_team"
set rs=db.execute(sql)
Response.Write "
Response.Write ">"&rs("book_team")&""
rs.movenext
loop
将书籍信息存放到数据库中
sql="insert
into Library_book(id,book_id,book_name,place,book_time,
book_author,book_concern,book_team,remark,sf_return)"sql=sql" values ("&id&",'"&book_id&"','"&book_name&"','"&place&"','
"&book_time&"','"&book_author&"','"&book_concern&"','"&book_team&"','"&remark&"','Y')"
db.execute(sql)
Response.Redirect "adminaddbook.asp?comm=信息添加成功!"
按提交按钮,在javascript 中判断是否将所有信息都已经写上,就显示信息添加成功。 修改、删除书籍信息
对数据库中的信息进行修改和删除主界面如图
5-9
图5-9 书籍的修改
写入信息后,点提交,跳转到adminselbooklook1.asp 图5-10,
图5-10 修改书籍的详细信息
根据adminselbooklook.asp 页面中添入的信息,查询数据库,在数据库中是否有想匹配的信息,查询数据库中是否有book_id 跟上一个页面所输入的book_id ,可以如下操作:
sql="select * from Library_book where book_id='"&book_id&"'"
其他信息可以类似上面那条代码实现。
然后把查询出来的信息显示在adminselbooklook.asp 的动态页面中图5-11,再点击查询出来的书籍名称进入该书籍的修改页面进行修改。
图5-11 书籍修改
可以如下实现:
')">
删除书籍的模块代码实现和修改的差不多,就不重复累赘
查询过期书籍
点书籍编号进入该过期图书的详细画面,可以如下实现: