图书管理系统

1  引言

1.1  传统图书管理的模式和特点

一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。在计算机尚未在图书馆广泛使用之前,传统的图书管理模式其最大的特点是手工;一个最典型的手工处理还书过程就是:首先要把买来的图书资料登记到资料本上,再给每本书分类贴上标签及制作和标签相对应的图书分类卡片,最后把图书分类卡片按类别分别放置在文件柜里。对于有学生(教师)证的学生(教师)来说还要对他们资料作一定的记录。并且在人们来借书的时候,首先持证件者要去存放图书分类卡片的文件柜里查找想借的书是否在架,如果卡片存在,再按照图书分类卡片在相应的书架上找到需要的图书,然后登记持证件者的借还书时间和在书签条上写下借还书记录,之后把会员证留在那里;还书的时候,相对应的消去出借记录;这样做起来比较麻烦,比较费时间。

中小型书店、中小学的小型图书馆及各高校图书馆和资料室使用传统的人工方式管理图书档案、会员档案。这种管理方式存在着诸多缺点,如:手续繁琐、工作量大、效率低下、出错率高等,同时给对大量资料的查询、更新及维护都带来不少困难。以上所描述的手工过程的不足之处显而易见,首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选择书和看书上。

但是鉴于开发工具和开发当时的科技发展水平所限,再加上历史发展到今天,人们的生活环境已经发生了改变,大家对于图书查询这方面的要求也更高。比如在一个局域网内,大家希望能在本台电脑上就能查找自己想要的图书,而不用跑到图书馆或图书室里去用那里的电脑查询,这就需要一个网络化的联机查询系统,虽然编程语言VisualBasic也能用基于C/S模式实现查询的网络化,但是要安装客户端,这样将给以后的安装和升级维护工作带来不便。

1.2  图书管理的现状和趋势

随着近年来信息技术及计算机网络技术的不断发展, 图书馆也先从传统的图书馆发展到自动化图书馆,再发展到今天的数字图书馆,这些变化使得图书馆的形象越来越现代化,人们查找资料也更加方便。对于一些小图书馆和一些图书室来说,由于工作人员比较少,长期以来,作为图书馆的主要工作—图书借阅一直未能很好地开展。在平常的图书借阅工作中, 由于大部分读者不熟悉图书馆藏书,且对图书排架分类的不了解,往往花费很长时间才能找到其所需的书。为提高管理效率,更好地为读者服务,利用已有的办公局域网络条件,将馆藏书籍做成基于WEB的查询系统,实现图书在一个单位的网络内甚至Internet上查询,可使图书查询和借阅变得更加方便快捷,从而使图书室的工作效率得到明显提高。

1.3  选题的目的、意义

随着社会的进步,信息技术的广泛应用,数字化管理的优势日趋显著。针对中小型图书馆或图书室管理落后的情况,设计实现一个图书信息管理系统,通过与计算机的结合使用对中小型图书馆或图书室的各种图书信息进行管理可以给管理员和用户带来以下不同的方便:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工作效率,也是图书馆等部门管理科学化、正规化的重要标志之一。而且计算机管理的成本不断降低。因此,开发一套这样的中小型图书管理软件已经很有必要,并且实现研究服务于实践的原则。

1.4  设计目标

在试用了一些个图书管理系统和查阅了大量相关资料文献的基础上,发现那些系统在几个方面已经不符合时代的要求,由于设计人员及其所用的工具的不同,有Visual Basic6.0、Visual ForPro6.0、Power Builder等,再加上这些图书管理系统设计的时间也不一样,所用具体场合也有区别,因此在功能上除了图书资料管理所需的基本功能之外也有所不同。经过比较总结他们都实现了以下图书管理的基本功能:a)图书检索模块:是图书管理系统的重要模块之一,是读者快速查询图书的途径。b)图书管理模块:是图书管理员操作模块,读者是无权进入的。本模块由借出图书登记、归还图书登记和续借图书登记子模块构成。c)数据维护模块:是由图书管理员控制的模块,它由增加、修改和删除读者,增加、修改删除图书,浏览修改读者、浏览修改图书等程序组成。 d)数据统计模块:由读者统计、图书统计、借出图书分类统计、到期末归还图书读者统计几部分组成。这些系统解决了以前的那种管理方式所存在着的诸如手续繁琐、工作量大、效率低下、出错率高等缺点,设计出的系统能使读者快速检索到自己喜爱的书,图书管理员能减轻工作量。为提高图书查询效率,减少系部图书管理员的工作负担,有必要开发一个小型图书管理软件来对系部图书实施有效管理。该系统必须具备以下功能:a)能对各类图书实行分类管理;b)提供必要的读者信息;c)能进行各种高级查询(如未还书目的查询;已还书目的查询等);d)具有图书检索功能;e)能管理登录系统的图书管理员等。这样不仅能较好地帮助读者在最短的时间内找到自己所需要的图书书目、编号,而且能让图书管理员以最高的效率办理借阅手续。

针对以上情况,决定组建一个基于浏览器/服务器结构的图书管理系统,要求该系统能对登录后的用户实行权限管理。在系统启动后,读者能在客户端根据自已的需要查询图书,而图书管理员能在服务器端根据读者提供的身份信息及图书编号办理借书或还书手续,通过自动查询功能判断读者是否还能借书。如果读者没有逾期未还图书情况及所借图书没超过可借图书数量,则可继续办理借书手续,否则不予办理。另外,图书管理员能根据需要通过该系统的服务端自行修改图书信息,增加或删除图书书目等。该系统设有超级用户,当管理员以超级用户登录服务器时,图书管理员有着最大的权限,能通过管理界面设置图书借阅期限、查询逾期未还图书信息和读者信息,并能有效地管理图书分类、读者信息及图书管理员的登录帐目等。

该系统要求能在WIN98、WIN2000及更高级环境下运行。

2  系统分析与设计

2.1  需求分析

需求分析:为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。主要包括功能需求和性能需求两个方面。

a)功能需求

该图书管理系统涉及图书信息、系统用户信息、读者信息、图书借阅信息等多种数据管理。从管理的角度出发可将图书管理分为三类:图书信息管理、系统管理、读者数据管理。图书信息管理包括图书入库、图书增删、图书借还和查询操作,系统管理主要是用户密码管理,读者数据管理包括读者类别管理和读者个人数据的录入、修改、删除、借书和还书等。

典型的图书管理系统主要应具有以下功能:

 图书入库管理:录入新的图书信息。

 图书信息管理:主要是对已有图书的修改、删除。

 图书借还管理:实现对图书的借出和归还的信息管理。

 图书查询管理:通过各种查询方式来进行查询,比如书号、作者等。

 系统用户管理:实现用户密码的管理。

b)性能需求

系统的运行对运行环境的一些要求:

硬件环境:处理器:Inter Pentium 166 MX 或更高

内存:不小于64MB

硬盘空间:不小于1.5GB

显卡:SVGA显示适配器

软件环境:开发环境:Windows XP

开发工具:ASP语言、Dreamweaver 8.0

数据库管理系统:SQL Server2000

运行环境:Windows 98/ME/2000/XP

纵观图书管理的发展和应用以及计算机的迅猛发展,本次课程设计题目是基于WEB图书管理信息系统, 其意义在于通过所学的知识,利用开发工具,开发出一套使用简单的图书管理信息系统。

    1. 可行性报告

2.2.1  经济可行性

网站的技术支持追求评价客观、公正,信息广泛、快捷,服务专业、全面,手段超前、多样,管理现代、规范。可以说,本设计会尽可能的向着这些方面靠拢。

本开发的设计和维护费用教小,系统维护手段简单可行,系统支出少,且系统开发成功后所带来的效益是一定的,可以说这个设计的性价比较高,应该说是一个成功的设计。

a)完成该系统和维护系统所用的费用

硬件:电脑一台  3000RMB

软件:Windows 9x以上的操作系统,9X安装PWS,Windows 2000以上的操作系统安装IIS ,并且都同时安装了网络浏览器DremweaverMX 8简体中文正式版或者是其他的网页编辑工具

总计:3000元左右

b)产品投入使用获得的经济效益和社会效益

2.2.2  技术可行性

a)开发的软件可行性

基于WEB的图书管理信息系统开发的技术是可行的,因为现代计算机技术和信息为我们提供了很好的技术。我们应用它们可以开发出功能较为强大,操作方便,且较完善的聊天室系统.根据自己所学的知识,结合实际情况,笔者选择了DremweaverMX 8.0 进行对该系统的开发。使用其作为开发工具是因为对这个开发工具更具有更好的了解和开发能力。数据库方面采用SQL Server 2000进行开发,SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。SQL Server 2000是数据库程序设计的优秀软件,它是面向对象的可视化编程,同时它提供很多数据库操作的命令和函数.我们应用DremweaverMX 8.0的强大技术和完善的SQL Server 2000可以很快地开发出符合实际聊天系统。DremweaverMX 8.0为用户提供了良好和操作简单的界面。对于目前的网络系统的开发还是有一定的优势的。

b)开发的硬件可行性

由于现在电脑的发展是非常的飞快,所以在硬件上应该没有什么问题,现在的电脑的处理能力还是相当可以的。不过要注意的是硬件系统的稳定性问题,这个是非常关键的问题。

2.2.3  操作可行性

进入图书管理系统的用户大多是一些熟悉图书管理的人,或者是一些对计算机比较熟悉的人,因此对于这些人来说,方便的使用计算机进行图书管理,应该不具有任何问题。并且本系统提供了简单,易懂的界面,让客户尽快的熟悉图书管理系统的操作。

2.3  开发工具的选用

本系统开发采用了所学的Active Server Pages(ASP,活动服务器页面)、SQL Server2000 数据库服务技术。网页设计使用的是最新的 Dreamweave 8.0 版本。在此,对系统所采用的语言和工具进行一点简单的介绍。

2.3.1  ASP语言的介绍

Active Server Pages(ASP,活动服务器页面)就是一个编程环境,在其中,可以混合使用HTML、脚本语言以及组件来创建服务器端功能强大的Internet应用程序。 如果你以前创建过一个站点,其中混合了HTML、脚本语言以及组件,你就可以在其中加入ASP程序代码。通过在HTML页面中加入脚本命令,你可以创建一个HTML用户界面,并且,还可以通过使用组件包含一些商业逻辑规则。组件可以被脚本程序调用,也可以由其他的组件调用。

目前的 ASP 版本总共提供了六个内建对象,分别是Request对象、Response对象、Server对象、Session对象、Application对象及ObjectContext对象,其各自功能简述如下:

Request对象:负责从客户机接收信息;

Response 对象:负责响应用户请求;

Application对象:负责保存所有ASP程序用户的共用信息;

Session对象:负责保存单个用户与应用程序交互的各种信息;

Server对象:负责控制ASP的运行环境。

ObjectContext对象:供ASP程序配合MTS进行分散式的事务处理。

a)Request对象

Request对象的语法如下:

Request [ .集合 | 属性 | 方法 ](变量)

使用Request还可以从客户端得到数据,访问任何基于HTTP请求传递的信息,包括从HTML表格用POST方法或GET方法传递的参数、Cookie和用户认证。常用的3种取得数据的方法是:Request.form、Request.QueryStryt和Request。

b)Response对象

Response对象用于动态响应客户端请求,并将响应信息返回到客户端浏览器中。

Response对象的语法如下:

Response [ .集合 | 属性 | 方法 ]

Response对象的方法包括AppendToLog、BinaryWrite、Clear、End、Flush、Redirect、Write等。

c)Application对象

Application对象用于存储对所有用户都共享的信息,并可以在Web应用程序运行期间持久地保持数据。

Application对象的语法如下:

Application [ .集合 | 方法 ]

Application对象的集合有两个:Contents集合及StaticObjects集合,

其中Contents集合表示没有使用<OBJECT>元素定义的存储于Application对象中的所有变量(及它们的值)的一个集合;而StaticObjects集合表示使用<OBJECT>元素定义的存储于Application对象中的所有变量(及它们的值)的一个集合。

d)Session 对象

Session对象,可以使不同的用户存储自己的信息,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失。

Session对象的语法如下:

Session [ .集合 | 方法 | 属性]

Session对象提供了两个集合:Contents集合及StaticObjects集合,

其中Contents集合表示存储于这个特定Session对象中的所有变量和其值的一个集合,并且这些变量和值没有使用<OBJECT>元素进行定义;而StaticObjects集合表示通过使用<OBJECT>元素定义的、存储于这个Session对象中的所有变量的一个集合。

e)Server对象

Server对象提供对服务器上访问的方法和属性。

2.3.2 SQL SEVER数据库简介

SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。标准的SQL命令,比如“Select”、 “Insert”、 “Update”、 “Delete”、 “Create”和 “Drop”常常被用于完成绝大多数数据库的操作。SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组:

DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据;

DDL(Data Definition Language,数据定义语言): 用于定义数据的结构,比如 创建、修改或者删除数据库对象;

DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。

其中DML组可以细分为以下的几个语句:SELECT:用于检索数据;INSERT:用于增加数据到数据库;UPDATE:用于从数据库中修改现存的数据;DELETE:用于从数据库中删除数据。

DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:CREATE TABLE,ALTER TABLE,DROP TABLE,CREATE INDEX,DROP INDEX

    下面是一个简单SQL语句的例子:

我们使用SQL语句来从Book中检索‘借书证号’为‘000001’的借阅者姓名:

SELECT 姓名 FROM Book WHERE 借书证号 = ‘000001’。

2.3.3 Dreamweaver 8.0的简介

Dreamweaver 8.0 是 建立 Web 站点和应用程序的专业工具。它将可视布局工具、应用程序开发功能和代码编辑支持组合为一个功能强大的工具,使每个级别的开发人员和设计人员都可利用它快速创建界面吸引人并且基于标准的站点和应用程序。从对基于 CSS 的设计提供领先的支持到手动编码功能,Dreamweaver 在一个集成和高效的环境中为专业人员提供了所需的工具。开发人员可以将其选择的服务器技术与 Dreamweaver 配合使用,建立将用户连接到数据库、Web 服务和旧式系统的强大 Internet 应用程序。

数据接口的选择

由于系统和所用的开发工具自身所带的特点,所以系统中所要用到的接口有Connection接口、Statement接口和PreparedStatement接口三个接口。

面向对象的程序设计

通过面向对象的程序设计把系统要实现的功能都写进一个 Java Beans(java 类文件包)内,系统通过调用文件包内的方法实现系统的操作。由于系统开发语言是ASP ,采用这种方法能够很大程度提高系统的运行能力,保证了系统快速响应用户的请求。所以本系统的主要精华在于对面向对象的方法的把握,编定一个好的方法能够很大程度提高系统的性能。以下简单介绍一下面向对象程序设计。

    面向对象的程序设计的基本概念

面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。

面向对象程序设计的优点

面向对象出现以前,结构化程序设计是程序设计的主流,结构化程序设计又称为面向过程的程序设计。在面向过程程序设计中,问题被看作一系列需要完成的任务,函数(在此泛指例程、函数、过程)用于完成这些任务,解决问题的焦点集中于函数。其中函数是面向过程的,即它关注如何根据规定的条件完成指定的任务。

在多函数程序中,许多重要的数据被放置在全局数据区,这样它们可以被所有的函数访问。每个函数都可以具有它们自己的局部数据。这种结构很容易造成全局数据在无意中被其他函数改动,因而程序的正确性不易保证。面向对象程序设计的出发点之一就是弥补面向过程程序设计中的一些缺点:对象是程序的基本元素,它将数据和操作紧密地连结在一起,并保护数据不会被外界的函数意外地改变。比较面向对象程序设计和面向过程程序设计,还可以得到面向对象程序设计的其他优点:

a)数据抽象的概念可以在保持外部接口不变的情况下改变内部实现,从而减少甚至避免对外界的干扰。

b)通过继承大幅减少冗余的代码,并可以方便地扩展现有代码,提高编码效率,也减低了出错概率,降低软件维护的难度。

c)结合面向对象分析、面向对象设计,允许将问题域中的对象直接映射到程序中,减少软件开发过程中中间环节的转换过程。

d)通过对对象的辨别、划分可以将软件系统分割为若干相对为独立的部分,在一定程度上更便于控制软件复杂度。

e)以对象为中心的设计可以帮助开发人员从静态(属性)和动态(方法)两个方面把握问题,从而更好地实现系统。

f)通过对象的聚合、联合可以在保证封装与抽象的原则下实现对象在内在结构以及外在功能上的扩充,从而实现对象由低到高的升级。

   


3  总体设计

3.1  设计原则

系统的设计与开发是一项系统工程,为了保证系统的质量,必须遵守共同的设计原则,尽可能地提高系统的各项指标。具体的设计原则如下:

实用性原则:要力求最大限度得满足实际工作的需要,考虑各业务层次、各管理环节数据处理的实用性,把满足用户生产的和管理业务作为第一要素进行考虑。用户接口和操作界面设计尽可能做到界面美观大方、操作简便实用。

可扩展性原则:为适应将来的发展,系统应具有良好的可扩展性和可维护性。软件设计应尽可能模块化、组织化,使应用系统可灵活配置,适应不同的情况。数据库的设计应尽可能考虑到未来的需要。

安全性原则:应用软件与数据库系统的设计要做到安全可靠,防止非法用户的入侵。数据库的备份策略恰当,以防灾难性事故的发生。

用户界面设计原则:用户界面的设计应符合Windows规范的图形用户界面(GUI),做到美观大方。用户界面应当直观、明了、条理清晰。实现“傻瓜型”管理---易学、易用、易管理。

数据库设计原则:一致性原则:对信息进行统一的分析与设计,协调好各数据源,保证系统数据的一致性和有效性;完整性原则:数据库的完整性是指数据的正确性和相容性,要防止合法用户使用数据库时向数据库加入不规范的数据,对输入到数据库中的数据要审核和约束机制;安全性原则:数据库的安全性是指保护数据,防止非法用户使用数据库或合法用户非法使用数据库造成数据泄漏、更改或破坏,数据库要有人证和授权机制;可伸缩性原则:数据库的设计应充分考虑发展的需要、移植的需要,应具有良好的扩展性,伸缩性和适度冗余;规范化数据库的设计:应遵循规范化理论。规范化程度过低的数据库,可能会存在插入/删除异常、修改复杂、数据冗余等问题,解决的方法就是对关系模式进行分解或合并,转换成高级范式。

3.2  系统功能模块分析

3.2.1  图书管理

图书管理的主要内容包括:a)新书入库,图书管理人员按照每年的采购计划进行购书,(不在本系统考虑范围)图书购入后由图书管理人员将图书按类别分类后录入数据库;b)图书出库,某一部分图书会随着时间的增长及知识的更新而变得不再有收藏的价值,或者图书被损坏,这些图书就要在图书库的除去。即从图书库中删除此图书记录;c)新书编码,图书入库后,需要贴上条形码,以便以后提供借阅,本系统不涉及到条形码阅读器,只是假定此过程已经生成条形码。编码只是将条形码帖于书上以唯一标识图书;d)图书信息修改,图书信息由于工作人员的疏忽,而出现错误,提供其图书ID就可以修改其信息。

3.2.2  图书流通管理

图书流通管理主要内容包括:a)图书借阅,主要功能是记录借阅证编号和图书编号,进行借书过程,在数据库中插入一条借书记录,该记录包括读者ID、图书ID、借出日期、借阅编号、操作员;b)图书归还,主要功能是输入借阅编号、借阅证编号、图书ID、还书日期,在借阅登记表中找到相应的记录,将借书记录删除,将该记录的相应数据更新到历史记录中;c)图书暂停,主要功能是将图书的状态改为暂时停止外借状态,更新图书表。

3.2.3  统计查询

统计查询的主要内容包括:a)读者查询,主要功能是录入读者的姓名或期读者ID来精确查询或模糊查询读者的相关信息;b)借阅查询,主要功能是录入读者ID或图书编号对当前已经借阅的图书及读者的信息查询。

3.3  模块框架图

 

通过对图书管理系统的分析,可以得出该系统涉及三个实体:读者、图书、工作人员。通过对各实体数据关系的整理, E—R图见图3.2。

3.4  系统数据分析和设计

通过对图书管理系统的分析,可以得出该系统涉及三个实体:读者、图书、工作人员。

读者:借阅证编号、姓名、最大借书数、状态。

图书:图书编号、图书名称、作者、出版社、价格、库存量。

工作人员:用户名称、登陆密码。

系统管理的主要内容:a)添加用户,主要功能是向用户表中添加用户,只有管理员才有此权限;b)修改密码,主要功能用于用户密码的更改。

实体之间的联系涉及的数据项有:借阅信息表:借阅人姓名,图书编号,借书日期。因此对系统的数据库的设计可以围着这几个方面进行,所以对数据库的设计由以上的分析做为依据,通过一系列的分析和数据库的设计,使得数据库的设计得以实现。系统数据库中的各数据库表结构如下面的图所示:

创建的图书库表设计见表3.1。

表3.1 图书库表(Book)

列名

数据类型

长度

允许空

BookId

int

4

Title

varchar

50

Austhor

varchar

50

TSLB

varchar

50

ISBN

varchar

50

CBS

varchar

50

TSZT

varchar

16

TSXX

text

50

CBSJ

varchar

4

DJ

int

4

PCJE

int

4

TSKCL

int

4

创建的读者表设计见表3.2。

表3.2 用户信息表(Reader)

列名

数据类型

长度

允许空

ReaderID

varchar

40

Password

varchar

40

Readername

varchar

30

BZRQ

Datetime

8

SXRQ

Datetime

8

LJJS

int

4

创建的图书借阅记录表设计见表3.3。

表3.3 图书借阅记录表(Borrow)

列名

数据类型

长度

允许空

BorrowID

int

4

ReaderID

int

4

BookID

int

4

JYSJ

Datetime

8

DQSJ

Datetime

8

GHSJ

Datetime

8

ZT

Varchar

50

XJCS

int

4

创建的管理员信息表设计见表3.4。

表3.4 管理员表(Manager)

列名

数据类型

长度

允许空

ManagerID

Int

20

Password

Int

30

创建的规则表设计见表3.5。

表3.5 规则表(GZ)

列名

数据类型

长度

允许空

RuleID

Int

20

GZMC

Varchar

50

GZNR

Text

16

以上是系统数据库的各表。其中Book表是用来存放图书的,如管理员要对书库中的书做一些调整可以通过对Book的修改从而达到。Reader表用来存放用户的信息的表,管理员能通过对Reader 表的操作知道某用户的具体信息。Borrow 表用来存放用户借书的记录,用户每借一次书,系统就自己在Borrow 中添加一条记录。从而保证了书的出处有据可依。管理员信息表主要用来记录管理员信息。


4  详细设计

4.1  详细设计思想

图书管理系统共分为三个大的模块:资本资料维护模块设计、系统管理模块设计和用户模块设计。资本资料维护模块设计主要是系统对数据库的内容的维护,对书的借出和归还的操作,对新书的入库,旧书的出库,以及书的信息的修改,对书的落处进行跟踪,保证图书馆内书的完整性。系统管理模块主要对管理员的操作,记录每一个管理员的基本信息,及时地更新管理员的信息,删除老管理员的信息。系统用户模块主要实现的功能是系统提供用户查询自己的借阅信息及用户对自己所需要的图书的查询。

4.2  基本模块设计

4.2.1  功能模块的实现

    系统功能模块图见图4.1。

图4.1 系统模块文件结构

a) 登录模块的设计

登录功能由页面admin.asp实现,在该页面中,由于读者登录名由管理员分配,因此,无密码验证设计,具体设计登录界面见图4.2。

图4.2 登录界面

登陆功能的流程图见图4.3

图4.3 登陆功能流程图

登录界面部分代码:

<link href="css.css" rel="stylesheet" type="text/css"/> <script type="text/javascript">

function checklogin(){

if (document.form1.username.value==''){

alert('请输入用户名');

document.form1.username.focus()

document.form1.username.select();

return false;

}

if (document.form1.password.value==''){

alert('请输入密码');

document.form1.password.focus()

document.form1.password.select();

return false;

b) 图书信息查询模块的设计

图书信息查询模块的设计主要是为了方便管理员或读者根据条形码快速的查询图书的信息。

图书查询界面见图4.4。

图4.4 图书信息查询

图书信息查询功能流程见图4.5。

图4.5 图书信息查询流程图

图书信息查询页面处理代码:

根据请求的数据组织SQL语句进行查询

创建一个记录集对象,执行上面的SQL语句返回一个记录集

若记录集没有数据是,提示“还没有任何图书信息”,利用End方法使Web服务器停止处理脚本并返回当前结果。否则,执行下列语句,返回所有记录。

rs.PageSize = pageSize

pgnm = rs.PageCount

if(IsEmpty(page) or cint(page)<1 or cint(page)> pgnm) then page = 1

rs.absolutePage = page '指定当前页码

else

response.Write("暂无图书信息,请返回并访问其他页面!")

Response.end  

end if

do while(not rs.EOF and count <> pageSize)

通过循环结构输出记录集中每条记录的各个属性值

rs.MoveNext()

count = count + 1

loop

c) 已借阅信息查询

该功能执行后页面见图4.6。

图4.6 已借阅信息查询

保存读者ID号readerid=session("readerid")

通过selClass的取值和查询条件设置查询字符串。在这两张表中进行复合查询(bookinfo,borrowinfo)

建立记录集对象,通过该对象调用open方法执行相应的查询字符串。

如果记录集为空,输出提示信息 ; 否则:

<form method="POST" action="bookcheck.asp">

//把该表单元素值传送到bookcheck.asp进行处理。              

do while(not rs.EOF and count <> pageSize)

//通过此循环输出当前记录集元素 ,并判断最后时间;

如果  date()>rs("lastdate")执行

payment=FormatNumber(day(date()-rs("lastdate"))*0.1,,-1)

如果date()>rs("enddate")执行   payment=FormatNumber(day(date()-rs("enddate"))*0.1,,-1)

rs.MoveNext()

count = count + 1

loop

//关闭记录集

//关闭数据库链接

d)图书借阅界面的设计

图书借阅界面实现了读者对图书的借阅登记,通过对条形码的录入,省去了传统的人工纸张记录的麻烦,极大的方便了图书管理员快速的完成图书的节约工作,从而大大的简化图书借阅的过程

该功能执行后页面见图4.7。

图4.7 图书借阅

4.2.2管理模块的实现

管理模块的设计至关重要,一个系统是否能高效稳定的运行,完全取决于管理模块设计的好坏。

管理模块文件结构示意图见图4.8。

图4.8 管理模块文件结构

a)管理员列表

由于该页面实现了全部读者信息的浏览和按条件查询两个功能,因此,在进入页面是要根据查询文本框中的数据的状态来决定数据的显示结果。如果查询文本框中的数据为空,则将ReaderInfo表中的所有读者信息全部显示;若不为空,则需要取得查询方式构造查询语句。如果按条件查询结果为空,则显示提示信息,否则将读者信息显示在页面上。

读者信息浏览及查询页面实现的关键代码如下:

<table width="100%" align="center" cellpadding="1" cellspacing="1" bordercolor="#CCCCCC" bgcolor="#999999">

<td width="204" height="21"  background=images/bg2.gif><divalign="center"><strong>用户名</strong></div></td>

<td width="205" background=images/bg2.gif><div align="center"><strong>统计

<td width="127" background=images/bg2.gif><div align="center"><strong>操作管理set rs=conn.execute("select * from manager")

do while not rs.eof

b)管理员添加

要添加读者信息之前,首先检查该读者信息是否已经存在,如果存在则给出提示信息,并跳转回读者信息添加页面。如果不存在该读者信息,则将数据写入ReaderInfo表中。

读者信息添加页面实现的关键代码如下:

<title>用户管理</title>

Dim action,id

action=trim(request.QueryString("action"))

select case action

case "add"

username=trim(request.Form("username"))

password=md5(request.Form("password"),16)

Set rs=server.CreateObject("adodb.recordset")

sql="select * from manager"

rs.open sql,conn,1,3

rs.addnew

rs("userid")=username

rs("password")=password

rs.update

rs.close

set rs=nothing

'set rs=conn.execute("insert into manager(userid,password) values("&username&","&password&")")

c)登录信息的修改和删除功能

若要修改和删除读者信息,则需要在功能区单击“读者信息管理”链接,在如下所示页面上完成读者信息的修改和删除操作:

图4-9 管理员信息的修改和删除

1)管理员信息的修改功能

在管理员信息记录中,单击右侧“修改”按钮,则可以进入管理员信息修改页面。该页面将选定的管理员信息再现在页面上,并提示了“修改”和“重置”功能按钮。读者信息再现的关键代码如下:

获取 readerID 并通过它作为查询条件组织SQL语句

执行SQL返回记录集

读取记录集中的各个字段值,并通过ReaderTypeID升序排序

while(not rs.EOF)

如有记录,通过循环执行相应操作

rs.MoveNext()

wend

首先按照选定的管理员编号将该读者的详细信息从ReaderInfo表中提取出来,然后将其写入页面。

修改管理员信息后,单击“修改”按钮则可更新读者信息,(readereditz.asp)代码如下:

读取表单中的数据,通过oldid设置条件

conn.execute(sqlstr) 执行SQL删除满足该条件的记录  

sqlstr="select * from ReaderInfo where readerid='"&readerid &"'"

set rs=conn.execute(sqlstr)//执行该SQL查询,如果没有记录返回,则把读取的表单中的数据插入数据表

response.Redirect("booklist.asp")//转到指定页面

否则,响应"此读者编号已经存在!"

response.write"<a href=readermanage.asp>返回</a>"//通过超连接返回到指定页面

2)管理员信息的删除功能

在管理员信息管理页面上选择待删除的读者,在其右侧单击“删除”链接,则弹出删除的提示信息,若确定删除则可完成管理员信息的删除操作。删除管理员信息的关键代码如下:

<table width="100%" align="center" cellpadding="1" cellspacing="1" bordercolor="#CCCCCC" bgcolor="#999999">

<td width="204" height="21" background=images/bg2.gif><div align="center"><strong>用户名</strong></div></td>

<td width="205" background=images/bg2.gif><div align="center"><strong>统计</strong></div></td>

<td width="127" background=images/bg2.gif><div align="center"><strong>操作管理</strong></div></td>

set rs=conn.execute("select * from manager")

do while not rs.eof

<td align="center" bgcolor="#FFFFFF"><%=rs("userid")%></td>

<td align="center" bgcolor="#FFFFFF"><%

set rs1=conn.execute("select count(*) from ebook where userid="&rs("id"))

response.write rs1(0)

<td align="center" bgcolor="#FFFFFF"><a href="usermanage.asp?action=edituser&id=<%=rs("id")%>">修改</a> | <a href="usermanage.asp?action=del&id=<%=rs("id")%>" οnclick="return confirm('确认要删除吗?');">删除</a></td>


5  系统测试与维护

5.1  系统测试

测试目标:a)测试是一个为了发现错误而执行程序的过程;b)一个好的测试案例是指很可能找到迄今为止尚未发现的错误的案例;c)一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。

测试原则:a)所有的测试都应可追溯到客户需求;b)、应该在测试工作真正开始前较长时间就进行测试计划;c)Pareto原则可应用于软件测试;d)测试应从“小规模”开始,逐步转向“大规模”测试;e)穷举测试是不可能的;f)为了达到最有效,应该由独立的第三方来构造测试。

测试方法:对本系统主要采用的是黑盒测试法,不深入代码细节的软件测试方法。以用户的角度通过操作本系统来发现系统存在的错误和缺陷。常被称为行为测试,因为测试的是软件在使用过程中的实际行为。

功能测试:功能测试部分主要是针对系统设计目标进行测试,对各个功能模块进行数据输入操作、提交保存、用户和管理员信息查询验证各个功能模块都能正常使用。

性能测试:软件由数据(包括键盘输入、鼠标单击、磁盘文件、打印输出等等)和程序(可执行的流程、转换、逻辑和运算)两个最基本的要素组成。对数据进行软件测试,就是在检查用户输入的信息、返回结果以及中间计算结果是否正确。

当输入的数据类型不符合时,如价格保存的是flaot类型,日期是datatime类型,如果输入的是字符,则会弹出出错提示,但这是MS SQL的错误提示,并不是程序的提示,即本系统没有对输入错误类型进行判断。

对输入的数据长度没有进行判断,对一些固定长度的数据类型会提示语句终止,而对于动态变化长度的类型不会进行判断。

5.2  系统维护

    所谓软件维护就是在软件交付使用之后,为了改正错误或满足新的需要而修改软件的过程,其基本任务是保证软件在一个相当长的时期能够正常运行,其工作是长期的、艰巨的。在图书管理系统当中,我们也应主动培养完整系统开发的意识。

结  论

短短的几个星期过去了,毕业设计的任务终于完成了。在设计过程中,主要使用了ASP程序设计语言,SQL Server 数据库服务和Dreamweaver 8.0来开发这个图书管理系统工程。我觉得ASP在实际操作中很实用,而且ASP程序设计语言具有强大的结构化程序设计和面向对象程序设计的功能。采用SQL Server 数据库,因SQL的本身优点,从而使系统对数据操作更加的完善,能完成多种复杂条件下的操作。本次设计完成了对图书馆信息管理的实现 ,系统实现了对书的管理,读者的管理,和书的去向跟踪,对书的查询.从而保证了用户能及时地方便地使用图书。尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。

    通过开发这个系统,我掌握了解了其开发的过程,并对ASP +SQL Server 动态开发网页的产生了浓厚的兴趣,但在这次毕业设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。

然而个人所学还是有不全面的地方,本系统还不能实现高级查询这一个功能,系统的实现还是有所困难,由于该系统要求是基于网络的图书借阅系统,如果网络上的一个用户要借阅这系统中的某一本书,系统就比较难以实现。这就要求借阅双方有一定基础的信任度,同时要保证书本及时借到用户手中,由于现实中网络化的生活服务并不完善和书本在借出中的跟踪很困难。所以本系统要基于网络还是停留在理论上,当然在科技日益进步的今天,随着科技的进步,基于网络的图书借阅系统在将来的日子里还是可以实现的。

致  谢

在此之际,我思绪万千,心情久久不能平静。毕业设计的完成,实乃朱研老师关心和勉励的结果。正是导师的谆谆教导和鼓励,才使我在不断学习中前进并顺利完成毕业设计,借此机会我向导师表示衷心的感谢!

要感谢的还有在我收集资料过程中给予无私援助和支持的各位同学和老师。论文的成果中也包含了他们支付的机会成本。

特别要感谢我的同学,在本论文选题和研究思路与研究方法上给予的慷慨帮助和友情指导。

还要感谢图书馆的工作人员,在此次毕业设计中,我多次咨询图书馆的老师,他们给予了诸多意见和建议。

在即将毕业离校之际,我要感谢在大学四年的生活上给予我关心和帮助以及学业上的切磋和指点的各位老师和我的同学朋友们,感谢全班同学的帮助和勉励。同窗之谊和手足之情,我将终生难忘!

最后,我要再次感谢朱研老师和同学在我的毕业设计中所给予的帮助。

参 考 文 献

1   肖慎勇. 数据库及其应用. 北京:清华大学出版社,2007

2   文必庆. 开放数据库互连技术与应用. 北京:科学出版社,1997

3   高文. 数字图书馆——原理与技术实现. 北京:清华大学出版社, 2000

4   张金霞. HTML网页设计参考手册. 北京:清华大学出版社,2006

5   王海泉. 现代图书馆发展的新理念. 北京:中国图书馆学报, 2002

6   李明华. 信息交流与现代图书馆系统. 北京:书目文献出版社, 2006

7   黄梯云. 管理信息系统. 北京:经济科学出版社, 2000

8   钟斌等. Dreamweaver MX2004动态网页基础与范畴. 北京:机械工业出版社,2004

9   周绪, 管丽娜, 白海波. SQL SERVER 2000. 北京:清华大学出版社, 2003

10  张海藩. 软件工程导论. 北京:清华大学出版社, 2005

11  吴慰慈. 图书馆自动化与网络化. 北京:机械工业出版社, 1999

12  孟雪梅, 周燕. 网络环境下图书馆信息资源建设的内容与重点. 北京:情报资料工作, 2002(6):12~57

13  张晓青. 论数字图书馆的用户管理与用户服务模式. 北京:现代图书情报技术, 2003(2):31~68

14  刘小东,陈艳玲. Dreamweaver MX2004动态网站设计实训教程. 上海:上海科学普及出版社,2005

15  姜旭平.信息系统开发方法――方法、策略、技术、工具与发展.北京:清华大学出版社,1997

16  陆均良,杨铭魁.信息技术与饭店管理.北京:旅游教育出版社,2005

17  王勇领.计算机数据处理系统分析与设计.北京:清华大学出版社,1986

18  季延平,郭鸿志.系统分析与设计.北京:中国人民大学出版社,1995

19  陈禹主.管理信息系统.北京:中国人民大学出版社,1998

20  前沿电脑图像工作室.巧学巧用Dreamweaver 8制作网页.北京:人民邮电出版社,2006

21  Roger S.Pressman. Software Engineering A Practitioner’s Approach, 5th ed.IEEE Computer Society Press, 2001(1):12~56

22  Mark Michaelis. ESSENTIAL C# 2.0. Sams Publishing, 2007

23  McLeod. Management Information system Management in Practice.Prentice Hall,1998(2):20-80

24  David M.Kroenke. Database Processing.Sams Publishing,2001

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值