图书管理系统 SQL.doc_第1页
图书管理系统 SQL.doc_第2页
图书管理系统 SQL.doc_第3页
图书管理系统 SQL.doc_第4页
图书管理系统 SQL.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

图书管理系统Books management system学 院:信息工程教学部班 级:2010级计算机科学与技术一班小 组:第一小组小组成员:韦亚勇(组长)、郭珏君、何志刚、杨海滨、宋伟楠、王文浩分工情况序号学号姓名完成内容成绩101002001韦亚勇所有内容均有参与,着重在需求分析、详细设计、库表设计、代码设计。201002021郭珏君参与详细设计、代码设计、库表设计。301002014何志刚参与软件测试、概要设计、详细设计。401002022杨海宾参与概要设计、详细设计。501002042宋伟楠参与库表设计、详细设计。600868200王文浩参与库表设计、详细设计。开发计划2012年11月5日2012年11月20日:进行做需求分析,写出需求分析文档,确定系统需求,为以后设计做铺垫。2012年11月21日2012年11月25日:进行概要设计,写出概要设计文档,确定系统的初步构架,为详细设计奠定基础。2012年11月26日2012年11月30日:做库表设计,写建库sql脚本文件,做出数据库表,为以后与网页的链接做前提。 2012年12月1日2012年12月5日:详细设计,写出详细设计文档,对系统进行详细设计,做到能实现部分功能。2012年12月6日2012年12月12日:编码实现程序,对部分功能进行编码实现,确保功能实现正确。2012年12月13日2012年12月16日:测试,写出测试报告文档,检测系统是否能正常运行,每个功能是否还有缺陷。一、需求分析 1.1.1 概述当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这使得计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。随着Intranet的飞速发展,移动办公和分布式办公越来越普及,B/S (Browser/Server) 架构应运而生,并得到普遍应用。B/S架构最大的优点就是客户端无需安装任何专用的客户端软件,只需配置浏览器(如Intranet Explorer)即可,这样为程序的安装、调试和维护带来了极大的方便。ASP.NET所开发的应用软件一般都是B/S架构,用户可直接通过浏览器来使用系统,而无需安装软件的客户端。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理。根据调查得知,以前对信息管理的主要方式是基于纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。现今,有很多的图书馆都是开始使用计算机进行信息管理。使图书管理工作进入规范化,系统化,程序化的轨道,同时避免了图书管理的随意性,提高了信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书及用户信息。1.1.2 发展趋势 处在知识经济形势下的新信息浪潮,是以信息技术的高速发达和全方位应用为特征,以生产科学知识和信息为基础的,它形成了图书管理的新的生存环境信息和信息技术环境。新的世纪人类社会正面临知识经济和信息社会的急剧变革,世界各个角落的人们都强烈地感受到新时代的冲击与震撼。知识更新经济朝代和网络时代的一些特征,已经深入到人们的社会生活中。知识经济是以知识更新为基础的经济,这各经济直接领带于知识更新和信息的生产、扩散和应用。 面对现代化管理,必须适应信息世界的变化。新型的图书管理软件必须向现代化转变。必须具有信息咨询服务、信息资源数据库服务、网络信息服务等代化服务。 网络飞速发展的环境下,未来的图书管理应该以信息网络为目的加快信息的传播速度,提高信息服务质量.在网络化条件下,图书的借阅主要由计算机流通管理系统或读者在自己的终端上自动完成。在完成方式上,更多地利用电话,移动通讯、电子邮件等来完成;在咨询内容上,更多的是关于信息源查询、信息内容的鉴定等内容。系统基于互动的客户/服务模型,其系统结构包括元数据服务器、WEB应用服务器、对象数据服务器、以及客户端机等。系统应该具备在开放式、异构型环境中的运行能力。1.2 课题提出 在当今知识大爆炸的时代,图书作为信息的一种载体,仍是人们获得知识的一种重要途径,因而作为图书管理与借阅的图书馆,它的运行情况则关系到知识的传播速度问题。以往旧的图书管理模式完全是手工操作,从新书的购买、编码、入库、上架,到借阅、续借、归还、查询,无一不是人工处理,需要大量的劳动力与工作量,而且由于人为的原因造成一些错误,也是再所难免的。当读者想要借阅一本书时,首先要查询大量的卡片,而且要有一定的图书管理知识,才能很快的查到。自己想要的图书,在借阅过程中还要填写许多相关的卡片,使得图书的管理效率低下,图书流通速度较慢,因而从一定程度上也影响了知识的传播速度。 学校作为教书育人的中坚力量,图书馆的作用更是举足轻重。学校图书馆要做到安全顺畅的运转,为广大同学提供良好的服务,就必须有一套完善健全的运行管理机制。联系实际,考虑各层次学校的情况,软件本身要求易学,界面友好,容易掌握,可以较简单方便的管理各种图书信息;硬件的配置要求不能太高,这样可以很好的适应当前的学校图书馆。系统的总体特点应该是方便、简单、实用。1.3 处理需求 本系统采用ASP语言实现,开发平台使用Dreamweaver8.0,数据库使用SQL Server 2005。 ASP是一种网络编程技术,能够支持动态网络编程。 Dreamweaver8.0是一种编辑网页的工具,支持ASP、JSP、PHP等基本网络技术及其语言。SQL Server 2005可以简化基本的数据库操作,通过与 Visual Studio 项目的集成,数据库应用程序的设计和开发也变得更加简单。此外,服务和修补也得到了简化和自动化。用户的需求具体体现在各种对图书馆书籍信息的查询、借阅、归还、续借和资料的修改,这就要求数据库结构能充分满足各种信息的输出和输入。二、概要设计概要设计的目的是通过本系统软件,能帮助前台操作人员(读者)利用计算机快速方便的进行图书预定、图书检索等操作。概要设计的任务是根据需求分析得到的用例图确定一个合理的软件系统的体系结构,作为系统的详细设计的基础和准备。以下内容为读者借阅模块的流程图和结构图:2.1 系统前台运行(读者借阅模块)流程图用户登陆读者图书检索图书借阅查询个人信息查询密码修改图2.1系统前台运行流程图系统运行流程图描绘了读者借阅模块的总体运行情况。浏览此图可对整个基于web的图书馆管理系统的读者借阅模块有一个快速、清晰的认识。上图为基于web的图书馆管理系统的前台运行流程图。2.2 目标系统体系结构2.2.1 系统前台运行(读者借阅模块)结构图读者借阅模块个人信息管理图书检索图书操作密码修改按图书类别按书名按作者按书架按出版社图书借阅查询图书到期查询个人信息查询图2.2.1系统前台运行结构图四、数据库表设计4.1E-R图设计读者图书借还属于角色学号用户名密码性别院系住址电话角色标识出生年月书号书名分类号作者出版社价格摘要关键词图书状态登记日期出版日期角色名称n1mn角色标识属于图书类型类型名类型号类型描述n1读者:(学号、用户名、密码、读者性别、所在院系、家庭住址、联系电话、出生年月、角色标识)图书:(书号、图书名称、所属分类号、作者、出版社、价格、出版日期、摘要信息、关键词、图书状态、登记日期)角色:(角色标识、角色名称)借阅:(借阅号、学号、书号、借书日期、还书日期、图书的状态(是否借出)、超出天数、罚款金额) 图书类型:(类型号、图书类型名称、图书类型描述)4.2 数据库结构描述主要包括各个表结构设计表4.2.1 User表(系统用户信息数据表)表4.2.2 Book表(图书信息表)表4.2.3 BorrowRec表(图书借阅信息表)表4.2.4 BookType表(图书类型表)表4.2.5 Role表(角色表)表之间的关系图:以下是部分SQL脚本视图部分:CREATE VIEW dbo.View_4ASSELECT dbo.Reservation.readerID, dbo.Book.bookID, dbo.Reservation.bookID AS Expr1, dbo.BorrowRec.borrowRecID, dbo.BorrowRec.bookID AS Expr2, dbo.BorrowRec.readerID AS Expr3FROM dbo.BorrowRec INNER JOIN dbo.Reservation ON dbo.BorrowRec.readerID = dbo.Reservation.readerID INNER JOIN dbo.Book ON dbo.BorrowRec.bookID = dbo.Book.bookID GOCREATE VIEW dbo.View_3ASSELECT dbo.Role.roleID, dbo.Users.roleID AS Expr1, dbo.Users.userIDFROM dbo.Users INNER JOIN dbo.Role ON dbo.Users.roleID = dbo.Role.roleID GOCREATE VIEW dbo.View_2ASSELECT dbo.BorrowRec.borrowRecID, dbo.Book.bookIDFROM dbo.BorrowRec INNER JOIN dbo.Book ON dbo.BorrowRec.bookID = dbo.Book.bookID GOCREATE VIEW dbo.View_1ASSELECT dbo.BookType.bookTypeID, dbo.Book.bookTypeID AS Expr1FROM dbo.Book INNER JOIN dbo.BookType ON dbo.Book.bookTypeID = dbo.BookType.bookTypeID GO建表部分:(生成脚本)SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Users) AND type in (NU)BEGINCREATE TABLE dbo.Users(userID nvarchar(50) NOT NULL,userName nvarchar(50) NULL,userPassword nvarchar(50) NULL,userGender bit NULL,userDepartment nvarchar(50) NULL,userAddress nvarchar(50) NULL,userPhone nvarchar(50) NULL,userBirthday datetime NULL,roleID int NULL, CONSTRAINT PK_Reader PRIMARY KEY CLUSTERED (userID ASC)WITH (IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARYENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Role) AND type in (NU)BEGINCREATE TABLE dbo.Role(roleID int IDENTITY(1,1) NOT NULL,roleName nvarchar(50) NULL, CONSTRAINT PK_Role PRIMARY KEY CLUSTERED (roleID ASC)WITH (IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARYENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Book) AND type in (NU)BEGINCREATE TABLE dbo.Book(bookID nvarchar(50) NOT NULL,bookName nvarchar(50) NULL,bookIndex nvarchar(50) NULL,bookTypeID int NULL,author nvarchar(50) NULL,publish nvarchar(50) NULL,price money NULL,publishDate datetime NULL,abstract ntext NULL,keyword nvarchar(50) NULL,status int NULL,registeDate datetime NULL, CONSTRAINT PK_BookInfo PRIMARY KEY CLUSTERED (bookID ASC)WITH (IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARY TEXTIMAGE_ON PRIMARYENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.BookType) AND type in (NU)BEGINCREATE TABLE dbo.BookType(bookTypeID int IDENTITY(1,1) NOT NULL,bookTypeName nvarchar(50) NOT NULL,bookTypeDesc nvarchar(50) NULL) ON PRIMARYENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.BorrowRec) AND type in (NU)BEGINCREATE TABLE dbo.BorrowRec(borrowRecID int IDENTITY(1,1) NOT NULL,readerID nvarchar(50) NOT NULL,bookID nvarchar(50) NOT NULL,beginDate datetime NULL,endDate datetime NULL,borrowStatus bit NULL,overdueDays int NULL,penalty money NULL, CONSTRAINT PK_BorrowRec_1 PRIMARY KEY CLUSTERED (borrowRecID ASC)WITH (IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARYEND存储过程脚本:SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_SearchBook) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = NCREATE PROCEDURE dbo.Proc_SearchBook(bookTypeID int, queryByColvarchar(10), Content varchar(50) )ASbegin declare sql nvarchar(1000) -生成的sql语句if bookTypeID=0 -0为“全部” beginset sql=select * from Book where +queryByCol+ like %+Content+%exec sp_executesql sql endelse beginset sql=select * from Book where bookTypeID=+str(bookTypeID)+ and +queryByCol+ like %+Content+%exec sp_executesql sql endend ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Nc_InAndOut) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = NCREATE proc c_InAndOut( outParam int output, inParam nvarchar(50)asif exists(select * from user where userName=inParam)begin set outParam=1;endelsebegin set outParam=0;end ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_UpdateUserInfo) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = NCREATE PROC dbo.Proc_UpdateUserInfo userID NVARCHAR(50),)AS UPDATE Users SET userDepartment=userDepartment,.) WHERE userID=userID ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_UsersDetail) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = Ncreate PROCEDURE dbo.Proc_UsersDetailUserIDvarchar(50)AS SELECT * FROM dbo.UsersWHERE userID=UserID ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_GetUserInfoByID) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = NCREATE PROCEDURE dbo.Proc_GetUserInfoByIDuserID VARCHAR(50)AS SELECT *FROM dbo.UsersWHERE userID=userID ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_GetUsers) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = NCREATE PROCEDURE dbo.Proc_GetUsersAS SELECT * FROM Users ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_DeleteUsers) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = NCreate procedure dbo.Proc_DeleteUsers userID nvarchar(50)ASDELETE FROM Users where UserID=userID ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_UpdateUser) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = NCREATE PROC dbo.Proc_UpdateUser (userID nvarchar(50),)ASupdate Users set userName=userName,.where userID=userID ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_GetRole) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = Ncreate proc dbo.Proc_GetRoleASSELECT * FROM Role ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_GetBooks) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = Ncreate PROC dbo.Proc_GetBooksASSELECT * FROM Book ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_DeleteBook) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = NCREATE PROC dbo.Proc_DeleteBook bookID nvarchar(50)AS DELETE FROM Book WHERE bookID=bookID ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_GetBookInfoByID) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = NCREATE PROC dbo.Proc_GetBookInfoByID bookID nvarchar(50)AS SELECT * FROM Book WHERE bookID=bookID ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_AddBook) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = Ncreate PROCEDURE dbo.Proc_AddBook( bookIDnvarchar(50),)AS INSERT INTO Book ( bookID,) VALUES (bookID,) ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_GetCurrentBorrow) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = NCREATE PROCEDURE dbo.Proc_GetCurrentBorrowuserID VARCHAR(50)AS SELECT dbo.borrowRec.readerID, FROM dbo.borrowRec, dbo.bookWHERE book.bookID=borrowRec.bookID AND borrowStatus=True AND readerID=userID ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_GetBorrowHistory) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = NCREATE PROC dbo.Proc_GetBorrowHistory userID NVARCHAR(50)AS SELECT * FROM Book WHERE bookID IN(SELECT bookID FROM BorrowRec WHERE readerID=userID AND borrowStatus=False) ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_UpdateBookByID) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = NCREATE proc dbo.Proc_UpdateBookByID bookID nvarchar(50),AS update Book set bookName=bookName,. where bookID=bookID ENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.Proc_SelectBookType) AND type in (NP, NPC)BEGINEXEC dbo.sp_executesql statement = N- =- Author:- Create date: - Description:- =CREATE PROCEDURE dbo.Proc_SelectBookType- Add the parameters for the stored procedure hereASBEGIN- SET NOCOUNT ON added to prevent extra result sets from- interfering with SELECT statements.SET NOCOUNT ON; - Insert statements for procedure hereSELECT BookTypeID,BookTypeName FROM BookTypeEND,END五、 详细设计5.1系统功能结构读者查询个人信息图书管理系统操作员管理员查询图书信息查看借阅情况修改密码借书处理查看读者借阅情况还书处理读者信息管理图书信息管理修改密码 5.2 系统部分功能模块具体分析及实现5.2.1借书还书处理功能的实现借书和还书是图书借阅管理系统的一个最重要也是最基本功能。它在图书管工作人员的操作下,对本公司(企业)员工的借还书情况进行录入、修改、查询等一系列的过程。在程序中,利用vb script 脚本语言实现画面的控制,利用asp语言来实现对库的操作和算法流程的控制。借书功能的具体实现 借书是图书管工作人员根据借阅者所借书籍的图书编号(当然这个编号于每一本图书是唯一的)将该图书登入借书表单,并对其借阅时间和借阅数量进行控制的过程。因为该系统是针对公司(企业)的图书馆进行管理的,所以图书借阅也仅对公司内部人员进行开放,所以借阅者必须根据自己的工号(工作证编号)和其它一些在公司的相关信息办理读者证后,工作人员根据借阅者所持读者证的读者证号(该读者的唯一标识)进行查询,如果该读者在读者信息数据库中有记录,则调出该读者个人信息和他(她)已借书籍的信息,如果读者信息数据库中无该读者信息,则此人不能借阅书籍。一般来说,只要该读者信息真实存在,就可以借阅书籍了,但为了有效控制图书的借阅秩序,对于有过期未还书籍的读者和借书数目超过最大限制的读者,不能继续借书,此外,当该读者借阅了一本书后,系统应即时显示他(她)最新的借阅情况,如果借阅数目未满,则可以在原界面继续操作(借书)。算法描述如下:首先导入数据库连接,以便对读者信息表和图书基本信息表进行查询和修改,因为借书只能是拥有图书馆工作人员以上的权限的人才能进行的操作,所以在程序开始部份还应先判断一下用户的权限,如果没有工作人员的权限,则要先进行管理员登陆,即转向登陆界面:(此处用到“session“这个物件来4存取一个变量记录登陆的用户名,它可以在同一个客户端多个打开的浏览器之间传递变量值,如果用户能过了管理员登陆,则变量值不会为空,相反则为空:if session(user_name)= then 导向管理员登陆界面 end if接下来就是借书操作了:/变量说明部分/readerno 为读者证号/borrowno 为借书编号/number 为是否标志是否查询的读者信息是否存在,初始为1,表示有信息,如果输入读者证号后,没有查到读者信息,则更新为0。/clickselect 为是否查询过读者信息,即是否点击过读者信息的“查询“按扭/booknumber 统计已借书籍的数据量,初始化设为0,如果查到已借书籍大于或等于3时,该变量设为3。/count 统计过期第个读者过期未还的书籍数目先查询读者证号,如果读者证号为空,提示要求输入。这里可以放在读者证“查询”的单击事件中:sub readerno_onclick /读者证“查询”的单击事件if readerno= then /如果读者证号为空,提示要求输入显示 请输入读者证号!将光标定位于读者证号的输入框end ifclickselect =1 /已查询读者信息booknumber =0 /借阅书目初始化为0提交当前表单的信息end sub 查询了读者信息后,如果该读者在数据库中有记录,而且已借书籍没有超过去3本,则可以借书,如果没有记录,则屏蔽“借书”的功能,要求用户输入正确的读者证号:If readerno then 根据 readerno 查询读者信息数据库readerinformation if 查询的记录数=0 then 提示用户“无相应记录” number =0 将光标定位于读者证号输入框结束后面的ASP程序的运行,即不再查询已借书目信息 else 显示读者的个人信息 end ifif readerno or borrowno then 根据 readerno 将book_input 与 reaerinformation关联起来查询 book_input中 loaner(借阅者)为 readerno的所有图书信息 if 查询的记录数=0 then 显示“没有借书记录” else if 已借书记录=3 then 显示 你的书已借满 booknumber =3 end if If 已借书记录0 then For I=1 to已借书记录数显示已借的书目信息 dd=读取数据库中“借阅日期”字段 if dd thenif 当前日期-当前读取的借阅日期60 then count=count+1 end if end if Next end ifend if if count0 then 提示 你有过期未还的书! 更新 book_input中 刚查到的过期未还的书的book_state为1更新 readerinfomation 中该读者的reader_state为1 end ifEnd ifif booknumber= 3 or count0 then 屏蔽“借书“功能,即不显示借书按扭 end if 若未屏蔽借书功能,则可以借书 先输入借书编号,按下借书按扭,如果编号为空,要求输入,如果未查询读者证号就点击借书按扭,则提示用户先查询读者证号后,此段程序可放入借书按扭单击事件中: sub borrowbook if readerno = then显示 请先查询借书者的读者证号! elseif borrowno= then显

温馨提示

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

评论

0/150

提交评论