ASP图书馆管理系统_第1页
ASP图书馆管理系统_第2页
ASP图书馆管理系统_第3页
ASP图书馆管理系统_第4页
ASP图书馆管理系统_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录TOC\o"1-3"\h\u5223第一章绪论 2223611.1图书管理信息系统简介 2108941.2开发图书管理信息系统的目的和意义 325621.3西电长安学院图书馆管理现状 463641.4研究目的和内容 531581第二章图书管理信息系统开发工具选择 688622.1系统数据库概述 632602.1.1数据库 626112.1.2数据库管理系统 630862.1.3数据库的选取 8201382.2SQL语言及基本语句 8188162.2.1SQL概述 8326262.2.2SQL基本语句 9242992.3B/S网络结构 1078092.4ASP概述 11245582.5JScript脚本语言 1332142.6Access2003概述 138103第三章图书管理信息系统总体设计 1562383.1系统需求分析 15249353.2系统模块设计 16132733.3系统数据库设计 16321993.3.1系统数据库的概念设计 16292883.3.2数据库的分析与设计 2125780第四章图书管理信息系统的实现 2517814.1创建与Access2003数据库的连接 25142624.2登陆窗口功能的实现 2556554.3工作人员模块窗口功能的实现 27172714.4图书馆管理人员功能模块 41211154.5借阅排行模块 44199594.6注销模块 4522556第五章系统测试 468530第六章结论与展望 4713934致谢 4828113参考文献 49第一章绪论1.1图书管理信息系统简介传统的图书馆、资料馆收集了人类大量的随着时间的进程而遗留下来的文化、历史、文字的痕迹。对于传统的这些资源集藏地只能通过目录的方式和物理介质借阅的方式供给公众和学者使用。计算机和互联网是20世纪人类最重要的技术发明之一,随着IT技术的发展和计算机应用的普及,人类创造及产生的各种电子数据呈爆炸性的增长态势。面对互联网上的海量信息,怎样高效地利用这些信息已成为目前急需解决的问题。图书馆作为人类信息文明进步的象征,已出现了几个世纪。在这些时间里,图书馆一直承担着信息的收集、整理及将有组织的资源提供给用户的功能,在新的形式下,图书馆怎样发挥为人类信息有序组织的功能,怎样在浩如烟海的网络信息中去尽快发现、查找到用户所关心的资源,怎样打破原来传统的服务模式,适应新的要求,已成为图书馆及社会各界普遍关心的内容。图书管理信息系统,是面向未来互联网发展的信息管理模式。以数字资源的制作、存储、管理、传输和服务为主要特征的数字图书馆技术,是2l世纪国际科技文化竞争的焦点之一。数字图书馆涵盖多个分布式、超大规模、可互操作的异构多媒体资源库群,可面向社会公众提供全方位的知识服务。可以说,数字图书馆将实现对人类知识的普遍存取,并最终消除人们在信息获取方面的不平等。它既是知识网络,又是知识中心,同时也是一套完整的知识定位系统。数字图书馆以互联网为代表的信息共享,协同工作和个性化服务代表了一种先进文化。图书管理信息系统是利用数字技术采集、存储和保存信息并高效率地提取存储信息的技术载体。图书管理信息系统绝不是图书馆的数字化,图书管理信息系统已大大地突破了传统图书馆的概念和范畴,图书管理信息系统将成为未来社会人们工作、学习、生活的重要支撑点和前提性条件。而相对图书馆的常规服务内容而言,图书管理信息系统将使图书馆实现革命性的变革。图书管理信息系统要求以新的方式执行图书馆的功能。包括新型信息资源、新的采访和馆臧发展方向与方式,尤其是有更多的资源共享和电子订购服务,新的存储与保存方法、新的分类和标引方式与用户新的交互模式,对计算机网络更多的依赖以及图书馆在人员智力构成、组织和经济等方面的显著变化,都与传统图书馆大相径庭。数字图书馆和传统图书馆主要业务比较如表1.1所示。表1.1数字图书馆和传统图书馆主要业务比较业务范围传统图书馆数字图书馆馆藏的发展与管理选择书刊、加入馆藏、典藏、书架维护、装订与保护选择适于电子转换的资料或已数字化的加入馆藏版本的管理与控制系统维护采访了解需求、资料具体采购、资料送达、费用支付了解需求、用EDI方式订购电子资料、将现有的资料转化为电子资料、版权管理、费用支付编目手工编目自动编目标引人工标引自动标引目录卡片目录元数据借阅预约、流通、催还、定题资料服务提供暂时性资料、传递资料、自动传递有关信息、互联的图书馆间交换资料、通向传统图书馆界面读者服务帮助用户查找和检索资料,指导用户利用图书馆,并对读者使用资料的情况汇总组织图书馆的电子资源,引导联机帮助建立读者使用情况文档1.2开发图书管理信息系统的目的和意义随着电子计算机和通信技术的发展,人类已经逐渐地进入信息化社会。信息和材料、能源一样成为了社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用。同时人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段。因此,开发相关的管理信息系统已经成为各行各业的必要和必需了,管理信息系统作为一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,可以解决企业或组织所面临的一些问题,对内来看,可以提高工作效率;对外来看,能够获得竞争优势。随着计算机网络技术的飞速发展及Internet/Intranet应用在全球范围内的日益普及,当今社会正快速向信息化社会前进,信息管理系统的作用也越来越大。目前,我国很多地县级城市的图书馆的图书管理和借阅管理的水平还停留在纸介质的基础上,显然这样的机制已经不能满足当今信息时代的要求,传统的管理方式必然被基于计算机的信息管理方式所取代。因此根据图书馆目前实际的管理情况开发一套符合本地要求的图书馆管理系统是十分必要的。图书馆在日常服务中总是要面对大量的读者信息、书籍信息以及由两者相互作用产生的借书信息、还书信息等。因此,图书馆管理的信息化是图书馆管理发展的必然趋势。运用结构化系统分析与设计的方法,建立一套有效的图书馆管理信息系统,既可以减轻工作人员的工作量,将工作科学化、规范化,又可以提高图书馆信息管理的工作质量和服务水平。1.3西电长安学院图书馆管理现状我校的图书馆一直是传统的手工方式管理,管理过程繁琐而复杂,执行效率低,并且容易出错。我通过下面的案例来分析手工管理模式的弊病。随着汉沽一中近几年的快速发展,图书馆的藏书数量和质量也不断提高,为了规范图书馆的管理,学校领导要求彻底清查整理图书馆的减书情况,清查整理过程中,图书馆工作人员以姓名为索引对借书情况进行整理,由于陈年旧账,费了不少时间。可以看出传统图书手工管理模式缺陷:(1)读者借书目的性差、效率低读者想借书,必须去图书馆,从网上得不到任何自己想要借书的信息,到了图书馆,读者自己必须亲自查阅,有时还未必能找到目标图书,费时费力。(2)检索速度慢、效率低因为图书馆的藏书种类多、数量多,将藏书准确地分门别类,快速检索,手工进行非常困难,往往是好不容易查到了书的信息,馆中没有此书或已被别人借走。图书馆的规模越大,这个问题就越突出。(3)借书、还书工作量大借书、还书频率越大,说明图书馆的作用越大,然而随之而来的大量的借书、还书登记、实存图书的更新以及借出图书超期、遗失等的处理,其工作量也越大,往往是人工操作难以胜任的,而且会不可避免地出现一些差错。(4)图书统计工作难、藏书更新不能及时完成图书馆的图书应根据科学技术的发展和教学工作的需要及时添加和更新,然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计工作难以及时完成,藏书的更新也就很难有针对性地进行,藏书的知识结构得不到很好地控制。1.4研究目的和内容虽然我校近几年藏书量有一定增加,但是规模还不是特别庞大,如果购买专业的图书馆管理软件,一方面会浪费大量资金,另一方面会使管理软件大材小用,造成资源浪费。本设计以ASP作为开发工具,Access2003建立数据库,以最简易方式实现学校图书馆工作人员借阅图书、归还图书、查询借阅图书情况和历史信息等功能。本论文的主要研究内容包括下面几个方面。(1)了解目前图书管理系统的现状;(2)熟悉ASP编程基础;(3)熟悉SQL访问数据库功能;(4)熟悉Jscript脚本语言编程及一些功能的实现;(5)掌握Access2003基础知识;(6)设计数据库:设计界面;(7)开发数据库。数据库实现的一些功能有数据和数据说明的醒目显示;数据库的访问机制;数据文件某种存储格式导入数据窗体,经过数据完整性校验存入;(8)设计系统:实现两个功能模块即图书馆工作人员和图书管理员两个模块;(9)实现系统:基本能实现满足工作人员、图书管理员两方面需求;(10)系统测试:通过测试,系统能正常运行。第二章图书管理信息系统开发工具选择软件选择及软件之间的相互搭配在一定程度上决定了图书管理信息系统的稳定性及衔接性,本系统以ASP为开发工具,利用Access2003建立数据库并以SOL对数据库进行访问,利用Jscript编写脚本语言。本章主要对上述四种软件进行介绍,为后面图书管理信息系统开发奠定基础。2.1系统数据库概述2.1.1数据库数据库是指相互关联的数据集合。它是一组长期存储在计算机内,有组织的、可共享的、具有明确意义的数据集合。它主要包括四个要素:用户数据、元数据、索引和应用元数据。它具有以下几个特点:(1)它是具有逻辑关系和确定意义的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性,可为各种用户共享。(2)它是针对明确的应用目标而设计、建立和加载的。(3)表现了现实世界的某些方面。2.1.2数据库管理系统数据库管理系统(DBMS)是指能够对数据库进行有效管理的一组计算机程序。它建立在操作系统的基础上,对数据库进行统一管理和控制。数据库管理系统是位于用户与操作系统之间的一层数据管理软件。它的主要功能包括以下几个方面:(1)数据定义功能DBMS提供数据定义语言(DataDefinitionLanguage,简称DDL),用户通过它可以方便地对数据库的数据对象进行定义,即它是用来创建和修改数据库结构的一种语句,包括SQL中的Cereate、Alter和Drop语句。(2)数据操纵功能DBMS还提供数据操纵语言(DataManipulationLanguage,简称DML),慝户可以使用DML操纵数据,实现对数据库的基本操作,如查询、插入、删除、和修改等。其中数据更新所造成的风险比较大,数据库管理系统必须在更改期内保护所存储的数据的一致性,确保有效的数据进入数据库,数据库必须保持一致性,DBMS还必须协调多用户的并行更新,以确保用户和它们的更改不至于影响其它用户的作业。(3)数据库的运行管理数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。(4)数据库的建立和维护功能它包括数据库初始数据的输入和转换功能、数据库的转储和恢复功能、数据库的重组织功能及性能监视分析功能等,这些功能通常是由一些实用程序完成DBMS是数据库系统的核心组成部分。它通常由语言处理、系统运行控制和另统维护三大部分组成,给用户提供了一个软件环境,允许用户快速方便地建立维护、检索、存取和处理数据库中的信息。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。MSAccess2003就是一种关系型数据库管理系统。关系数据库管理系统提供了对二维表格进行操作的通用程序包。使用关系数据库管理系统,应用程序的开发人员可以把主要的精力集中在如何编写程序实现最终用户的业务需求上,当需要存取数据时,可以使用关系数据库管理系统提供的相关功能。在关系数据库中,“关系"对应着表格,表格称为“数据库表",简称为“表”。表的列包含域属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。为了对比结构差的关系和结构好的关系之间的差别,以本文所设计的图书管理系统中的图书和图书借阅者关系为例来说明,假若设计关系R1(借阅者的图书证号,学号,姓名,性别,出生年月,民族,系别,图书编号,入库时间,图书名称,作者,出版社,出版日期,价格,数量)这个关系的问题出在它有关于两个不同主题的数据,就是图书借阅者和图书。用这种方式构成的关系在进行修改时,会出现问题。因为一个图书借阅者可能借阅多本书,如果某个图书借阅者的某个字段(如系别)出现变更,它所借阅的图书记录(可能多个)也就必须变化,这在同一个关系中是不好的。因此数据用两个关系表示更好。现在如果某图书借阅者改变了它的系别,只有关系表bookuser的对应行需要改变。结果表明,将关系分别存储,在显示借阅者借阅情况的时候将它们结合起来,比把它们存储在一个合成的表中更好。因此,把关系表bookuser和book进行如下设计:bookuser(借阅者的图书证号,学号,姓名,性别,出生年月,民族,系别)book(图书编号,入库时间,图书名称,作者,出版社,出版日期,价格,数量,图书状态)2.1.3数据库的选取数据库应用系统开发的目标是建立一个满足用户长期需求的产品。市面上开发数据库软件包括:Access、Oracle、SQLServer、FoxPro等。我选择MSAccess2003开发数据库H61,主要有三方面的原因。第一、MSAccess2003是关系数据库,关系数据库优点是建立在严格的数学概念的基础上,概念单一,实体与实体间的联系都用关系表示,故其数据结构简单、清晰,存取路径对用户透明,故有更高的数据独立性和更好的安全保密性。第二,MSAccess2003是Office2003自带程序,不像其他数据库,需要安装数据库软件;第三,MSAccess2003是大家接触较多的数据库,学生也学习过这个软件,在编写图书管理信息系统时,数据库的编写是非常重要的一块,选用大家熟悉的软件,只要设计者编写好表头,图书管的工作人员和学生就可以输入基本信息了,从而方便图书馆工作人员管理,也可以减少我的工作量。2.2SQL语言及基本语句2.2.1SQL概述SQL(StructuredQueryLanguage,结构化查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Access、Oracle、SQLServer、FoxPro等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如“select'’、“Insert”、“Update”、“Delete”、“Create”和“Drop”常常被用于完成绝大多数数据库的操作。SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,主要特点包括:(1)SQL语言语法简洁、功能丰富。(2)SQL语言是一种一体化的语言。(3)SQL是一种非过程化语言。(4)SQL语言既是交互式语言,又是嵌入式语言。(5)SQL是面向集合的操作方式。2.2.2SQL基本语句上面对SQL的概念及其主要特点进行了介绍,关于SQL语句,主要包括7个命令,分别为SELECT命令、Create命令、Drop命令、Alert命令、Insert命令、Delete命令和Update命令。(1)SELECT是SQL中最常用的命令,其主要功能包括数据库基本查询、条件查询、排序查询、嵌套查询和连接查询。语法基本格式如下:SELECT<输出项列表>From<表名>[where<筛选条件>][ORDERBY<排序关键字>[ASC/DESC]](2)Create命令用来创建数据库和创建表,这是数据库其它操作的基础。其语法格式如下:CREATDATBASE<数据库名>[其它参数]CREATTABLE[<数据库名>][表名](3)Drop命令与Create命令相对,用于删除数据库和数据表,其语法如下:DropDATBASE<数据库名>[其它参数]DropTABLE[<数据库名>][表名](4)Alert命令可以根据实际要求对基本数据表的结构进行修改,即增加新的属性或删除属性。其基本语法如下:ALERTTABLE[<数据库名>]表名AddALERTTABLE[<数据库名>]表名DROP(5)Insert命令能将新增数据插入数据表中。其基本语法格式如下:INSERT<表名>[(<字段名1>,<字段名2>,...]VALUES[<表达式1>,<表达式2>,...](6)Delete命令是从基本表中删除满足条件的记录,其语法格式如下:DELETEFROM<表名>[WHERE<删除条件>](7)Update命令能够修改指定表中满足条件的记录的相应列值。其语法格式如下:UPDATE<表名>SET<字段名l>=<表达式1>,[<字段名2>=<表达式2>,...][WHERE<更新条件>]2.3B/S网络结构B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S(Client/Server,客户,服务器)结构的一种改进而产生的结构。在这种结构下,用户界面完全通过www浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构主要利用了www浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows2000/WindowsXP将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。B/S模式是指在TCP/IP的支持下,以HTTP为传输协议,客户端通过Browser访问Web服务器以及与之相连的后台数据库的技术及体系结构。它由浏览器、Web服务器、应用服务器和数据库服务器组成,其物理结构图和信息流程图如图2.1和图2.2所示,B/S模式突破了传统的文件共享及C/S模式的限制,实现了更大程度的信息共享,任何用户只要通过浏览器即可访问数据库,从而克服了时间和空间的限制。图2.3B/S模式物理结构图2.3B/S模式信息流程2.4ASP概述在图书管理信息系统中,我选择的开发工具为ASP(ActiveServerPages),即动态服务器主页。ASP并不是一种编程语言,而Mierosoft公司开发的一种类似HTML、Script与CGI的结合体。ASP没有专门的编程语言,而是允许使用VBScript、JavaScript等在内的许多已有的脚本语言编写ASP程序。从软件的技术层面看,ASP有如下的特点:(1)无需编译:ASP脚本集成于HTML当中,容易生成,无需编译或链接即可直接解释执行。(2)易于生成:使用常规文本编辑器(如Windows下的记事本),即可进行*.asp页面的设计。若从工作效率来考虑,不妨选用具有可视化编辑能力的VisualInterDev。(3)独立于浏览器:用户端只要使用可解释常规HTML码的浏览器,即可浏览ASP所设计的主页。ASP脚本是在站点服务器端执行的,用户端的浏览器不需要支持它。因此,若不通过从服务器下载来观察木.asp主页,在浏览器端看不到正确的页面内容。(4)面向对象:在ASP脚本中可以方便地引用系统组件和ASP的内置组件,还能通过定制ActiveXServerComponent(ActiveX服务器组件)来扩充功能。(5)与任何ActiveXScripting语言兼容:除了可使用VBScript和JScript语言进行设计外,还可通过Plug-in的方式,使用由第三方所提供的其它Scripting语言。(6)源程序码不会外漏:ASP脚本在服务器上执行,传到用户浏览器的只是ASP执行结果所生成的常规HTML码,这样可保证辛辛苦苦编写出来的程序代码不会被他人盗取。从应用的层面看,ASP有如下的功能:(1)处理由浏览器传送到站点服务器的表单输入。(2)访问和编辑服务器端的数据库表。使用浏览器即可输入、更新和删除站点服务器的数据库中的数据。(3)读写站点服务器的文件,实现访客计数器、座右铭等功能。(4)提供广告轮播器、取得浏览器信息、URL表管理等内置功能。(5)由Cookies读写用户端的硬盘文件,以记录用户的数据。(6)可以实现在多个主页间共享信息,以开发复杂的商务站点应用程序。(7)使用VBScript或JScript等简易的脚本语言,结合HTML码,快速完成站点的应用程序。通过站点服务器执行脚本语言,产生或更改在客户端执行的脚本语言。(8)扩充功能的能力强,可通过使用VisualBasic、Java、VisualC++等多种程序语言制作ActiveXServerComponent以满足自己的特殊需要。2.5JScript脚本语言脚本语言的语法简单,容易使用,可以在客户端,也可以用在服务器端,可以在IIS中指定ActiveSeverPages的默认语言。脚本语言可以分为客户端脚本和服务器端脚本,客户端脚本是由浏览器完成脚本解析工作,执行脚本代码,这样可以减轻服务器的负担。而且客户端脚本运行起来比服务器端脚本快得多,当一个浏览器的用户执行了一个操作时,不必通过网络对其作出响应,客户端脚本就可以作出相应。服务器脚本是在服务器上执行的语言。服务器为一个站点提供文件,而浏览器接受这些文件。服务器端编程语言执行站点主机上的所有操作,解析脚本代码并把结果发送回客户端浏览器。经常用到的脚本语言有VBScript和JScript。本系统使用JScript,JScript是Microsoft公司对ECMA262语言规范的一种实现,并且提供了一些MicrosoftInternetExplorer的功能的增强特性,其主要特点表现在以下三个方面:(1)JScript是一种解释型的,基于对象的脚本语言。尽管与诸如C++和Java这样成熟的面向对象的语言相比,JScript的功能要弱一些,但对于它的用途而言,JScript的功能已经足够大了。(2)JScript不是任何其他语言的精简版,也不是任何事物的简化,但是它也有局限性。例如,不能使用该语言编写独立运行的应用程序,并且其读写文件的功能也很少。此外JScript脚本只能在某个解释器上运行,该解释器可以是Web服务器,也可以是WWW浏览器。(3)JScript是一种宽松类型的语言。这意味着不必显示定义变量的数据类型。此外,在大多数情况下,JScript将根据需要自动进行转换。2.6Access2003概述本系统用到的数据库为MSAccess2003。Access是微软公司Office办公套件中一个极为重要的组成部分,是世界上最流行的桌面数据库管理系统,具有基本的数据库功能,不仅是一个很好的管理工具,还是一个非常强大的前端应用开发工具,可以像使用Excel一样方便使用它。利用它可以方便地建立日常的管理数据库,并寻找复杂而又稳定的应用系统,因此目前Access被广泛用于许多企业或公司的日常管理中,是中小型数据库管理系统的主要工具之一。与其他数据库管理系统相比,Access具有存储文件单一、支持长文件名、兼容多种数据库格式、具有WEB网页发布功能、可用于客户/服务器方式和操作使用方便等特点。Access是一个关系型数据库,关系型数据库是用途最广泛的一种数据库类型。在关系型数据库中,可定义数据库中各个表之间的关系。利用这些关系,可以很方便的对数据进行各种增、删、改、查询及报表生成。关系型数据库的另一个优点是不必存储冗余信息。作为一个关系型数据库,Access能完成以下功能。(1)可以为每类信息创建一个表,用其存储信息。(2)可以定义各个表间的关系。(3)可创建查询来检索符合条件的数据,包括来自多个表的数据,也可利用查询来更新和删除多条汜录,并对数据执行各种计算。(4)可创建窗体,直接查看、输入及更改表中数据。(5)可创建报表来分析数据或将数据以特定的方式打印出来。(6)可利用宏和VB将各种数据库对象连接起来,形成一个数据库应用系统。与Office的其他组件一样,Access同样也提供了大量的向导,以便完成各项操作。

第三章图书管理信息系统总体设计系统的总体设计是指在系统调查与分析的基础上,根据本学校的实际情况对整个系统在结构上的划分,硬软件环境的配置和确定系统与模块的处理流程。3.1系统需求分析图书管理信息系统需要满足来自四个方面的基本需求,分别是对系统使用者进行审核的需求,系统工作人员需求、系统管理人员需求和图书借阅者需求。系统工作人员对主要完成图书借阅、图书归还、新书入库、图书管理和分类管理功能,同时形成借书或还书报表,还可通过图书编号查询相应的借阅情况及查看己归还的图书信息(即历史信息);图书管理人员除具有图书工作人员的一切功能外,还可以进行图书馆工作人员用户和密码的注册和注销;对于图书借阅者,由于汉沽一中图书馆主要面向学校老师借书,而学校老师的数量比较少,因此没有必须要给每位老师都办一个带有条形码的借书证,图书借阅主要以登记老师姓名及一些备注信息为主,如果借阅者想要查询目标书目就必须去图书馆让图书馆工作人员进行查询。为了防止恶意程序进入图书管理信息系统,对系统使用者一定要认真审核,因此对登陆系统要多一些考虑,采用一些保密程序,使一些黑客程序无法破解用户信息。本系统采用MD5密码保护程序,即使黑客进入后台管理系统,也无法得知用户的密码。在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或是还书记录,并生成相应的报表给用户查看和确认。图书馆工作人员可以浏览、查询、统计、添加借阅图书的基本信息及删除己归还的图书的基本信息,但不能删除和修改己经借阅的图书相关信息,当删除某条图书借阅的基本信息记录时,应实现对该图书借阅者借阅记录的级联删除。本功能实现对图书信息的管理和统计。3.2系统模块设计依据系统的需求分析,我把系统分为两个模块,即工作人员操作模块和管理员操作模块,每个模块功能如图3.1所示。图3.1系统功能结构图3.3系统数据库设计3.3.1系统数据库的概念设计在概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式,然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低且不受特定DBMS的限制。利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。设计局部E-R模式图书信息实体,包括图书编号、条形码、书编号、书籍名称、出版社、主编、简介、定价、购置时间、图书分类、册数、已借出数量、图书缩略图、备注、借阅数量、借阅记录。如图3.2所示。图3.3图书信息E-R图图书用户登记实体(姓名和备注)如图3.3所示。图3.3图书用户登记E-R图图书目录实体,包括分类编号、目录名称、根目录和目录描述。如图3.4所示。图3.4图书目录E-R图图书借阅信息实体,包括编号、图书条形码、图书、姓名、是否借出、借出时间、操作人、归还时间和备注九个字段。如图3.5所示。图3.5图书借阅信息E-R图ER模型的“联系",用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系等等。设计全局E-R模式所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。(1)确定公共实体类型为了给多个局部ER模式合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。(2)局部ER模式的合并合并的原则是:首先进行两两合并;先合并那些现实世界中有联系的局部结构:合并从公共实体类型开始,最后再加入独立的局部结构。(3)消除冲突冲突分为三类:属性冲突、结构冲突、命名冲突。设计全局ER模式的目的是把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。(4)全局ER模式的优化在全局ER模式后,为了提高数据库系统的效率,还应进一步依掘处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。本系统全局ER模式如图3.6所示。图3.6图书管理系统全局E-R图3.3.2数据库的分析与设计本次开发的数据库包括五个方面。包括工作人员信息表manager、入库图书信息表ebook、图书分类表Folder、图书借阅管理booklog、图书用户登记表bookuser。工作人员信息表manager工作人员信息表用于存放工作人员的登录信息,包括编号(ID)、用户名(Usefid)、密码(Password)和是否为管理员(Isadmin)四个字段。用户信息表结构如表3.1所示。表3.1工作人员信息表字段名数据类型及长度说明备注ID长整形编号主关键字Userid文本(10)用户名允许为空Password文本(50)密码允许为空Isadmin逻辑是否管理员是,否入库图书信息表ebook图书信息表用于存储所有图书的信息,包括图书编号(id)、条形码(tiaoxingma)、书编号(bianhao)、书籍名称(shuming)、出版社(chubanshe)、主编(zhubian)、简介(jianjie)、定价(dingjia)、购置时间(shijian)、分类ID(folderid)、册数(ceshu)、已借出数量(yijie)、图书缩略图(bookpic)、备注(beizhu)、借阅数量(jleyueshu)、借阅记录(logid)。入库图书信息表结构如表3.2所示。表3.2入库图书书信息表字段名数据类型及长度说明备注ID长整形编号主关键字tiaoxingma文本(100)条形码不能为空Bianhao文本(100)书编号允许为空Shuming文本(100)书籍名称不能为空Chubanshe文本(100)出版社允许为空Zhubian文本(100)主编允许为空Jianjie备注简介允许为空Dingjia货币定价允许为空Shijian日期/时间购置时间允许为空Folderid数字分类ID不能为空Ceshu数字册数不能为空Yijie数字已借出数量不能为空Bookpic数字图书缩略图上传图片Beizhu数字备注允许为空Jieyueshu数字借阅数量不能为空Logid数字借阅记录不能为空图书分类表Folder图书分类表用于对图书的分类,本程序是以图书分类来查找相应图书,并查阅图书相关信息。包括分类编号(Folderid)、目录名称(FolderName)、根目录(FolderParentID)和目录简要描述(FolderDescription)四个字段。图书分类表结构如表3.3所示。表3.3图书分类表字段名数据类型及长度说明备注Folderid长整形分类编号主关键字FolderName文本(100)目录名称不能为空FolderParentID数值根目录0FolderDescription逻辑目录简要描述允许为空图书借阅管理booklog图书借阅管理用于对图书借阅时间、归还时间、借阅人等信息进行储存,比方便图书馆工作人员查询,包括编号(ID)、图书条形码(tiaoxingma)、图书ID(bookid)、姓名(xingming)、是否借出(1eixing)、借出时间(jcsj)、操作人(caozuoren)、归还时间(ghsj)和备注(beizhu)九个字段。图书借阅管理表结构如表3.4所示。表3.4图书借阅管理表字段名数据类型及长度说明备注ID长整形编号主关键字tiaoxingma文本(100)图书条形码不能为空bookid数字图书ID不能为空xingming文本姓名允许为空1eixing是/否是否借出1借出0归还jcsj日期/时间借出时间不能为空caozuoren文本操作人允许为空ghsj日期/时间归还时间不能为空beizhu备注备注允许为空图书用户登记表bookuser图书用户登记表主要用于图书借阅人的登记,以方便查询。包括编号(ID)、借阅人姓名(username)、备注三个字段(beizhu)。图书用户登记表结构如表3.5所示。表3.5图书用户登记表字段名数据类型及长度说明备注ID长整形编号主关键字username文本借阅人姓名不能为空beizhu备注备注可以为空第四章图书管理信息系统的实现4.1创建与Access2003数据库的连接网站页面与后台数据库的连接,主要是靠conn.asp文件实现,以后当需要对程序中的数据库进行操作时,只需要用<!--#IncludeFile="Neeao_SqlIn.Asp"-->命令可以直接调用该程序打开数据库。代码如下:<%dimconn,rs,datapathsetconn=Server.CreateObject("ADODB.Connection")datapath="book.mdb"dbpath=Server.MapPath(datapath)conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;JetOLEDB:DatabasePassword=;DataSource="&dbpathsetrs=Server.CreateObject("ADODB.Recordset")%>4.2登陆窗口功能的实现本窗口是为了让图书工作人员或图书馆管理员按照用户名和密码进行登录,实现对图书馆各类信息的管理。图4.1系统登陆界面下面代码主要检测输入的用户名和密码是否为空,如果用户名为空,对话框会提醒“请输入用户名”,如果密码为空,对话框会提醒“请输入密码”。<scripttype="text/javascript">functionchecklogin(){if(document.form1.username.value==''){alert('请输入用户名');document.form1.username.focus()document.form1.username.select();returnfalse;}if(document.form1.password.value==''){alert('请输入密码');document.form1.password.focus()document.form1.password.select();returnfalse;}}</script>用户名和密码输入之后,系统会在manager数据表中查找相互对应的用户名和密码,如果与manager数据表中记录相符合,系统会显示“登录成功”并进入图书管理系统界面,如果与manager数据表中记录不相符,系统会显示“密码错误”。<!--#includefile="md5.asp"--><!--#includefile="conn.asp"--><%dimactionaction=trim(request.QueryString("action"))ifaction="chkuser"thendimpassword,usernameusername=request.Form("username")password=request.Form("password")password=md5(password,16)setrs=conn.execute("select*frommanagerwhereuserid='"&username&"'andpassword='"&password&"'")ifnotrs.eofthensession("username")=rs("userid")session("userid")=rs("id")ifrs("isadmin")=truethensession("isadmin")="admin"endif response.Write"<script>alert('登录成功!\n\n欢迎使用图书管理系统。');window.location.href='main.asp';</script>"elseresponse.Write"<script>alert('密码错误!\n\n请重试!');window.location.href='index.asp';</script>"endifendif%>4.3工作人员模块窗口功能的实现4.3.1借书模块借阅人在寻找到自己的目标图书后,向工作人员申请借阅,工作人员点击我要借书按钮,进入结束程序,打开图书借阅对话框(如图4.2所示),工作人员输入图书的条形码,点击提交按钮,如果条形码输入正确,会显示借阅成功,进入借阅登记对话框,借阅对话框中包括三方面内容,分别为图书名称、借阅者姓名和备注信息,输入完成之后,借阅管理数据库中增加一条图书借阅记录,显示借阅书籍条形码、借阅者姓名、借阅者以、借阅时间及借阅状态。如果输入条形码错误,并且图书数据库中不存在与条形码相对应的数据,对话框会显示“该书暂未加入系统,请先加入系统!”。图4.2借书界面<!--#includefile="conn.asp"--><!--#includefile="checkuser.asp"--><%'增加借阅记录iftrim(request.querystring("action"))="jieyue"thenbookid=cint(trim(request.Form("bookid")))tiaoxingma=request.form("tiaoxingma")xingming=request.form("xingming")beizhu=request.form("beizhu")caozuoren=session("bookadmin")jcsj=formatdatetime(now(),2)Setrs=server.createobject("adodb.recordset")sql="select*frombooklog"rs.opensql,conn,1,3rs.addnewrs("tiaoxingma")=tiaoxingmars("bookid")=bookidrs("xingming")=xingmingrs("leixing")=Truers("jcsj")=jcsjrs("caozuoren")=caozuorenrs("beizhu")=beizhulogid=rs("id")rs.updateSetrs=conn.execute("updateebooksetjieyueshu=jieyueshu+1,yijie=yijie+1,logid="&logid&"whereid="&bookid&"")response.write"<script>"response.write"alert('借阅成功!');"response.write"window.location.href='jieyue.asp';"response.write"</script>"response.End()endiftiaoxingma=trim(request.form("tiaoxingma"))setrs=server.CreateObject("adodb.recordset")sql="select*from[ebook]wheretiaoxingma='"&tiaoxingma&"'"rs.opensql,conn,1,1ifrs.eofthenresponse.Write"<script>"response.Write"alert('该书暂未加入系统,请先加入系统!');"response.write"window.location.href='jieyue.asp';"response.write"</script>"rs.closesetrs=nothingresponse.endelseifrs("yijie")>=rs("ceshu")thenresponse.Write"<script>"response.Write"alert('该书已经全部借出!');"response.write"window.location.href='jieyue.asp';"response.write"</script>"rs.closesetrs=nothingresponse.endendiftiaoxingma=rs("tiaoxingma")shuming=rs("shuming")bookid=rs("id")rs.closesetrs=nothingendif%><bodyonLoad="xingming();"><scriptlanguage="JavaScript"type="text/javascript">functionxingming(){document.form1.xingming.focus();document.form1.xingming.select();}functioncheckform(){if(document.form1.xingming.value==""){alert('请输入借阅者姓名!');document.form1.xingming.focus();document.form1.xingming.select();returnfalse;}}4.3.2还书模块借阅人去图书馆还书,工作人员点击我要还书按钮,打开图书归还对话框(如图4.4所示)。工作人员输入图书的条形码,点击提交按钮,如果条形码输入正确,会显示借阅信息核对对话框,确认信息无误后,点击确定,还书成功。图4.4还书界面主要代码如下:<!--#includefile="conn.asp"--><!--#includefile="checkuser.asp"--><%'图书归还处理iftrim(request.querystring("action"))="huanshu"thenlogid=request.form("logid")tiaoxingma=request.form("tiaoxingma")Setrs=conn.execute("updatebooklogsetleixing=falsewhereid="&logid&"")setrs=conn.execute("updateebooksetyijie=yijie-1wheretiaoxingma='"&tiaoxingma&"'")response.Write"<script>"response.Write"alert('还书成功!');"response.write"window.location.href='huanshu.asp';"response.write"</script>"response.endendiftiaoxingma=request.form("tiaoxingma")setrs=server.CreateObject("adodb.recordset")sql="select*from[ebook]wheretiaoxingma='"&tiaoxingma&"'"rs.opensql,conn,1,1ifrs.eofthenresponse.Write"<script>"response.Write"alert('该书暂未加入系统,请先加入系统!');"response.write"window.location.href='huanshu.asp';"response.write"</script>"rs.closesetrs=nothingresponse.endelseifrs("yijie")=0thenresponse.Write"<script>"response.Write"alert('该书没有借出!');"response.write"window.location.href='huanshu.asp';"response.write"</script>"rs.closesetrs=nothingresponse.endendifbookid=rs("id")logid=rs("logid")shuming=rs("shuming")rs.closesetrs=nothingendif'获取借阅信息Setrs=conn.execute("select*frombooklogwhereid="&logid&"")ifrs("leixing")=falsethenresponse.Write"<script>"response.Write"alert('该书已经归还!请联系管理员');"response.write"window.location.href='huanshu.asp';"response.write"</script>"response.endendif%>4.3.3新书入库把新购买图书添加到系统中,就要点击新书入库按钮,显示新书入库界面(如图4.6),首先要输入图书的条形码,按下一步按钮,进入图书信息录入界面(如图4.7),在图书信息添加界面,工作人员就可以录入书籍信息,其中条形码和书籍名称是必须填写内容。录完信息之后,点击添加完成新书入库功能。图4.6新书入库界面图4.7图书信息录入界面主要代码如下:<!--#includefile="conn.asp"--><!--#includefile="checkuser.asp"--><%action=request.querystring("action")step=request.QueryString("step")ifstep=1thentiaoxingma=trim(request.form("tiaoxingma"))setrs=server.createobject("adodb.recordset")sql="select*fromebookwheretiaoxingma='"&tiaoxingma&"'"rs.opensql,conn,1,1ifnotrs.eofthenresponse.write"<script>"response.write"alert('该条形码书籍已经存在!\n\n请重新正确输入!');"response.write"history.back(-1);"response.write"</script>"rs.closesetrs=nothing EndIF endififaction="add"thentiaoxingma=request.form("tiaoxingma")shuming=request.form("shuming")folderid=request.form("folderid")zhubian=request.form("zhubian")chubanshe=request.form("chubanshe")ceshu=request.form("ceshu")dingjia=request.form("dingjia")jianjie=request.form("jianjie")beizhu=request.form("beizhu")shijian=request.form("shijian")bookpic=request.form("bookpic")setrs=server.createobject("adodb.recordset")sql="select*fromebookwheretiaoxingma='"&tiaoxingma&"'"rs.opensql,conn,1,3ifnotrs.eofthenresponse.write"<script>"response.write"alert('该条形码书籍已经存在!\n\n请重新正确输入!');"response.write"history.back(-1);"response.write"</script>"rs.closesetrs=nothingelsers.addnewrs("tiaoxingma")=tiaoxingmars("shuming")=shumingrs("folderid")=folderidrs("zhubian")=zhubianrs("chubanshe")=chubanshers("ceshu")=ceshurs("dingjia")=dingjiars("jianjie")=jianjiers("shijian")=shijianrs("beizhu")=beizhurs("bookpic")=bookpicrs("userid")=session("userid")rs.updaters.closesetrs=nothingresponse.write"<script>"response.write"alert('添加书籍成功!\n\n图书管理系统!');"response.write"window.location.href='bookin.asp'"response.write"</script>"endifendif%><scriptlanguage="JavaScript"type="text/javascript">functiontiaoxingma(){document.form2.tiaoxingma.focus();document.form2.tiaoxingma.select();}functioncheckit(){if(event.keyCode=="13"){document.form1.folderid.focus(); document.form1.folderid.select();}}functioncheckform(){if(document.form1.tiaoxingma.value==""){alert('书籍条形码不能为空!');document.form1.tiaoxingma.focus();document.form1.tiaoxingma.select();returnfalse;}if(document.form1.shuming.value==""){alert('书籍名称不能为空!');document.form1.shuming.focus();document.form1.shuming.select();returnfalse;}document.form1.submit();}</script>4.3.4图书管理查询主界面点击图书管理,进入图书管理查询界面,输入正确的条形码,按查找图书按钮进入图书修改界面,在图书修改界面就可以对图书的条形码、书籍类别、书籍名称、主编/作者、出版社、册数、定价、书籍简介、书籍状况、购置时间、缩略图等信息进行修改。在这些信息当中,条形码和书籍名称不能为空。通过这个界面我们可以查阅国书的一些信息。在图书管理查询界面.如果用户不输入条形码,就按查找图书按钮,系统会提示“书籍条形码不能为空”。如果输入的条形码不在数据库中,系统会提示“该书末加入系统”。主要代码如下:<!--#includefile="conn.asp"--><!--#includefile="checkuser.asp"--><%action=request.querystring("action")ifaction="edit"thenbookid=cint(request.Form("bookid"))tiaoxingma=trim(request.form("tiaoxingma"))shuming=request.form("shuming")folderid=request.form("folderid")zhubian=request.form("zhubian")chubanshe=request.form("chubanshe")ceshu=request.form("ceshu")dingjia=request.form("dingjia")jianjie=request.form("jianjie")beizhu=request.form("beizhu")shijian=request.form("shijian")bookpic=request.form("bookpic")setrs=server.createobject("adodb.recordset")sql="select*fromebookwhereid="&bookid&""rs.opensql,conn,1,3rs("tiaoxingma")=tiaoxingmars("shuming")=shumingrs("folderid")=folderidrs("zhubian")=zhubianrs("chubanshe")=chubanshers("ceshu")=ceshurs("dingjia")=dingjiars("jianjie")=jianjiers("shijian")=shijianrs("beizhu")=beizhurs("bookpic")=bookpicrs.updaters.closesetrs=nothingresponse.write"<script>"response.write"alert('修改书籍成功!\n\n图书管理系统!');"response.write"window.location.href='bookedit.asp?tiaoxingma="&tiaoxingma&"'"response.write"</script>"else%><scriptlanguage="JavaScript"type="text/javascript">functiontiaoxingma(){document.form1.tiaoxingma.focus();document.form1.tiaoxingma.select();}functioncheckit(){if(event.keyCode=="13"){document.form1.folderid.focus(); document.form1.folderid.select();}}functioncheckform(){if(document.form1.tiaoxingma.value==""){alert('书籍条形码不能为空!');document.form1.tiaoxingma.focus();document.form1.tiaoxingma.select();returnfalse;}if(document.form1.shuming.value==""){alert('书籍名称不能为空!');document.form1.shuming.focus();document.form1.shuming.select();returnfalse;}document.form1.submit();}</script>4.3.5分类管理本图书管理系统是以条形码为索引进行图书借阅、归还、新书入库和图书管理。使用条形码使这些工作变得非常容易,但是图书管理人员怎么给借阅者查阅他们想要看的目标图书呢?图书管理人员不会记住每个条形码所对应的书籍,为了实现这一功能,本系统增加了分类管理这个模块,在这个模块里,图书馆工作人员可以修改、删除和增加图书的分类名称。分类管理页面做好之后就会链接到图书管理系统的主界面,通过点击不同分类名称,就可以进入该分类所包含的图书界面,这个界面会显示图书的详细信息,从而完成图书的查询功能。主要代码如下:<scripttype="text/javascript">functioncheckadd(){if(document.form1.foldername.value==""){alert('分类名称不能为空');document.form1.foldername.select();document.form1.foldername.focus();returnfalse;}}</script><%Dimaction,idaction=trim(request.QueryString("action"))selectcaseactioncase"add"foldername=cstr(request.Form("foldername"))Setrs=server.CreateObject("adodb.recordset")sql="select*fromfolder"rs.opensql,conn,1,3rs.addnewrs("foldername")=foldernamers("folderparentid")=0rs.updaters.closesetrs=nothingresponse.Write"<script>alert('添加分类成功!');window.location.href='foldermanage.asp';</script>"case"editfolder"%><%case"edit"id=cint(request.querystring("id"))foldername=cstr(request.Form("foldername"))Setrs=server.CreateObject("adodb.recordset")sql="select*fromfolderwherefolderid="&idrs.opensql,conn,1,3rs("foldername")=foldernamers.updaters.closesetrs=nothingresponse.Write"<script>alert('修改分类成功!');window.location.href='foldermanage.asp';</script>"case"del"id=cint(request.QueryString("id"))conn.execute("deletefromfolderwherefolderid="&id)conn.execute("deleteFromebookwherefolderid="&id)response.Write"<script>alert('删除分类成功!');window.location.href='foldermanage.asp';</script>"caseelse%>4.4图书馆管理人员功能模块图书馆管理人员除了具有图书馆工作人员一切权限,还具有添加和删除用户的功能。主要代码如下:<%ifsession("isadmin")<>"admin"thenresponse.Write"<script>alert('对不起,你不是管理员!\n\n图书管理系统');window.history.go(-1);</script>"endif%><!--#includefile="checkuser.asp"--><!--#includefile="conn.asp"--><!--#includefile="md5.asp"--><scripttype="text/javascript">functioncheckadd(){if(document.form1.username.value==""){alert('用户名不能为空');document.form1.username.select();document.form1.username.focus();returnfalse;}}</script><%Dimaction,idaction=trim(request.QueryString("action"))selectcaseactioncase"add"username=trim(request.Form("username"))password=md5(request.Form("password"),16)Setrs=server.CreateObject("adodb.recordset")sql="select*frommanager"rs.opensql,conn,1,3rs.addnewrs("userid")=usernamers("password")=passwordrs.updaters.closesetrs=nothing'setrs=conn.execute("insertintomanager(userid,password)values("&username&","&password&")")response.Write"<script>alert('添加用户成功!');window.location.href='usermanage.asp';</script>"case"edituser"%><%case"edit"id=cint(request.querystring("id"))password=md5(request.Form("password"),16)Setrs=server.CreateObject("adodb.recordset")sql="select*frommanagerwhereid="&idrs.opensql,conn,1,3rs("password")=passwordrs.updaters.closesetrs=nothing'conn.execute("updatemanage

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论