1、图书管理系统实例 WEB前端Ajax课程设计 题 目: 图书馆管理系统 设 计 者: 专业班级: 学 号: 2016年 06月09日 XXXXXX大学计算机学院 第一章 前言 1.1 选题背景 本课题设计并实现了基于Web的图书馆管理系统,该系统采用现今比较流行的Ajax(XHTML和CSS 、jQuery/Ext JS/Prototype/DWR)结合ASP.NET语言,结合SQL Server数据库,实现了图书的借阅、查询、管理等基本功能。系统不仅维护方便,节省了图书馆的资源,方
2、便图书馆进行图书管理,同时,用户也能够更容易更直观的查询书籍、管理藏书,使借书、还书、查书的过程大大简化,更加的方便和容易。8POul。 毕业设计做的系统就是对图书馆的书籍进行管理,主要工作是实现了图书信息功能,图书借还功能等。图书信息功能是实现了图书的数字管理,能方便管理员快速查看图书信息;借书功能,用户可以通过此功能选择是否借出检索的书籍;还书功能,读者可以查看自己所借书籍信息;管理员可以查看借书还书历史和违规书籍信息;查看书籍具体信息,管理员可以查看书籍的具体信息以及在图书馆的存储状态。 PQm11。 本论文内容主要是运用软件工程的知识,先进行系统需求分析,之后是系统概要设计,详细设
3、计,并且详细介绍了ASP.NET图书馆管理系统的操作代码和排序的代码编写和测试。XKLf5。 1.2系统开发的环境 1.2.1 硬件环境 (1) 能够运行Windows系统的高档PC台式机,笔记本电脑。 1.2.2 软件环境: (1) 中文Windows XP 操作系统。 (2) Microsoft Visual Studio 2005集成开发环境。 (3) IIS5.1服务器。 (4) Microsoft SQL Server 2000数据库服务器。 1.3系统需求分析 1.3.1需求分析 长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程比较繁琐。在借书
4、时,读者首先将要借的书和借阅证交给工作人员,工作人员然后将每本书的信息卡片和读者的借阅证放在一个小格栏里,最后在借阅证和每本书贴的借阅条上填写借阅信息。在还书时,读者首先将要还的书交给工作人员,工作人员然后根据图书信息找到相应的书卡和借阅证,并填写相应的还书信息[9]。bAEcu。 从上述描述中可以发现,传统的手工流程存在种种不足。首先处理借书、还书业务流程的效率很低;其次处理能力比较低,一段时间内,所能服务的读者人数是很有限的。为此,图书信息管理系统需要为企业解决上述问题,提供快速的图书信息检索功能及快捷的图书借阅、归还流程。yeQPL。 1.3.2 系统目标 (1) 设计界面友好、美
5、观、数据存储安全、可靠。 (2) 基本信息设置保证图书信息和读者信息的分类管理。 (3) 强大的查询功能,保证数据查询的灵活性。 (4) 实现对图书借阅、续借、归还过程的全程数据信息跟踪。 (5) 设置读者借阅和图书借阅排行榜,为图书管理提供真实的数据信息。 (6) 提供借阅到期提醒,使管理者可以及时了解到期的图书借阅信息。 (7) 提供管理员修改自己密码的功能,保证系统的安全性。 (8) 提供灵活、方便的权限设置功能,使整个系统的管理分工明确。 (9) 采用人机对话的操作方式,方便管理员的日常操作。 (10)系统最大限度地实现了易维护性和易操作性。 1.3.3 可行性分析
6、 技术可行性 根据系统的功能、性能及实现系统的各项约束条件。现有的技术及硬件软件都能够满足。 经济可行性 本系统建立在ASP.NET开发的基础上,项目开发成本非常小。只需要有一台能够运行Windows系统的高档PC台式机即可,并不需要什么高的成本。DyByd。 运行可行性 系统采用完全的图形化界面,易于管理,方便管理者查询设备信息,能够满足使用者的要求。该系统应该提供简单的操作界面,能够快速的实现查书、借书、还书功能。 OHkp2。 第二章 相关技术介绍 2.1 AJAX l 在传统的Web应用里,每个请求即对应一个页面,每次请求都会丢弃当前页面,等待服务器生成新页面(即使两
7、个页面几乎完全相同)。如果服务器响应还没有完全结束,则用户只能等待,不能继续原来的操作或发送请求。(同步请求)Kv1Np。 l Ajax的全称是Asynchronous JavaScript And XML,即异步Javascript和XML。Ajax并非一种全新的技术,它所使用的Javascript、CSS、DOM等技术早已存在。OeO99。 l Ajax的最大优势在于异步交互,即浏览者在浏览页面时,可同时向服务器发送请求。使用异步请求,服务器的响应不再是整个页面的内容,而只是必须更新的部分数据,浏览器无须频繁地重新加载新页面。Pq1zZ。 l Ajax可以减轻服务器和带宽的负
8、担,提供更好的服务响应。 l 浏览器通过Javascript代码向服务器发送请求。请求到响应的过程在后台进行,不影响用户当前界面。响应完成后,JavaScript代码负责解析服务器的响应数据,并把样式表加到数据上,然后在现有网页中显示出来。I8eMO。 l Ajax使用简单的XMLHttpRequest对象发送请求,使用简单的JavaScript函数监听服务器响应。在服务器完成响应后,JavaScript通过DOM动态更新HTML页面。自始至终,用户的动作无须中断,所感受的是一种连续的体验。C32zy。 l 通过使用Ajax技术,可以使互联网网页具有更友好的人机交互和更美观的浏览页面。
9、 l Ajax并不是要颠覆传统的B/S结构的应用,而只是让B/S结构的应用更加完善。 1. Ajax应用的工作过程 l JavaScript脚本使用XMLHttpRequest对象向服务器发送请求。发送请求时,既可以发送GET请求,也可以发送POST请求。swwTV。 l JavaScript脚本使用XMLHttpRequest对象解析服务器响应数据。 l JavaScript脚本通过DOM动态更新HTML页面。也可以为服务器响应数据增加CSS样式表,在当前页面的某个部分加以显示。G9LQb。 2. Ajax相关技术 l Ajax核心技术:XMLHttpRequest。XMLHtt
10、pRequest是Ajax技术的灵魂。没有XMLHttpRequest就没有Ajax。XMLHttpRequest用于发送异步请求。PQgOc。 l Ajax的编程脚本:JavaScript。JavaScript是Ajax技术的黏合剂。JavaScript主要工作:t4FvL。 n 创建XMLHttpRequest对象 n 通过XMLHttpRequest向服务器发送请求 n 创建回调函数,监视服务器响应状态,在服务器响应完成后,启动回调函数 n 回调函数通过DOM动态更新HTML页面 l 动态改变HTML页面内容的方法:DOM。 n DOM可将HTML页面视为一组包含父子关系的
11、节点的集合 n DOM是JavaScript获取页面数据的方式 n JavaScript可以通过DOM访问每个节点,修改节点内容及其属性,新增节点,删除节点 l 让页面表现更友好的技术:CSS。在Web页面采用CSS技术,可以有效地对页面的布局、字体、颜色、背景和其他效果实现更加精确的控制。ico17。 l 数据交换格式:JSON,而不是XML n Ajax技术提出时,XML主要作为通信双方的数据交换载体,但后来被JSON取代。 n JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数
12、据交换格式。i2RO8。 n JSON 语法规则 u 数据在名称/值对中 u 数据由逗号分隔 u 花括号保存对象 u 方括号保存数组 n JSON 数据的书写格式是:名称/值对。名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:"firstName" : "John"EPsPu。 n JSON 值 u 数字(整数或浮点数) u 字符串(在双引号中) u 逻辑值(true 或 false) u 数组(在方括号中) u 对象(在花括号中) u null n JSON 对象在花括号中书写:{ "firstName":"John" , "lastName":"
13、Doe" }5nRgX。 n JSON 数组在方括号中书写: { "employees": [ { "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"Jones" } ] } 3. Ajax的特征 l 异步发送请求 l 服务器响应是数据,而不是页面内容 l 浏览器中的是应用,不是简单视图 n 在传统Web应用中,浏览器只是简单视图,不包含任何逻辑功能 n 对于
14、Ajax应用,浏览器不仅可以包含简单逻辑,甚至可以保存用户会话状态。以购物车为例: u 在传统的Web应用里,采用Session保存会话状态,即将用户的状态信息保存到服务器端。每次用户添加商品,都必须提交一次请求,从而将购买物品提交到服务器的Session中。efuod。 u Ajax可以采用JavaScript的变量保存用户购买的所有物品。用户购买的物品无须提交到服务器的Session,而是直接修改浏览器中的JavaScript变量,直到用户提交购买请求,数据需要持久化时,JavaScript才将请求发送到服务器。ITxoS。 n Ajax应用初始化时,需要加载大量的JavaScrip
15、t代码。这些JavaScript代码中已经包含了部分业务逻辑,将在后台默默工作,负责处理部分逻辑,异步提交请求,以及读取服务器响应数据,动态更新页面。qlPQR。 4. Ajax带来的典型优势 l 级联菜单的传统实现 l Ajax应用特别适用于交互较多、频繁读数据、数据分类良好的Web应用,大体上,使用Ajax技术有如下优势plgX5。 n 减轻了客户端的内存消耗。Ajax的根本理念是“按需取数据”。 n 无刷新更新页面。 n 将传统的服务器工作转嫁到客户端,从而减轻服务器和带宽的负担,节约空间和带宽租用成本。 n Ajax基于标准化技术,几乎所有浏览器都支持这种技术,无须下载插
16、件或虚拟机程序。 5. jQuery简介 l jQuery库是非常优秀的JavaScript库,也是一个纯粹的JavaScript代码库,可以在任何Web应用中使用。mTxFz。 l jQuery可以做到跨浏览器运行,开发者只要面向jQuery编程,JavaScript脚本即可在不同浏览器之间自由切换。HdoIE。 l 优雅的解决方案:使用jQuery库之后,开发者操作的对象不再是原始的DOM元素,而是jQuery对象。通过这种方式就使开发者无须理会不同浏览器处理DOM对象时存在的差异,而是直接以jQuery对象所支持的属性和方法操作DOM对象。wn34z。 l 对Ajax提供了良好
17、的支持:使用jQuery,无须手动创建XMLHttpRequest对象,只需指定发送请求的URL和处理响应的回调函数即可,jQuery负责完成剩下的工作FMiZX。 l 提供了工具方法以简化数组、字符串的操作。 6. 理解jQuery的设计 l 使用jQuery动态更新HTML页面的两个步骤 n 获取jQuery对象。jQuery对象通常是对DOM对象的包装 n 调用jQuery对象的方法来改变自身。当jQuery对象被改变时,jQuery包装的DOM对象随之改变,HTML页面的内容也就随之改变了。FtmCf。
18、pt type="text/javascript" src="../jquery-1.8.0.js">
19、> l jQuery很多改变自身属性的方法的返回值,就是该对象本身。因此可以连续调用改变自身属性的方法。 l 学习jQuery,只需掌握2点 n 获取jQuery对象 n jQuery对象有哪些可用的方法 7. 获取jQuery对象 l 获取jQuery对象的两种方式 n 使用$()函数或用jQuery对象提供的,利用父子关系来返回的jQuery对象 n jQuery对象的调用方法改变自身后返回的jQuery对象 l jQuery核心函数【3.2/$.html】 n jQuery(expression[,context]): u 这个函数接收一个包含 CSS 选择器的字符
20、串,然后用这个字符串去匹配一组元素。jQuery的核心功能都是通过这个函数实现的。这个函数最基本的用法就是向它传递一个表达式(通常由 CSS 选择器组成),然后根据这个表达式来查找所有匹配的元素。Coso0。 u 默认情况下, 如果没有指定context参数,$()将在当前的 HTML 文档中查找 DOM 元素;如果指定了 context 参数,如一个 DOM 元素集或 jQuery 对象,那就会在这个 context 中查找。DYorF。 u 例:在文档的第一个表单中,查找所有的单选按钮(即: type 值为 radio 的 input 元素)。($("input:radio", doc
21、ument.forms[0]);)f14IA。 n jQuery(elements) u 将一个或多个DOM元素转化为jQuery对象。 u 例:设置页面背景色。($(document.body).css( "background", "black" );)ESrme。 u 例:隐藏一个表单中所有元素。($(myForm.elements).hide()) n jQuery(html[,ownerDocument]):该函数根据html参数(该参数是一个html字符串)创建一个或多个DOM对象,返回包装这些DOM对象的jQuery对象。其中ownerDocument是可选参数,用于指
22、定创建DOM元素所在的文档。3HUd0。 n jQuery(html, props) :该函数根据html参数创建一个或多个DOM对象,返回包装这些DOM对象的jQuery对象。其中props是一个形如{prop:value, prop2:value}的对象,该对象指定的属性将被附加到HTML字符串所创建的DOM对象上。x1ae4。 n jQuery(callback):这种用法是$(document).read()的简写,其中callback指定一个函数,在页面加载完成时自动触发callback。例:$(function(){alert(“页面加载完成!”)});4gDql。 2.2
23、 ASP.NET语言的发展 1996年,ASP1.0诞生,它的诞生给Web开发界带来了福音。它作为IIS的附属产品免费发送,并且不久就在Windows平台上广泛使用[2]。早期的Web开发是十分繁琐的,以至于要制作一个简单的动态页面都需要编写大量的代码才能完成,而ASP却允许使用VBScript这样简单的脚本语言,执行嵌在HTML网页中的代码,在进行程序设计时可以使用它的内部组件来实现一些高级的功能。它的最大贡献在于它的ADO(ActiveX Data Object),使得对数据库的操作十分简单,进行动态网页设计也变成了一件轻松的事情[3]。Z4Iih。 1998年,微软发布了ASP2.
24、0。与ASP1.0的主要区别在于它的外部组件是可以初始化的。这样,在ASP程序内部的所有组件都有了自己的独立内存空间,并可以进行事务处理。NpN6n。 2000年,随着Windows2000的发行,它内带的ASP3.0也开始流行。与ASP2.0的主要区别是它使用了COM+,并且效果提高,版本稳定。jowTa。 2000年7月,ASP.NET发行。ASP.NET不是ASP的简单升级,而是微软推出的新一代Active Server Pages。ASP.NET是微软发展的新的体系结构.NET的一部分,其中全新的技术架构会让每个人员的编程生活变得更为简单,Web应用程序的开发人员使用这个开发环
25、境可以实现更加模块化、功能更强大的应用程序的编程[4]。goh4Q。 2.2.1 ASP.NET语言的特色 网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不是很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的Web服务器[5]。6NeD7。 ASP.NET 是MicroSoft.NET 的一部分,作为战略产品,微软为ASP.NET设计了这样一些策略:易于写出结构清晰的代码,代码易于重用和共享,可用编译类语言编写等等,目的是让程序员更容易的开发出Web 应用程序,满足计算向Web 转移的战略方向的需要[6]。N
26、7nSp。 ASP.NET不仅仅是 Active Server Page (ASP) 的下一个版本,而且是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.NET提供许多比现在的Web开发模式强大的优势。lT84b。 2.2.2 SQL Server 2000 SQL Server是一个关系数据库管理系统,它最初是由Microsoft Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本,在Windows NT推出后Microsoft与Sybase在SQL Server的开发上就分道扬镳了[7]。Micr
27、osoft将SQL Server移植到Windows NT系统上,专注于开发推广SQL Server的Windows NT版本,Sybase则较专注于SQL Server在UNIX操作系统上的应用。在本书中介绍的是Microsoft SQL Server以后简称为SQL Server或MS SQL Server。SQL Server 2000是Microsoft公司推出的SQL Server数据库管理系统的较新版本,该版本继承了SQL Server 7.0版本的优点同时又比它增加了许多更先进的功能,具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows
28、 2000的膝上型电脑到运行Microsoft Windows 2000的大型多处理器的服务器等多种平台使用[8]。9zjkv。 第3章 总体设计 3.1业务流程图 根据系统的需求分析和可行性分析,画出图书馆管理系统的系统流程图,如图3-1所示。 读者 图书借阅 图书续借 图书归还 管理员 管理图书档案 管理读者档案信息 读者档案 获取读者信息 图书档案 图书借阅档案 根据读者信息获取借阅信息 完成图书续借 完成图书借阅 归还相关图书 图书归还档案 kTDcw。 图3-1 系统流程图 3.2系统功能结构 根据图书馆管理系统的特点,可以将其分为系统设
29、置、读者管理、图书管理、图书借还、系统查询等5个部分,其中各个部分及其包括的具体功能模块如图3-2所示。OCFYx。 图书馆管理系统 系统设置 读者管理 图书管理 图书借还 系统查询 图书馆信息 管理员设置 书架设置 读者类型管理 读者档案管理 图书类型管理 图书档案管理 图书借阅 图书续借 图书归还 图书档案查询 图书借阅查询 更改口令 推出系统 aI8aJ。 图3-2 系统功能模块 3.3 数据库设计 3.3.1数据总体结构设计 整个系统所包括的所有信息包
30、含图书信息、读者信息、图书借阅信息、图书归还信息、管理员信息、读者类型信息、图书类型信息。可将信息抽象为下列系统所需要的数据项和数据结构:fJbKT。 (1) 图书信息(图书编号,图书名称,图书类型,作者,译者,ISBN号,价格,出版社,所在书架,入库时间,操作员)HBIKC。 (2) 图书类型(图书编号,名称,可借阅天数) (3) 读者信息(编号,姓名,性别,借阅证编号,读者类型,出生年月,有效证件,证件号码,登记日期,电话,邮箱,操作员)y3ITM。 (4) 读者类型(名称,可借阅图书本数) (5) 图书借阅信息(图书编号,读者ID,借出时间,应还时间,是否归还,操作员) (6
31、) 图书归还信息(图书编号,读者ID,归还时间,操作员) (7) 管理员信息(名称,密码);图书馆书架信息(名称);出版社信息;权限信息 (8) 图书馆信息(编号,名称,馆长,电话,地址,邮箱,创建日期,简介) 在这里使用E-R图描述了图书馆管理系统的数据模型。下图标识涉及的实体及关系。 3.3.2图书信息表结构设计 图书馆馆藏中图书的信息主要在图书信息表中反映出来,在一本书入库时,就会由操作员添加它们的相关信息。系统借助本表来完成图书信息的查询。比如出版社则为出版该书出版社,图书入库时间显示图书进入图书馆的时间。hrA0W。 表的具体结果如下: 表6.1 图书信息表t
32、b_bookinfo 字段名称 数据类型 字段长度 是否为空 说明 barcode Varchar 30 No Key bookname Varchar 70 No 书名 author Varchar 30 Yes 作者 translator Varchar 30 Yes 译者 ISBN Varchar 20 No 出版社 price Float 8,2 No 图书价格 bookcase Varchar 10 No 图书所在书架 press Varchar 70 No 出版社 intime Da
33、te No 图书入库时间 operator Varchar 30 No 操作员 page Int 10 Yes 图书页码 3.3.3图书类型信息表结构设计 图书总是分为很多类型,比如社科,比如文学,该表的主要内容就是为图书进行分类,可借阅天数反映了该种类型图书的可借阅天数。表的具体结构设计如下:1skOL。 表6.2 图书类型信息表tb_booktype 字段名称 数据类型 字段长度 是否为空 说明 ID Int 10 No Key bookname Varchar 30 No 书名 Days In
34、t 10 No 可借阅天数 3.3.4读者信息表结构设计 该表设计了就是为了读者进行分类,而且不同类型的读者可借阅图书的数据是不同的。在此表中,还可以对各种类型读者的可借阅图书数据进行修改。表的具体结构设计如下:QBE5Z。 表6.3 读者信息表tb_reader 字段名称 数据类型 字段长度 是否为空 说明 Id int 10 No Key Name varchar 20 No 姓名 Sex varchar 4 No 性别 barcode varchar 30 No 借阅证编号 readertype varchar
35、 11 No 读者类型 Tel varchar 20 Yes 电话 e-mail varchar 100 Yes 邮箱 paperType varchar 10 No 证件类型 PaperNO. Varchar 20 No 证件号码 birthday date Yes 出生日期 intime date No 登记时间 operator varchar 30 No 操作员 3.3.5读者类型信息表结构设计 不同类型的读者拥有不同的权限,而可借阅图书数据也由其权限规定。本表就是对不同类型读者进行
36、分类的表。表的结构设计如下:EQeVp。 表6.4 读者类型信息表tb_readertype 字段名称 数据类型 字段长度 是否为空 说明 ID int 10 No Key readername varchar 50 No 姓名 number int 4 No 可借图书本数 3.3.6 图书借阅信息表结构设计 当一本书入库了之后,也就有了其相关的信息,比如入借阅时间,归还时间。本表记录的就是这些信息。记录了图书的状态,是被借出还是被归还。表的结构设计如下:lZlDJ。 表 6.5 图书借阅信息表 tb_borrow 字段名称
37、数据类型 字段长度 是否为空 说明 ID Int 10 No Key readerID Varchar 10 No 借阅证编号 bookID Int 10 No 图书编号 borrowTime Date No 结出时间 backTime Date No 应归还时间 operator Varchar 30 No 操作员 ifback Tinyint 1 No 是否归还 3.3.7图书归还信息表结构设计 该表的主要作用就是记录图书应该被归还的时间,除此之外,把图书与借阅者联系起来应该也是它的一个功
38、能。表的结构设计如下表:S8Yb7。 表 6.6 图书归还信息表tb_giveback 字段名称 数据类型 字段长度 是否为空 说明 ID Int 10 No Key readerID Varchar 11 No 借阅证编号 bookID Int 11 No 图书编号 backTime Date No 归还时间 operator varchar 30 No 操作员 3.3.8 管理员信息表结构设计 用于记录信息,包含ID和登陆密码表的具体结构设计见下表: 表 6.7系统用户信息表tb_mamager 字
39、段名称 数据类型 字段长度 是否为空 说明 ID Int 10 No Key name varchar 30 No 用户 password varchar 30 No 密码 3.3.9 图书馆信息表结构设计 包含图书馆的诸多信息,方便读者对图书馆的了解。表的具体设计如下: 表6.8 图书馆信息表 tb_library 字段名称 数据类型 字段长度 是否为空 说明 ID Int 10 No Key libraryname varchar 50 No 图书馆馆名 curator varchar 10
40、 No 馆长 tel varchar 20 Yes 结出时间 address varchar 100 No 应归还时间 e-mail varchar 100 No 邮箱 url varchar 100 No 图书馆网站 createDate varchar No 创馆时间 introduce Text Yes 图书馆简介 [15] 3.3.10书架信息表结构设计 该表存储的为书架信息,表的具体设计如下: 表6.9 书架信息表tb_bookcase 字段名称 数据类型 字段长度 是否为空
41、说明 ID Int 10 No Key name varchar 30 No 书架名称 第4章 详细设计 4.1登录模块实现 登录模块主要功能是实现用户的登陆,一般是从系统首页登陆然后进入系统。具体操作为,打开浏览器,然后在地址栏中输入,即能看到系统首页了。根据提示输入用户名及其密码,再按确定,即可立即进入系统了。8CULc。 struts.xml
42、D Struts Configuration 2.0//EN"
"truts-2.0.dtd">wtEVa。
43、
46、lass="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
47、






