当前位置:首页 >> 工学 >>

校园图书管理系统设计与实现毕业论文


xx 学院
xxx 届 毕 业 论 文(设计)

论文(设计)题目

基于 ASP.NET 的图书管理 系统的设计与实现

院 系 名 称 专业(班级)

计算机科学与技术系 Xxx Xxxx

姓名(学号) 指 系 完 导 负 成 教 责 时 师 人 间

r />x x x (xxxx) x x x x x 2013-4-21

基于 ASP.NET 的图书管理系统的设计与实现
中 文 摘 要

图书管理系统是智能办公系统(IOA)的重要组成部分,因此,图书管理系统也以方便、快 捷的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底的解脱出来,提高效率,减 轻工作人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。 从而使人们有更多时间来获取信息、了解信息、掌握信息。 其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。采用 SQL Server2005 数据库作为后台数据库、Visual C#编程语言作为前台开发工具,通过对数据库 技术进行了较深入的学习和应用,主要完成书目检索、读者管理、借阅管理、图书管理、用 户维护、系统维护等系统功能。系统运行结果证明,本文所设计的图书管理系统可以满足学 生和教师借阅者、图书管理员、图书总管理员三方面的需要,达到了设计要求。 关键词:图书管理;系统设计;信息; ASP.NET ;SQLServer2005

I

Based on the asp.net books management system design and implementation
ABSTRACT Library management system is intelligent office systems (IOA) an important component of the result, library management system also convenient, fast advantage is slowly into people's lives, the traditional library management and thorough manner extricate themselves, improve efficiency, Reduce the heavy work of their previous work, reducing the probability of error, so that readers can spend more time in the choice of books and reading books on. So that people have more time to obtain information and understand information, access to information. Including the development of its database background to the establishment and maintenance, and front-end application development aspects. SQL Server2005 database used as a background database, Visual C # programming language as the prospects of development tools, database technology through a more in-depth study and application, mainly to complete bibliographic search, the reader management, loan management, library management, user maintenance, system maintenance , And other system functions. The results prove that the system is running, the paper designed by the library management system to meet the students and teachers to borrow, librarians, library administrators in three areas of need, to design requirements. KEY WORDS: Book Management System; Design Information ; ASP.NET ;SQLServer2005

II





中文摘要.......................................................................................................................................... I Abstract .......................................................................................................................................... II 目 录....................................................................................................................................... III 第一章 绪论 ................................................................................................................................. 1 1.1 图书管理的现状 ............................................................................ 错误!未定义书签。 1.2 现有图书管理系统的概述 .............................................................................................. 2 1.3 选题的意义和目的 .......................................................................................................... 2 第二章 图书管理系统开发平台介绍 ......................................................................................... 2 2.1 系统开发运行环境 ........................................................................ 错误!未定义书签。 2.2 Asp.net 的介绍................................................................................ 错误!未定义书签。 2.2.1 Asp.net 的优势介绍............................................................................................... 3 2.2.2 Asp.net 的特点....................................................................................................... 3 2.3 SQL Server 2005 的概述 .................................................................................................. 4 2.4 WEB 技术 ......................................................................................................................... 5 2.4.1 浏览器/服务器(Browser/Server)结构 .................................................................. 5 2.4.2 IIS 服务器技术 ...................................................................................................... 5 第三章 系统总体设计分析 ....................................................................... 错误!未定义书签。 3.1 系统需求分析 ................................................................................ 错误!未定义书签。 3.2 系统实现的目标 ............................................................................ 错误!未定义书签。 3.3 系统功能模块设计 .......................................................................................................... 7 3.4 系统功能结构图 ............................................................................ 错误!未定义书签。 3.5 系统流程图..................................................................................................................... 10 第四章 数据总体结构设计 ....................................................................................................... 12 4.1 图书管理系统的可行性分析 ........................................................................................ 12 4.2 数据库概念结构设计 .................................................................................................... 12 4.3 数据库逻辑结构设计 .................................................................................................... 13 4.4 图书管理系统的系统 E-R 图 ....................................................................................... 15 4.5 数据表设计 .................................................................................................................... 16 第五章 图书管理系统详细设计 ............................................................................................... 19 5.1 系统流程分析 ................................................................................................................ 19 5.2 主要模块的运行 ............................................................................................................ 19 5.2.1 登陆界面 ............................................................................................................. 19 5.2.2 图书信息管理模块 ............................................................................................. 22 5.2.3 图书借还信息模块 ............................................................................................. 27 5.3 系统开发的遇到的相关问题及解决 ............................................................................ 33 5.3.1 图书管理系统索引 ............................................................................................. 33 5.3.2 如何验证输入的字符串 ..................................................................................... 34 5.3.3 自动计算图书归还日期 ................................................................................. 34 5.3.4 系统登陆验证码的实现 ..................................................................................... 35 结 论....................................................................................................................................... 37
III

参考文献....................................................................................................................................... 38 致 谢....................................................................................................................................... 39

IV

合肥学院计算机科学与技术系毕业论文

第一章

绪论

随着计算机及网络技术的飞速发展,Internet/Intranet 应用在全球范围内日益普及, 当今社会正快速向信息化社会前进,信息系统的作用也越来越大。图书馆在正常运营中总是 面对大量的读者信息,书籍信息以及由两者相互作用产生的借书信息,还书信息。因此图书 管理信息化是发展的必然趋势。用结构化系统分析与设计的方法,建立一套有效的图书信息 管理系统,可以减轻工作,将工作科学化、规范化,提高了图书馆信息管理的工作质量因此 根据图书馆目前实际的管理情况开发一套图书管理系统是十分必要的。

1.1

图书管理的现状
一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过

程,想必大家都已很熟悉。在计算机尚未在图书管理系统广泛使用之前,借书和还书过程主 要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员, 工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借 阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的 书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息, 这样还书过程就完成了。随着近年来信息技术及计算机网络技术的不断发展, 图书馆也先从 传统的图书馆发展到自动化图书馆,再发展到今天的数字图书馆,这些变化使得图书馆的形 象越来越现代化,人们查找资料也更加方便。对于一些小图书馆和一些图书室来说,由于工 作人员比较少,长期以来,作为图书馆的主要工作—图书借阅一直未能很好地开展。在平常 的图书借阅工作中, 由于大部分读者不熟悉图书馆藏书,且对图书排架分类的不了解,往往 花费很长时间才能找到其所需的书。为提高管理效率,更好地为读者服务,利用已有的办公 局域网络条件,将馆藏书籍做成基于 WEB 的查询系统,实现图书在一个单位的网络内甚至 Internet 上查询,可使图书查询和借阅变得更加方便快捷,从而使图书室的工作效率得到明 显提高。 传统的图书管理模式其最大的特点是手工;首先要把买来的图书资料登记到资料本上, 再给每本书分类贴上标签及制作和标签相对应的图书分类卡片,最后把图书分类卡片按类别 分别放置在文件柜里。对于有学生(教师)证的学生(教师)来说还要对他们资料作一定的 记录。并且在人们来借书的时候,首先持证件者要去存放图书分类卡片的文件柜里查找想借 的书是否在架,如果卡片存在,再按照图书分类卡片在相应的书架上找到需要的图书,然后 登记持证件者的借还书时间和在书签条上写下借还书记录,之后把借书证留在那里;还书的

1

合肥学院计算机科学与技术系毕业论文

时候,相对应的消去出借记录;这样做起来比较麻烦,比较费时间。传统图书管理的特点是 一直以来,中小型书店、中小学的小型图书馆及各高校图书馆和资料室使用传统的人工方式 管理图书档案、会员档案。这种管理方式存在着诸多缺点,如:手续繁琐、工作量大、效率 低下、出错率高等,同时给对大量资料的查询、更新及维护都带来不少困难。

1.2

现有图书管理系统的概述
在试用了一些个图书管理系统和查阅了大量相关资料文献的基础上,发现那些系统在几

个方面已经不符合时代的要求,由于设计人员及其所用的工具的不同,有 Visual Basic6.0、 Visual ForPro6.0、Power Builder 等,再加上这些图书管理系统设计的时间也不一样,所 用具体场合也有区别,因此在功能上除了图书资料管理所需的基本功能之外也有所不同。经 过比较总结他们都实现了以下图书管理的基本功能:1、图书检索模块:是图书管理系统的重 要模块之一,是读者快速查询图书的途径。2、图书管理模块:是图书管理员操作模块,读者 是无权进入的。本模块由借出图书登记、归还图书登记和续借图书登记子模块构成。3、数据 维护模块:是由图书管理员控制的模块,它由增加、修改和删除读者,增加、修改删除图书, 浏览修改读者、浏览修改图书等程序组成。 4、数据统计模块:由读者统计、图书统计、借 出图书分类统计、到期末归还图书读者统计几部分组成。这些系统解决了以前的那种管理方 式所存在着的诸如手续繁琐、工作量大、效率低下、出错率高等缺点,设计出的系统能使读者 快速检索到自己喜爱的书,图书管理员能减轻工作量。 但是鉴于开发工具和开发当时的科技发展水平所限,再加上历史发展到今天,人们的生 活环境已经发生了改变,大家对于图书查询这方面的要求也更高。比如在一个局域网内,大 家希望能在本台电脑上就能查找自己想要的图书,而不用跑到图书馆或图书室里去用那里的 电脑查询,这就需要一个网络化的联机查询系统。

1.3

选题的目的、意义
随着社会的进步,信息技术的广泛应用,数字化管理的优势日趋显著。针对中小型图书

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

2

合肥学院计算机科学与技术系毕业论文

第二章
2.1 系统开发运行环境

图书管理系统开发平台介绍

系统开发环境:Microsoft Visual Studio 2005 系统开发语言:ASP.net 运行平台:Windows XP 数据库:SQL Server 2005

2.2
2.2.1

Asp.net 的介绍
Asp.net 的优势介绍 ASP.Net可完全利用.Net架构的强大,安全,高效的平台特性。ASP.Net是运行在服务器

后端编译后的普通语言运行时代码,运行时早绑定(Early Binding),即时编译,本地优化, 缓存服务,零安装配置,基于运行时代码受管与验证的安全机制等都为ASP.Net带来卓越的性 能。 对XML,SOAP,WSDL等Internet标准的强健支持为Asp.net在异构网络里提供了强大的扩 展性。ASP.NET 是一个已编译的、基于 .NET 的环境,可以用任何与 .NET 兼容的语言创作 应用程序。另外,任何 ASP.NET 应用程序都可以使用整个.NET框架。开发人员可以方便地获 得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。在创 建 ASP.NET 应用程序、Web 窗体和 Web服务时,开发人员可以选择下列两个功能,或者以他 们认为合适的任何方式将它们结合起来使用。每个功能都能得到同一结构的支持,使您能够 使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义,这里只是列 出几种可能性而已。“Web 窗体”用于生成功能强大的基于窗体的 Web 页。生成这些页时, 可以用 ASP.NET 服务器控件来创建公共 UI元素,以及对它们进行编程以用于执行常见的任 务。这些控件使您能够用可重复使用的内置或自定义组件生成 Web 窗体,从而简化页面的代 码。有关更多信息,请参阅Web 窗体页。有关如何开发ASP.NET 服务器控件的信息,请参阅 开发 ASP.NET 服务器控件。XML Web services 提供了远程访问服务器功能的途径。通过使 用 Web服务,企业可以公开其数据或业务逻辑的编程接口,然后客户端和服务器应用程序就 可以获得和操作这些编程接口。这些模型中的每一个模型都可以充分利用所有 ASP.NET 功 能,以及 .NET 框和 .NET 2.2.2 Asp.net的特点 框架公共语言运行库的强大功能。

ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行 在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机制,数据接口的处理 都能无缝的整合到ASP.net的Web应用中。 ASP.net同时也是language-independent语言独立化 的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言
3

合肥学院计算机科学与技术系毕业论文

来写,现在已经支持的有C#(C++和Java的结合体) ,VB,Jscript。将来,这样的多种程序语 言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.net。

2.3

SQL Server 2005 概述
SQL Server 是一个关系数据库管理系统它是由 Microsoft 推出的。SQL Server 是一个

具备完全 Web 支持的数据库产品,提供了对可扩展标记语言 (XML) 的核心支持以及在 Internet 上和防火墙外进行查询的能力, 提供了以 Web 标准为基础的扩展数据库编程功能。 丰富的 XML 和 Internet 标准支持允许使用内置的存储过程以 XML 格式轻松存储和检索数 据。 SQL Server 提供强大的开发工具和各类开发特性,在大大提高开发效率的同时,进一步 拓展应用空间,带来新的商业应用机遇。例如,XML 数据库与 Web Service 的支持将使您的 应用实现 Internet 数据互联,.net 集成极大的扩展了开发空间,异构数据集成、Service Broker 使您的数据和其它应用无缝集成,各种新数据类型和 T-SQL 扩展带来了诸多灵活性。 C#、VB.net、XMLA、ADO.net 2.0、SMO、AMO 等都将成为 SQL Server 数据平台上开发数据相 关应用的有力工具。它具有以下特点: (1)上手容易 大多数的中小企业日常的数据应用是建立在 Windows 平台上的。由于 SQL Server 与 Windows 界面风格完全一致,且有许多"向导(Wizard)"帮助,因此易于安装和学习,有关 SQL Server 的资料、培训随处可得,并且目前国内具有 MCDBA 认证的工程师不在少数 (2)兼容性良好 由于今天 Windows 操作系统占领着主导地的位,选择 SQL Server 一定会在兼容性方面取 得一些优势。另外,SQL Server 2005 除了具有扩展性,可靠性以外,还具有可以迅速开发 新的因特网系统的功能。尤其是它可以直接存贮 XML 数据,可以将搜索结果以 XML 格式输 出等特点,有利于构建了异构系统的互操作性,奠定了面向互联网的企业应用和服务的基石。 这些特点在.NET 战略中发挥着重要的作用。 (3)电子商务 在使用由 Microsoft SQL Server 2005 关系数据库引擎的情况下,XML 数据可在关系表 中进行存储,而查询则能以 XML 格式将有关结果返回。此外,XML 支持还简化了后端系统集 成,并实现了跨防火墙的无缝数据传输。你还可以使用 Hypertext Transfer Protocol(超 文本传输协议,HTTP)来访问 SQL Server 2005,以实现面向 SQL Server 2005 数据库的安 全 Web 连接和无须额外编程的联机分析处理(OLAP)多维数据集。 (4)数据仓库

4

合肥学院计算机科学与技术系毕业论文

Microsoft SQL Server 2005非常明显的改进就是增加了OLAP(联机分析处理)功能,这可 以让很多中小企业用户也可以使用数据仓库的一些特性进行分析。OLAP可以通过多维存储技 术对大型、复杂数据集执行快速、高级的分析工作。数据挖掘功能能够揭示出隐藏在大量数 据中的倾向及趋势,它允许组织或机构最大限度的从数据中获取价值。通过对现有数据进行 有效分析,这一功能可以对未来的趋势进行预测。

2.4 Web技术
2.4.1 浏览器/服务器(Browser/Server)结构 随着Web和Internet计算环境的发展,将使企业能够以更快的速度、更低的费用去创建和 布置企业的应用系统,因而,普遍认为C/S架构将会被B/S结构取代。Internet为数据库应用 系统提供了新的机会,采用B/S结构,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explores;中间层采用Web服务器,它接受客户端的请求,将其转换为 SQL语句,通过ODBC或其他手段传给数据库服务器,并将数据库服务器返回的结果用HTML文件 格式传回给客户机。客户机的要求大大降低,大部分程序在服务器端执行。采用3层体系结构 的Web应用程序由Web浏览器、Web服务器和数据库3部分组成,如图2-1所示。Web浏览器与Web 服务器之间的通信仍然遵循HTTP,Web服务器与数据库之间的通信遵守CGI(Common Gateway Interface)或者Server API规范。在采用三层体系结构的Web应用程序中,Web浏览器向Web 服务器请求某个HTML文档或者请求执行某个CGI脚本程序。 Web服务器根据Web浏览器请求的是 某个CGI程序或者API程序,Web服务器则执行(或调用外部程序执行)该程序,然后将程序执行 结果返回给Web浏览器。习惯上,我们把采用这种体系结构的Web网站称作“动态网站”。目 前,互联网中绝大部分网站和大多数Web应用系统都采用了这种体系结构。

2.4.2

IIS服务器技术

IIS(Internet Information Server Internet 信息服务器)是 Microsoft 公司开发的一种 集 Web,FTP 和 Gopher 服务于一身的服务器,它可以利用 Windows XP Server 的各种功能并 且能在 Internet 上发布信息。IIS 提供 Internet 信息服务器应用程序接口(ISAPI)扩展 Web 服务器的功能,并可通过 ASP.NET 实现 Web 程序的快速开发, ASP.NET 支持服务器端的 JavaScript, VBScript, Microsoft Java 和 ActiveX Server Component,还支持用 VB 编写 的 CGI 程序,甚至用 VB 开发的 C/S 架构的程序不经过修改就可以在 Web 上发布,可以使开发 动态主页更加方便,同时也保护了以前的投资。IIS 的管理功能是基于 Windows XP Server 的,可充分利用 Windows XP Server 提供的安全服务和目录服务。它的安全模型是以 NTFS 安 全机制为基础的,这样利用资源管理器可以容易地管理使用 IIS 建立的 Web 站点的安全性。

5

合肥学院计算机科学与技术系毕业论文

第三章
3.1 系统需求分析

系统总体设计分析

随着互联网的爆炸性发展,人们越来越习惯于利用网络来实现所需的服务,网络已深深 影响到人们生活的各个方面。另外,传统的图书馆不能满足一部分现代人的需要,而电子阅 览室,由于其不受时间与空间的限制同时又具有传统图书馆的大部分功能,能够满足各类用 户的常规与特殊需求,而且其方便快捷,实现技术又比较成熟,因此受到当代人的喜爱。 该系统主要分为两部分:读者部分和管理员部分。为了方便读者查找自己感兴趣的主题进行 阅读,要将图书按照内容进行分类。读者可以按照类别进行查找,逐级浏览、可以查看自己 的信息。本系统还可对用户的账号和书目的阅读权限进行管理。管理员需要给用户分配用户 名和密码,及设定用户的级别,还为用户提供图书的排行榜让用户能知道那些图书受到大家 的欢迎。

3.2

系统实现的目标
(1)界面设计友好、美观。 (2)数据存储安全、可靠。 (3)信息分类清晰、准确。 (4)强大的查询功能,保证数据查询的灵活性。 (5)实现对图书借阅和归还过程的全程数据信息跟踪。 (6)提供图书借阅排行榜,为图书管理员提供了真实的数据信息。 (7)提供灵活、方便的权限设置功能,使整个系统的管理分工明确。 (8)具有易维护性和易操作性。

学校图书管理系统的开发主要实现的目标有以下几个方面:

3.3 系统功能模块设计
(1)系统设置模块:添加删除管理员、设置管理员的权限、说明图书存放书架信息添加删 除书架信息。 (2)读者管理模块:添加删除不同类型的读者及注明可借图书的数量、添加删除读者的档 案。 (3)图书管理模块:添加删除不同类型的图书及注明图书可借的天数库存数量、添加删除 图书的档案。 (4)图书借还模块:可查询读者借阅和归还图书的信息及图书的现有库存量。 (5)系统查询模块:可根据不同的条件(条形码、书名、类别、作者、书架、出版社)查 询读者需要的图书、读者可根据不同的条件(图书条形码、图书名称、读者编号、读者名字、
6

合肥学院计算机科学与技术系毕业论文

到期时间)查询自己借阅图书信息。 (6)排行榜模块:可以让读者知道图书借阅的排行榜及读者借阅的排行榜。

3.4

系统功能结构图
根据图书管理系统的实际需求,可以将图书管理系统划分为系统设置、图书管理、读者

管理、图书借还、系统查询、排行榜6个部分各个部分的具体功能的系统功能结构图如图3-1 所示。

图书管理系统

系 统 设 置

读 者 管 理

图 书 管 理

图 书 借 还

系 统 查 询

排 行 榜

管 理 员 设 置

书 架 设 置

读 者 类 型 管 理

读 者 档 案 管 理

图 书 档 案 管 理

图 书 类 型 管 理

图 书 借 阅

图 书 归 还

图 书 档 案 查 询

图 书 借 阅 查 询

图 书 借 阅 排 行 榜

读 者 借 阅 排 行 榜

图 3-1 系统功能结构图

(1)图书借阅系统完成用户的借书过程其数据流图如图3-2所示。

7

合肥学院计算机科学与技术系毕业论文

1

读者 读 者 信 息

2

判断 判 断 结 果

3

借阅 借 书 信 息

借书信息

借书申请 读者 1.1 图书 查询

索书 信息

1.2 判 断 能否借书

索书 信息

1..2 办 理借书 手续

借 书 结 果

查 询 结 果

图 书 信 息

被借图书复本量

被借图书 图书

4

查询

5

图3-2 借阅系统的数据流图

(2)还书系统完成图书的归还过程其数据流图如图3-3所示。
借书证

读者

身份 验证 读者档案

还书

库存表

催还

借出书库

管理员

身份验证 图3-3 归还系统的数据流图

管理员档案

8

合肥学院计算机科学与技术系毕业论文

(3)图书档案管理系统为用户提供图书档案信息其数据流图如图3-4所示。
输入 图书档案

管理员

身份验 证

修改

注销 管理员档案 图3-4 图书档案管理数据流图

入库清单

(4)读者档案系统用于记录读者的详细信息其数据流图如图3-5所示。
输入

管理员

身份验证

修改

图书档案管理

注销

管理员档案

图3-5 读者档案管理数据流图

3.5

系统流程图
图书管理系统的流程是用户先输入自己的账号密码及系统显示的验证码进入系统如有一

项不符合则不能进入系统,成功登陆系统后系统根剧登陆的账号信息从数据库中的数据进行 对比判断是读者还是管理员,如果是读者则能进行信息查询,及修改自己的相关信息,查询 到自己所需要的图书就能通过管理员进行借阅图书、归还图书也是通过管理员完成的。如果 不是读者而是管理员,那管理员可以进行相关信息的查询、添加删除图书及读者的所有信息、 设置相应的权限、为图书更新排行榜的信息、以及完成读者的图书借阅与归还。图书管理系 统的系统流程图如图3-6所示。
9

合肥学院计算机科学与技术系毕业论文

登陆 系统



是否登陆

管理 员

判断身份

读者

排行榜信息

图书信息

读者信息

图书归还

图书借阅

信息查询

’ 图 3-6 图书管理系统的流程图、

10

合肥学院计算机科学与技术系毕业论文

第四章
4.1

数据总体结构设计

图书管理系统的可行性分析

本次毕业设计题目: “学校图书管理系统的开发”主要目的是利用数据库软件编制一个管 理软件,用以实现图书、读者以及日常工作等多项管理。同时对整个系统的分析、设计过程 给出一个完整论证。图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对 图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书 管理系统提供极大的帮助。本系统的设计主要从以下几方面做起:系统业务流程分析、系统 的功能设计、系统的数据库结构设计等。作这些工作需对数据库知识有足够认识,并深入的 了解 Visual C#的使用和管理系统的相关知识。在信息时代的今天,人类需要对在政治、经 济、军事、文化、科研、教育等领域产生的大量信息进行管理,并对数据进行加工处理,数 据库技术则是信息管理与数据处理的先进技术。随着信息量的不断增加,作为计算机的三大 主要应用(科学计算、过程控制和数据处理)之一的数据处理,已迅速上升为计算机应用的 主要方面,数据库技术则成为人们日常生活中处理数据不可缺少的有力工具,并且现代的信 息管理系统几乎都以数据库技术作为核心。 现在大多数的图书管理方式为手工处理,重复劳动多,劳动强度大,而且容易出错,新 系统的使用能否可以很好的解决这些问题要看系统的可行性,可行性研究的目的是用最小的 代价在尽可能短的时间内确定问题是否能够解决。系统的可行性分析有以下几个方面: (1)技术可行性:处理速度快、准确通过权限的设置,数据的安全性好、方便查询、借阅 管理等。 (2)经济可行性:系统建设不需要很大的投入、可缩减人力投入。 (3)运行上可行性:本系统作为一个小型的图书馆信息管理系统,所耗费的 资源非常的小。 (4)从各种社会因素可行性分析:可降低工作人员工作强度,提高效率,会 得到学校工作人员的一致同意的。 综上所述通过可行性分析认为新系统的开发方案切实可行,可进行开发。

4.2

数据库概念结构设计
数据库概念结构设计是在需求分析的基础上,设计出能够满足用户需求的各种实体,以

及它们之间的关系,为后面的逻辑结构设计打下基础。这个阶段不用考虑所采用的数据库管 理系统、操作系统类型、机器类型等问题。这阶段可用的工具很多。用的最多的是 E-R 图 (Entity-Relation,实体-关系图),另外还有许多计算机辅助工具(Computer Aided Software
11

合肥学院计算机科学与技术系毕业论文

Engineering, CASE)可以帮助进行设计。本系统采用了 E-R 图的方法进行数据库概念结构设 计。E-R 图是描述数据实体关系的一种直观描述工具。这种图中有: (1)实体:用方框表示,方框内为实体的名称。 (2)实体的各种属性:用椭圆表示,椭圆内为属性名称。使用线段将其和响应的实体连接 起来。 (3)实体之间的联系:用菱形表示,菱形内为联系的名称。实体和实体之间的联系较多, 比较常见的联系有 l:1,l:N 和 M:N 这三种。

4.3

数据库逻辑结构设计
概念结构是独立于实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据

库应用的设计。也就是要将概念上的结构转化为数据库系统所支持的实际数据模型。 第一种转化是将实体转化为关系表。这种转化较简单,需要将实体的属性定义为表的属 性即可。 第二种转化是联系的转化。即将各个实体之间的联系转化为表格之间的关系,如外部键 的定义。 在上面工作的基础上归纳出人员管理数据库表格的组成之间的联系等等。该数据库系统 具有以下方面的特点:结构合理,对一个人员建立多条记录。所建立的数据冗余度小,独立性 强。建档、修改、查询、统计快速而准确。保密性好、可靠性好。 图书管理系统中要有图书, 图书是图书管理系统中密不可分的部分,因此要创建一图书信息实体,用来保存图书的详细 信息。图书信息实体属性图如 4-1 所示

条形码 操作员

名称

类型 译者

入库时间 按 库存数量 书架

图书信息实体

作者

出版者

页码

价格

图 4-1 图书信息实体属性图

12

合肥学院计算机科学与技术系毕业论文

读者是图书管理系统重要组成部分,这里创建了一个读者信息实体,用来存储读者的详 细信息。读者信息实体 E-R 图如图 4.2 所示。

读者编号

读者名称

性别

备注

读者类型

生日 操作员 读者信息实体

证件类型 注册日期 E-Mail 电话 证件号码

图 4-2 读者信息实体属性图

图书的借阅和归还是图书管理系统中的一项重要的环节,开发图书管理系统就是为了方 便读者对图书的借阅和归还,因此要建立一个图书借还实体,用来保存读者对图书的借阅和 归还的详细信息。图书的借阅和归还实体属性图如图 4-3 所示:
借书编号 读者编号

是否归还

读者借还实体

图书条形码

还书操作 该还时间

借书时间 按

借书操作

实际时间

图 4-3 读者借还实体属性图

13

合肥学院计算机科学与技术系毕业论文

图书管理系统为了增加系统的安全性,管理员只有在系统登陆模块验证通过后才能进入 管理员的操作界面,因此套在数据库中创建一个存放登录用户信息的管理员实体。管理员实 体属性图如图 4-4 所示。
管理员实体

编号

名称

密码

图 4-4 管理员实体属性图

4.4 图书管理系统的系统 E-R 图
图书管理系统的系统 E-R 图如图 4-5 所示。
类型 …… 编号 编号 密 码
……

名称

读者

m
修改

管理

n
添加

管理员

1

删除

n

还书时间

修改

借还

图书
删除

管理

m
借书时间 类型 …… 条形码

m
添加

图 4-5 图书管理系统的系统 E-R 图

14

合肥学院计算机科学与技术系毕业论文

4.5 数据表设计
本系统使用的数据库管理系统为 SQL Server 2005。数据库中的表有管理员信息表、图 书信息表、 读者信息表、 管理员权限表、 图书借阅归还表等。 图书管理员基本信息表 tb_admin, 如表 4-6 所示
表 4-6 tb_admin(管理员)表 字段名 id name pwd 数据类型 Varchar Varchar Varchar 长度 50 50 30 主键 是 否 否 描述 管理员编号 管理员名称 密码

读者详细信息表 tb_reader,如表 4-7 所示。
表 4-7 tb_reader(读者信息)表 字段名 id name sex type birthday paperType paperNum tel email createDate oper remark borrownum 数据类型 Varchar Varchar Char Varchar smalldatetime Varchar Varchar Varchar Varchar smalldatetime Varchar Text Int 长度 30 50 4 50 4 20 30 20 50 4 30 16 4 主键 是 否 否 否 否 否 否 否 否 否 否 否 否 描述 读者编号 读者名称 性别 读者类型 生日 证件类型 证件号码 电话 E-mail 注册日期 操作员 备注 借阅次数

15

合肥学院计算机科学与技术系毕业论文

图书详细信息表 tb_bookkifo,如表 4-8 所示。
表 4-8 tb_bookkifo(图书信息)表 字段名 Bookcode bookname type autor translator pubname price page bcase storage inTime oper borrownum 数据类型 Varchar Varchar Varchar Varchar Varchar Varchar Money Int Varchar Bigint Smalldatetime Varchar Int 长度 30 50 50 50 50 100 8 4 50 8 4 30 4 主键 是 否 否 否 否 否 否 否 否 否 否 否 否 描述 图书条形码 图书名称 图书类型 作者 译者 出版社 价格 页码 书架 存储数量 入馆时间 操作员 被借次数

16

合肥学院计算机科学与技术系毕业论文

图书借阅和归还信息表 tb_borrowandback,如表 4-9 所示。 表 4-9 tb_borrowandback(图书借阅和归还信息)表 字段名 id readid bookcode borrowTime ygbackTime sjbackTime borrowoper backoper isback 数据类型 Varchar Varchar Varchar Smalldatetime Smalldatetime Smalldatetime Varchar Varchar Bit 长度 30 20 30 4 4 4 30 30 1 主键 是 否 否 否 否 否 否 否 否 描述 借书编号 读者编号 图书条形码 借书时间 应该还书时间 实际还书时间 借书操作 还书操作 是否归还

权限信息表 tb_purview,如表 4-10 所示。
表 4-10 tb_purview(权限信息)表 字段名 Id syset readset bookset borrowback syaquery 数据类型 Varchar Bit Bit Bit Bit Bit 长度 50 1 1 1 1 1 主键 是 否 否 否 否 否 描述 用户编号 系统设置 读者管理 图书管理 图书借还 系统查询

17

合肥学院计算机科学与技术系毕业论文

第五章 图书管理系统详细设计
5.1 系统流程分析
根据开发图书管理系统的需求分析,本系统设计了三种用户,分别为系统管理员、教师 和学生。 系统要求有系统管理员用户,我们设定系统管理员,当系统管理员使用账户登录后,需 要查看有关图书的一系列的信息,管理员可以通过系统导航菜单进入读者管理界面、图书管 理界面、图书借还界面、系统查询界面、排行榜界面,在读者界面中,管理员添加和修改学 生或教师信息、用户可以查看自己信息,在图书管理界面管理员可以添加和修改图书信息、 用户可查看图书,在图书借还界面完成读者借书还书的操作,系统查询界面管理员可以查看 借出去的图书信息及库存的信息、用户可以查找自己的所需的图书,排行榜界面主要是可以 让用户知道哪些图书受到读者的喜爱。读者(老师和学生)使用读者账号登陆系统后,可以 查询自己所需要的图书的信息、也可以查询自己个人的基本信息及图书的借还信息,还能查 看排行榜的信息。读者的借书和还书过程是通过管理员完成的。

5.2
5.2.1

主要模块的运行
登陆界面 当用户输入用户名、密码,系统自动将输入的信息和相关数据表中的内容进行比较,如

果该用户输入的内容和数据表中的内容相符,则通过验证,此次登录成功;否则登录失败。 比较的过程是由浏览器将指令,数据发送到 Web 服务器,Web 服务器通过对数据库进行查询 将结果返回到浏览器,从而端显示成功的消息,用户只有成功登陆系统后才能进行一系列的 操作,如下图 5-1 所示。

5-1 图书管理系统登陆界面

18

合肥学院计算机科学与技术系毕业论文

对应代码实现: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Login : System.Web.UI.Page { OperatorClass operatorclass = new OperatorClass(); AdminManage adminmanage = new AdminManage(); ReaderManage readermanage = new ReaderManage(); protected void Page_Load(object sender, EventArgs e) { } protected void btnLogin_Click(object sender, EventArgs e) { if (txtAdmin.Text == string.Empty) { Response.Write("<script>alert('管理员名称不能为空!')</script>"); return; } else { DataSet adminds = null; DataSet readerds = null; adminmanage.Name = txtAdmin.Text;

19

合肥学院计算机科学与技术系毕业论文

adminmanage.Pwd = txtPwd.Text; adminds = adminmanage.Login(adminmanage); readermanage.ID=txtPwd.Text; readermanage.Name=txtAdmin.Text; readerds=readermanage.ReaderLogin(readermanage); if (adminds.Tables[0].Rows.Count > 0 && txtCode.Text == Request.Cookies["CheckCode"].Value) { Session["Name"] = txtAdmin.Text; Response.Redirect("Default.aspx"); } else if (readerds.Tables[0].Rows.Count > 0 && txtCode.Text == Request.Cookies["CheckCode"].Value) { Session["Name"] = txtAdmin.Text; Session["readid"] = txtPwd.Text; Session["role"] = "Reader"; Response.Redirect("Default.aspx"); } else { Response.Write("<script>alert('登录名或密码不正确! ')</script>"); } } } protected void btnCancel_Click(object sender, EventArgs e) { txtAdmin.Text = txtPwd.Text = txtCode.Text = string.Empty; } }

20

合肥学院计算机科学与技术系毕业论文

5.2.2

图书信息管理模块

图书信息管理模块主要分为查看图书信息页面和添加修改图书信息页面,用户可以在查 看图书信息页面查看图书的基本信息,管理员也可以看这些信息,并且可以通过单击“添加 图书信息”这个超级链接或 GridView 控件中的“详情”超级链接转到添加或删除图书信息界 面,并在该页中添加或修改图书信息,如图 5-2 与 5-3 所示。

图 5-2 添加或修改图书信息界面

图 5-3 查看图书信息界面

添加图书信息模块实现: using System; using System.Data;

21

合肥学院计算机科学与技术系毕业论文

using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class BookManage_AddBook : System.Web.UI.Page { ValidateClass validate=new ValidateClass(); BookcaseManage bookcasemanage = new BookcaseManage(); BTypeManage btypemanage = new BTypeManage(); BookManage bookmanage = new BookManage(); protected void Page_Load(object sender, EventArgs e) { this.Title = "添加/修改图书信息页面"; if (!IsPostBack) { DataSet bcaseds = bookcasemanage.GetAllBCase("tb_bookcase"); ddlBCase.DataSource = bcaseds; ddlBCase.DataTextField = "name"; ddlBCase.DataBind(); DataSet btypeds = btypemanage.GetAllBType("tb_booktype"); ddlBType.DataSource = btypeds; ddlBType.DataTextField = "typename"; ddlBType.DataBind(); if (Request["bookcode"] == null) { btnAdd.Enabled = true; txtInTime.Text = DateTime.Now.ToShortDateString();

22

合肥学院计算机科学与技术系毕业论文

} else { btnSave.Enabled = true; txtBCode.ReadOnly = txtBName.ReadOnly = true; txtBCode.Text = Request["bookcode"].ToString(); bookmanage.BookCode = txtBCode.Text; DataSet bookds = bookmanage.FindBookByCode(bookmanage,"tb_bookinfo"); txtBName.Text = bookds.Tables[0].Rows[0][1].ToString(); ddlBType.SelectedValue = bookds.Tables[0].Rows[0][2].ToString(); txtAuthor.Text = bookds.Tables[0].Rows[0][3].ToString(); txtTranslator.Text = bookds.Tables[0].Rows[0][4].ToString(); txtPub.Text = bookds.Tables[0].Rows[0][5].ToString(); txtPrice.Text = bookds.Tables[0].Rows[0][6].ToString(); txtPage.Text = bookds.Tables[0].Rows[0][7].ToString(); ddlBCase.SelectedValue = bookds.Tables[0].Rows[0][8].ToString(); txtStorage.Text = bookds.Tables[0].Rows[0][9].ToString(); txtInTime.Text = bookds.Tables[0].Rows[0][10].ToString(); txtOper.Text = bookds.Tables[0].Rows[0][11].ToString(); } } } protected void btnAdd_Click(object sender, EventArgs e) { ValidateFun(); bookmanage.BookCode = txtBCode.Text; if (bookmanage.FindBookByCode(bookmanage, "tb_bookinfo").Tables[0].Rows.Count > 0) { bookmanage.BookName = txtBName.Text;

23

合肥学院计算机科学与技术系毕业论文

bookmanage.Type = ddlBType.SelectedValue; bookmanage.Author = txtAuthor.Text; bookmanage.Translator = txtTranslator.Text; bookmanage.PubName = txtPub.Text; bookmanage.Price = Convert.ToDecimal(txtPrice.Text); bookmanage.Page = Convert.ToInt32(txtPage.Text); bookmanage.Bcase = ddlBCase.SelectedValue; bookmanage.Storage = Convert.ToInt32(txtStorage.Text) + Convert.ToInt32(bookmanage.FindBookByCode(bookmanage, "tb_bookinfo").Tables[0].Rows[0][9].ToString()); bookmanage.InTime = Convert.ToDateTime(txtInTime.Text); bookmanage.Oper = txtOper.Text; bookmanage.UpdateBook(bookmanage); } else { bookmanage.BookName = txtBName.Text; bookmanage.Type = ddlBType.SelectedValue; bookmanage.Author = txtAuthor.Text; bookmanage.Translator = txtTranslator.Text; bookmanage.PubName = txtPub.Text; bookmanage.Price = Convert.ToDecimal(txtPrice.Text); bookmanage.Page = Convert.ToInt32(txtPage.Text); bookmanage.Bcase = ddlBCase.SelectedValue; bookmanage.Storage = Convert.ToInt32(txtStorage.Text); bookmanage.InTime = Convert.ToDateTime(txtInTime.Text); bookmanage.Oper = txtOper.Text; bookmanage.AddBook(bookmanage); } Response.Redirect("BookManage.aspx"); }

24

合肥学院计算机科学与技术系毕业论文

protected void btnSave_Click(object sender, EventArgs e) { ValidateFun(); bookmanage.BookCode = txtBCode.Text; bookmanage.BookName = txtBName.Text; bookmanage.Type = ddlBType.SelectedValue; bookmanage.Author = txtAuthor.Text; bookmanage.Translator = txtTranslator.Text; bookmanage.PubName = txtPub.Text; bookmanage.Price = Convert.ToDecimal(txtPrice.Text); bookmanage.Page = Convert.ToInt32(txtPage.Text); bookmanage.Bcase = ddlBCase.SelectedValue; bookmanage.Storage = Convert.ToInt32(txtStorage.Text); bookmanage.InTime = Convert.ToDateTime(txtInTime.Text); bookmanage.Oper = txtOper.Text; bookmanage.UpdateBook(bookmanage); Response.Redirect("BookManage.aspx"); } protected void btnCancel_Click(object sender, EventArgs e) { txtInTime.Text = DateTime.Now.ToShortDateString(); txtBName.Text = txtAuthor.Text = txtTranslator.Text = txtPub.Text = txtPrice.Text = txtPage.Text = txtStorage.Text = txtOper.Text = string.Empty; } protected void ValidateFun() { if (txtBCode.Text == "") { Response.Write("<script>alert('图书条形码不能为空! ');location='javascript:history.go(-1)';</script>"); return;

25

合肥学院计算机科学与技术系毕业论文

} if (txtBName.Text == "") { Response.Write("<script>alert('图书名称不能为空! ');location='javascript:history.go(-1)';</script>"); return; } if (!validate.validateNum(txtPrice.Text)) { Response.Write("<script>alert('图书价格输入有误! ');location='javascript:history.go(-1)';</script>"); return; } if (!validate.validateNum(txtPage.Text)) { Response.Write("<script>alert('图书页码输入有误! ');location='javascript:history.go(-1)';</script>"); return; } if (!validate.validateNum(txtStorage.Text)) { Response.Write("<script>alert('图书库存量输入有误! ');location='javascript:history.go(-1)';</script>"); return; } } } 5.2.3 图书借还信息模块

图书借还管理模块主要分为图书借阅页面和图书归还页面,用户可以在通过这个模块查 看图书的借阅和归还信息。管理员可以在图书通过这个模块来完成读者借和还书的操作,如 图 5-4 与 5-5 所示。

26

合肥学院计算机科学与技术系毕业论文

图 5-4 图书的借阅管理

图 5-5 图书归还管理

实现图书的借还功能主要用到了 GridView 模板列技术。 图书借阅代码实现 using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI;
27

合肥学院计算机科学与技术系毕业论文

using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class BookBRManage_BorrowBook : System.Web.UI.Page { ReaderManage readermanage = new ReaderManage(); RTypeManage rtypemanage = new RTypeManage(); BookManage bookmanage = new BookManage(); BTypeManage btypemanage = new BTypeManage(); BorrowandBackManage borrowandbackmanage = new BorrowandBackManage(); protected void Page_Load(object sender, EventArgs e) { this.Title = "图书借阅页面"; if (!IsPostBack) { if (Session["role"] == "Reader") { txtReaderID.Text = Session["readid"].ToString(); } gvBInfoBind(); } } protected void btnSure_Click(object sender, EventArgs e) { if (txtReaderID.Text == "") { Response.Write("<script>alert('读者编号不能为空!')</script>"); } else { readermanage.ID = txtReaderID.Text;

28

合肥学院计算机科学与技术系毕业论文

DataSet readerds = readermanage.FindReaderByCode(readermanage, "tb_reader"); if (readerds.Tables[0].Rows.Count > 0) { txtReader.Text = readerds.Tables[0].Rows[0][1].ToString(); txtSex.Text = readerds.Tables[0].Rows[0][2].ToString(); txtPaperType.Text = readerds.Tables[0].Rows[0][5].ToString(); txtPaperNum.Text = readerds.Tables[0].Rows[0][6].ToString(); txtRType.Text = readerds.Tables[0].Rows[0][3].ToString(); } else { Response.Write("<script>alert('该读者不存在!')</script>"); return; } rtypemanage.Name = txtRType.Text; DataSet rtypeds = rtypemanage.FindRTypeByName(rtypemanage, "tb_readertype"); txtBNum.Text = rtypeds.Tables[0].Rows[0][2].ToString(); gvBRBookBind(); Session["readerid"] = txtReaderID.Text; } } protected void gvBookInfo_PageIndexChanging(object sender, GridViewPageEventArgs e) { gvBookInfo.PageIndex = e.NewPageIndex; gvBInfoBind(); } protected void gvBorrowBook_PageIndexChanging(object sender, GridViewPageEventArgs e)

29

合肥学院计算机科学与技术系毕业论文

{ gvBorrowBook.PageIndex = e.NewPageIndex; gvBRBookBind(); } protected void gvBookInfo_RowUpdating(object sender, GridViewUpdateEventArgs e) { if (Session["readerid"] == null) { Response.Write("<script>alert('请输入读者编号!')</script>"); } else { readermanage.ID = Session["readerid"].ToString(); DataSet readerds = readermanage.FindReaderByCode(readermanage, "tb_reader"); if (Convert.ToInt32(readerds.Tables[0].Rows[0][13].ToString()) >= Convert.ToInt32(txtBNum.Text)) { Response.Write("<script>alert('您最多可以借" + txtBNum.Text + " 本书!')</script>"); } else { borrowandbackmanage.ID = borrowandbackmanage.GetBorrowBookID(); borrowandbackmanage.ReadID = Session["readerid"].ToString(); borrowandbackmanage.BookCode = gvBookInfo.DataKeys[e.RowIndex].Value.ToString(); borrowandbackmanage.BorrowTime = Convert.ToDateTime(DateTime.Now.ToShortDateString()); btypemanage.TypeName = gvBookInfo.Rows[e.RowIndex].Cells[2].Text;

30

合肥学院计算机科学与技术系毕业论文

int days = Convert.ToInt32(btypemanage.FindBTypeByName(btypemanage, "tb_booktype").Tables[0].Rows[0][2].ToString()); TimeSpan tspan = TimeSpan.FromDays((double)days); borrowandbackmanage.YGBackTime = borrowandbackmanage.BorrowTime + tspan; borrowandbackmanage.BorrowOper = Session["Name"].ToString(); borrowandbackmanage.AddBorrow(borrowandbackmanage); gvBRBookBind(); bookmanage.BookCode = gvBookInfo.DataKeys[e.RowIndex].Value.ToString(); DataSet bookds = bookmanage.FindBookByCode(bookmanage, "tb_bookinfo"); bookmanage.BorrowNum = Convert.ToInt32(bookds.Tables[0].Rows[0][12].ToString()) + 1; bookmanage.UpdateBorrowNum(bookmanage); readermanage.BorrowNum = Convert.ToInt32(readerds.Tables[0].Rows[0][12].ToString()) + 1; readermanage.Num = Convert.ToInt32(readerds.Tables[0].Rows[0][13].ToString()) + 1; readermanage.UpdateBorrowNum(readermanage); } } } protected void gvBInfoBind() { DataSet bookds = bookmanage.GetAllBook("tb_bookinfo"); gvBookInfo.DataSource = bookds; gvBookInfo.DataKeyNames = new string[] { "bookcode" }; gvBookInfo.DataBind(); }

31

合肥学院计算机科学与技术系毕业论文

protected void gvBRBookBind() { borrowandbackmanage.ReadID = txtReaderID.Text; DataSet brinfods = borrowandbackmanage.FindBoBaBookByRID(borrowandbackmanage, "view_BookBRInfo"); gvBorrowBook.DataSource = brinfods; gvBorrowBook.DataBind(); } }

5.3
5.3.1

系统开发遇到的相关问题及解决
图书管理系统索引 图书管理系统开发中存在大量的数据和信息检索,怎样更好的检索数据和信息操作是保

证检索速度的提高和数据的分页显示,主要考虑了以下几个方面: (1)设计逻辑结构时充分考虑冗余量和处理性两方面的要求,在接受冗余量的提下,尽量 减少表的连接操作。 (2)关系的大小对查询的影响也是很大的,因此为了提高数据库的查询速度,减小系的大 小和数据量也是必要的。 (3)建立合理的索引结构。索引相当于一个映射机构,将键值转换成相对应的 记录地址,形成索引文件。 索引设计是数据库物理设计的基本问题,也是较困难的问题,建立索引可以极大地提高 系统的查询速度,但是同时做 Insert、Update、Delete 操作时会降低速度,因为做这些操作 的同时需要更新索引,所以不能对数据库中所有的表都建立索引。比如满足下列条件之一的 不易建立索引:不出现或很少出现的属性或表、属性分布严重不均的属性、经常更新的属性 或表、过长的属性、太小的表等。 满足下列条件之一的可以考虑建立索引:主键和外键都建立索引、对于以读为主或只读 的表,只要需要,且存储空间允许,可以减少连接开销、对于等值查询(即查询条件以等号 为比较符),最好建立索引、对查询范围(即查询条件>,<,≤,≥为比较符),最好建立索引、 有些查询可以由检索直接得到结果,不必访问数据块。 根据实际需要,读者信息表,图书信息表,图书借还信息表,权限信息,管理员信息表 等都建立索引,合理使用缓冲区。 5.3.2 如何验证输入的字符串

在图书管理系统的开发过程中,需要对一些输入的字符串进行验证,例如金额、电话号

32

合肥学院计算机科学与技术系毕业论文

码、E-mail 等,由于许多模块都需要用到这些验证,因此可以将其写入到一个公共类中然后 在其他的页面中直接调用即可。C#中对字符串进行验证时,可以使用 Regex 类,要使用正则 表达式验证输入的字符串,如验证输入的字符串是否为 E-mail 的地址格式的实现方法。代码 如下: #region 验证输入为Email /// <summary> /// 验证输入为Email /// </summary> /// <param name="str"></param> <returns></returns> public bool validateEmail(string str) { return Regex.IsMatch(str, @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"); } #endregion 5.3.3 自动计算图书归还日期

在图书管理系统运行中会常常遇到这样的问题:在借阅图书时,需要自动计算图书的归 还日期,而这个日期又不是固定不变的,它是需要根据系统日期和数据表中保存的各类图书 的最多借阅天数来计算的,即图书归还日期=“系统日期”+“最多借阅天数”。因此本系统 是这样解决问题的:首先获取系统时间,然后从数据表中查询出该类图书最多借阅天数,最 后计算归还日期。计算方法如下: 首先取出所借图书的最多借阅天数,然后根据图书的最多借阅天数,使用 TimeSpan.FromDays方法返回一个TimeSpan,最后使用当前时间与先返回的Timespan时间间隔 相加。 自动计算图书归还日期的关键代码如下: int days = Convert.ToInt32(btypemanage.FindBTypeByName(btypemanage, "tb_booktype").Tables[0].Rows[0][2].ToString()); TimeSpan tspan = TimeSpan.FromDays((double)days);
borrowandbackmanage.YGBackTime = borrowandbackmanage.BorrowTime + tspan;

5.3.4

系统登陆验证码的实现

在学校图书管理系统的开发过程中,怎么样防止某些人利用某些恶意的软件对图书管理 系统进行恶意的登陆来攻击系统,增加图书管理系统的安全性是一个重要的问题。在图书管

33

合肥学院计算机科学与技术系毕业论文

理系统的登陆模块中加入一个验证码的功能,即用户除了要输入账号和密码还要输入系统为 用户提供的验证码。验证码可以很好的解决了怎样防止恶意用户利用恶意软件对系统页面的 疯狂提交、以及暴力破解密码进行登陆的问题。因此,设置一个随机函数在数字 0~9 和英文 字母 A~Z 中随机抽取四个,在用户打开登陆界面的时候,系统通过随机生成器随机生成 4 个 数字或字母或数字加字母存放在缓存内,并出现在界面上顺序是随机的,当用户登陆时输入 的验证码要与缓存中的进行对比符合就进入,不符合就不能登陆。系统在提供验证码时候要 加入一些干扰的条件的,不过这些人的肉眼是很容易分辨,但机器人程序不能分辨,很好的 防止某人利用机器人程序对系统的恶意操作增加了系统的安全性。验证码实现的关键代码如 下: private string GenerateCheckCode() { int number; char code; string checkCode = String.Empty; System.Random random = new Random(); for (int i = 0; i < 4; i++) { number = random.Next(); if (number % 2 == 0) code = (char)('0' + (char)(number % 10)); else code = (char)('A' + (char)(number % 26)); checkCode += code.ToString(); } Response.Cookies.Add(new HttpCookie("CheckCode", checkCode)); return checkCode; } private void CreateCheckCodeImage(string checkCode) { if (checkCode == null || checkCode.Trim() == String.Empty) return;

34

合肥学院计算机科学与技术系毕业论文

System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22); Graphics g = Graphics.FromImage(image); try { //生成随机生成器 Random random = new Random(); //清空图片背景色 g.Clear(Color.White); //画图片的背景噪音线 for (int i = 0; i < 2; i++) { int x1 = random.Next(image.Width); int x2 = random.Next(image.Width); int y1 = random.Next(image.Height); int y2 = random.Next(image.Height); g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2);
}

35

合肥学院计算机科学与技术系毕业论文





经过几个月的设计和开发,学校图书管理系统基本开发完毕。其功能基本符合用户需求。 对于数据的一致性的问题也通过程序进行了有效的解决。但是该系统还有许多不尽如人意的 地方,在今后有待进一步改善。通过这次毕业设计真切地体会到毕业设计的目的并不止于自 己单纯任务的完成,而在于学习新的知识并掌握具体的方法,如何具体使用和具体应用你所 学所用的语言。从而获得一种本领:就是融会贯通各种语言。回首整个开发设计过程,我学 到了很多书本上学不到的东西。比如以前开发软件的时候,一般做的就是编码工作,实现比 较简单的功能。但是这次毕业设计,我要负责图书管理系统的整个开发过程,包括系统可行 性分析、系统需求分析、系统概要设计、系统详细设计等方面的工作。在每个设计阶段我都 能学到一些新知识,对我的动手能力提高很大。在整个毕业设计过程中,我基本上完成了图 书管理系统各个模块的功能,达到了毕业设计的要求。页面设计还有进一步改善的地方,我 会在今后的学习工作中着重加强这方面的锻炼。 在以后的工作中,还会遇到很多类似的情况,此次毕业设计为我以后的工作积累了很多 宝贵的经验。这几个月中,从接到设计课题到具体设计再到完成系统开发,是一个不断地遇 到问题与解决问题的过程。其中包括:分析各种需求、完善各种功能、增加必要环节、对各 部分及整体进行检测与维护。当然仍存在许多问题不能解决地尽善尽美,还需不断地继续与 探索。 在结束设计的同时也感到了劳动的艰辛与劳动成果的来之不易,明白了毕业设计是给自 己提供了一个锻炼、升华、提高、完善的机会。

6.1

主要研究内容及成果
介绍学校图书管理系统根据实际的需求及发展情况进行设计与开发情况,及介绍本系统

设计应用平台及技术支持讲述本系统设计理念及具体设计情况,讲解本系统具体制作方法及 核心代码。开发的图书管理系统基本上能完成预期的目标,大致能满足读者和管理员的要求。 不过也有一些不足之处需要好好改进。

6.2

今后进一步研究方向

(1) 对页面进行美化,使界面变的更美观一点。 (2) 增加数据转换接口,使得本系统能与学校图书管理系统数据库进行无缝连接。 (3) 添加系统功能,本系统只有让读者知道还书的期限,当图书超期而读者也没注意要自己 所借图书超期了,就无法及时的还书了,因此增加图书到期催还功能,能让读者在自己信息 查询时候就能看到系统对自己所借图书的超期提醒以方便读者的图书归还。

36

合肥学院计算机科学与技术系毕业论文

参考文献
[1] 刘乃丽.精通 ASP.NET2.0+SQLServer 2005 项目开发.[M].北京:人民邮电出版社, 2007:100~150. [2] 易向东,陈蓓,万英编著.C#程序员开发指南[M].北京:北京希望电子出版社,2006:212~232. [3] (美)内格尔,伊夫杰,格林等.C#高级编程(第四版)[M].李敏波.北京:清华大学出版社,2006:80~ 100. [4] (美)Kaili Watson .C#2005 数据库编程经典教程[M].人民邮电出版社,2007:90~120. [5] (美)沃尔特,本-甘,萨卡.Microsoft SQL Server 2005 技术内幕-T-SQL 程序设计[M].北京:电子工 业出版社,2007:50~80. [6] 刘烨,季石磊等.C#编程及应用程序开发教程[M].北京:清华大学出版社,2007:132~180. [7] 殷泰晖,张强,杨豹等 C#编程从基础到实践,电子工业出版社,2007:100~120 [8]李永平.ASP.NET 2.0(C#)基础教程[M] .北京:清华大学出版社,2008:123~143. [9] 微软公司著.熊盛新, 许志庆, 李钦译.Visual C# .NET 语言参考手册[M].北京: 清华大学出版社, 2002 年:160~180. [10] 王珊,萨师煊.数据库系统概论(第四版)[M].高等教育出版社,2006:70~100. [11] 马军.精通 ASP.NET2.0 网络应用系统开发[M].人民邮电出版社,2006:110~140. [12]欧立奇,康祥顺,马煜编著.Visual C# .NET 案例开发集锦[M].北京:电子工业出版社,2006

37

合肥学院计算机科学与技术系毕业论文





首先,我要感谢xx学院给我提供的良好的学习环境,同时要感谢计算机科学与技术系所 有老师对我的培养和关怀。在本次毕业设计中,论文指导老师李棋老师对我进行了悉心的指 导,给我提供了许多帮助,给我指明了论文的研究方向。并且老师严谨的治学态度也深深的 感动了我。 其次,我要感谢我的家人,是他们的无私支持使我能顺利完成大学的学习,是他们在我 遇到难题时给我及时的帮助与无限的动力,所以,我以此毕业论文作为我大学几年来的学习 成果向父母汇报,感谢你们。 再次,就是感谢身边的同学啦,一起讨论、调试,解决程序的问题,记忆深刻。 在我几年的大学生活中,得到了老师们的悉心教导,学到了丰富的知识和做人的道理, 为我走向社会、迎接挑战打下了坚实的基础。此时此刻我才真正体会到老师们的苦心和所学 知识的重要。 最后,我要再次向给予我帮助的所有老师和同学表示深深的谢意,感谢大家在学习、生 活中对我的帮助,谢谢大家!因为有你们。人生的舞台更加的精彩。

38

合肥学院计算机科学与技术系毕业论文



录:

还书按钮单击事件
protected void imgBtnBorrow_Click(object sender, ImageClickEventArgs e) { if (Page.IsValid) { Borrow borrow = new Borrow();//创建Borrow对象borrow borrow.BookID = int.Parse(txtBookID.Text.Trim()); borrow.BorrowState = 1; if (borrow.UpdateByProc(int.Parse(txtBookID.Text.Trim())))// 使 用

UpdateByProc方法修改图书状态 { lblMessage.Text = "还书成功!"; } else { lblMessage.Text = "还书失败!"; } } }

39


相关文章:
图书管理系统设计与实现-开题报告
开题报告 毕业论文题目:图书管理系统设计与实现 学校名称: 廊坊职业技术学院 专业名称: 学生姓名: 学号: 移动通信 陈鑫 1313080130 郭芊羽 指导老师: 日期: ...
高校图书管理系统的设计与实现(本科毕业论文)
高校图书管理系统设计与实现(本科毕业论文)_工学_高等教育_教育专区。高校图书...本系统中解决了学校图书管理事务中的 常用基本问题以及相关统计工作。本系统中...
社区图书管理系统的设计与开发毕业论文
社区图书管理系统设计与开发毕业论文_管理学_高等教育_教育专区。社区图书管理系统设计与开发 中文摘要:社区图书馆丰富了社区居民的日常生活,也弥补了各大型图书...
图书管理系统的设计与实现毕业论文
图书管理系统设计与实现毕业论文_IT/计算机_专业资料。图书管理系统设计与实现毕业论文江阴职业技术学院毕业论文课 题: 图书管理系统的设计与实现 图书管理系统的...
图书借阅管理系统设计与实现毕业论文
XXXX 接受任务时间 2011 年 01 月 5 日 系主任(签名)教学院长(签名) 1.毕业设计(论文)的主要内容及基本要求 了解现阶段学校中小型图书借阅管理系统的特点,进行...
图书管理系统毕业论文
图书管管理系统就是其中一个,该系统解决了学校图书馆管理 中出现的基本问题以及...C/S;MySQL;Database design;Data query 4 河南理工大学毕业设计(论文)说明书 ...
毕业论文_c-s图书管理系统设计与实现
毕业论文_c-s图书管理系统设计与实现_管理学_高等教育_教育专区。图书综合管理系统 专科生毕业论文(设计) 题 目: 图书综合管理系统 尹良英 学生姓名: 学号: ...
关于图书管理系统毕业设计(论文)
关于图书管理系统毕业设计(论文)_计算机软件及应用_IT/计算机_专业资料。计算机工程...进入 21 世纪,允许利用计算机网络和信息技术,逐步实现不 同载体的实体文献的信息...
简单图书管理系统毕业设计论文
基于JSP 的高校图书管理系统的开发与设计 摘要 图书管理系统是基于 JSP 的 Web 应用程序,并以互联网为传播媒介来实现图 书管理的一个管理平台。系统采用管理员制...
图书馆管理系统毕业设计论文
图书管理系统毕业设计论文_其它_高等教育_教育专区。从各个方面对图书管理系统...充分利用计算机的功能实现对读者管理、书 籍管理,借阅管理等自动化控制,将会使...
更多相关标签:
校园图书管理系统 | java实现图书管理系统 | 校园图书借阅管理系统 | 校园电子图书馆系统 | jsp实现图书管理系统 | 图书馆管理系统的实现 | 图书管理系统实现 | uml实现图书管理系统 |