图书管理系统设计 毕业设计 正文.docx
《图书管理系统设计 毕业设计 正文.docx》由会员分享,可在线阅读,更多相关《图书管理系统设计 毕业设计 正文.docx(22页珍藏版)》请在冰豆网上搜索。
图书管理系统设计毕业设计正文
基于.net的图书管理系统设计与实现
1引言
一直以来人们使用传统的人工方式管理图书管的日常工作,对于图书管的借书和还书过程,想必大家都很熟悉。
在计算机尚未在图书管广泛使用之前,借书和还书过程主要依靠手工。
一个最典型的手工处理还书过程就是:
读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。
这样借书过程就完成了。
还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。
以上所描述的手工过程的不足之处显而易见。
首先,处理借书还书的业务流程的效率很低;其次,处理能力比较低,一段时间内,所能服务的读者人数是有限的。
利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。
我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选书和看书上。
为方便对图书管书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高图书管的管理效率。
使用该程序之后,管理人员可以查询某位读者图书的借阅情况。
本次毕业设计“图书借管理系统”主要是利用.NET技术编制的一个管理软件,用以实现图书、借阅者以及日常工作等多项管理。
同时对整个系统的分析、设计过程给出一个完整论证。
1.1背景
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本系统就是为了管理好图书馆信息而设计的。
1.2发展现状
目前,从我国的整体情况来看,基于.net的图书管理系统的软件如今进入了一个高速的发展阶段。
国外很多软件开发商已经有很好的专业的软件供我们管理这些都是面向大型的图书管理而言的。
国内很多图书管理人员不是很多,分工不是很明确,为此开发一个操作简单,功能合适的适合于小型的图书馆的管理系统。
1.3设计技术要求
实用性原则适合于中小型图书管图书管理,用户界面友好,操作方便,具有高效的数据处理能力。
规范性原则设计过程严格按照“软件工程”的规定,系统编码、文档。
系统开发语言:
本系统开发采用了2.0、SQLServer2005。
1.4设计意义
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。
根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
数据处理手工操作,工作量大,出错率高,出错后不易更改。
图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
如要对很长时间以前的图书进行更改就更加困难了。
基于这些问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
2方案论证
2.1系统设计目的
图书管理系统主要目的是对图书馆种类繁多的书籍进行管理,并且合理管理好用户的借还信息。
提高图书馆的工作效率,降低管理成本。
其开发主要包括后台数据库的建立和维护,以及前端应用程序的开发。
前者要求建立起数据一致性各完整性强、数据安全性好的数据库。
而后者则要求应用程序具有功能完备、易用等特点。
因此本系统结合开放式图书馆的要求,采用.NET技术与SQLSERVER2005数据库进行系统的开发。
2.2SQLServer简介
SQL(StructuredQueryLanguage,结构查询语言)是一个功能强大的数据库语言。
SQL通常使用于数据库的通讯。
ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。
SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。
使用SQL的常见关系数据库管理系统有:
Oracle、Sybase、MicrosoftSQLServer、Access、Ingres等等。
虽然绝大多数的数据库系统使用SQL,但是它们同样有有别于其他的专有扩展功能用于它们的系统。
但是,标准的SQL命令,比如"Select"、"Insert"、"Update"、"Delete"、"Create"和"Drop"常常被用于完成绝大多数数据库的操作。
SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组:
1.DML(DataManipulationLanguage,数据操作语言):
用于检索或者修改数据;
2.DDL(DataDefinitionLanguage,数据定义语言):
用于定义数据的结构,比如创建、修改或者删除数据库对象;
3.DCL(DataControlLanguage,数据控制语言):
用于定义数据库用户的权限。
4.DML组可以细分为以下的几个语句:
5.SELECT:
用于检索数据;
6.INSERT:
用于增加数据到数据库;
7.UPDATE:
用于从数据库中修改现存的数据;
8.DELETE:
用于从数据库中删除数据;
9.DDL语句可以用于创建用户和重建数据库对象。
下面是DDL命令:
CREATETABLE,ALTERTABLE,DROPTABLE,CREATEINDEX,DROPINDEX。
2.3A简介
ASP.NET是统一的Web应用程序平台,它提供了为建立和部署企业级Web应用程序所必需的服务。
ASP.NET为能够面向任何浏览器或设备的更安全的、更强的可升级性、更稳定的应用程序提供了新的编程模型和基础结构。
ASP.NET是Microsoft.NETFramework的一部分,是一种可以在高度分布的Internet环境中简化应用程序开发的计算环境。
.NETFramework包含公共语言运行库,它提供了各种核心服务,如内存管理、线程管理和代码安全。
它也包含.NETFramework类库,这是一个开发人员用于创建应用程序的综合的、面向对象的类型集合。
ASP.NET提供了下面的优点:
可管理性:
ASP.NET使用基于文本的、分级的配置系统,简化了将设置应用于服务器环境和Web应用程序的工作。
因为配置信息是存储为纯文本的,因此可以在没有本地管理工具的帮助下应用新的设置。
配置文件的任何变化都可以自动检测到并应用于应用程序。
详细信息,请参阅ASP.NET配置。
安全:
ASP.NET为Web应用程序提供了默认的授权和身份验证方案。
开发人员可以根据应用程序的需要很容易地添加、删除或替换这些方案。
详细信息。
易于部署:
通过简单地将必要的文件复制到服务器上,ASP.NET应用程序即可以部署到该服务器上。
不需要重新启动服务器,甚至在部署或替换运行的已编译代码时也不需要重新启动。
增强的性能:
ASP.NET是运行在服务器上的已编译代码。
与传统的ActiveServerPages(ASP)不同,ASP.NET能利用早期绑定、实时(JIT)编译、本机优化和全新的缓存服务来提高性能。
灵活的输出缓存:
根据应用程序的需要,ASP.NET可以缓存页数据、页的一部分或整个页。
缓存的项目可以依赖于缓存中的文件或其他项目,或者可以根据过期策略进行刷新。
国际化:
ASP.NET在内部使用Unicode以表示请求和响应数据。
可以为每台计算机、每个目录和每页配置国际化设置。
移动设备支持:
ASP.NET支持任何设备上的任何浏览器。
开发人员使用与用于传统的桌面浏览器相同的编程技术来处理新的移动设备。
扩展性和可用性:
ASP.NET被设计成可扩展的、具有特别专有的功能来提高群集的、多处理器环境的性能。
此外,Internet信息服务(IIS)和ASP.NET运行时密切监视和管理进程,以便在一个进程出现异常时,可在该位置创建新的进程使应用程序继续处理请求。
跟踪和调试:
ASP.NET提供了跟踪服务,该服务可在应用程序级别和页面级别调试过程中启用。
可以选择查看页面的信息,或者使用应用程序级别的跟踪查看工具查看信息。
在开发和应用程序处于生产状态时,ASP.NET支持使用.NETFramework调试工具进行本地和远程调试。
当应用程序处于生产状态时,跟踪语句能够留在产品代码中而不会影响性能。
与.NETFramework集成:
因为ASP.NET是.NETFramework的一部分,整个平台的功能和灵活性对Web应用程序都是可用的。
也可从Web上流畅地访问.NET类库以及消息和数据访问解决方案。
ASP.NET是独立于语言之外的,所以开发人员能选择最适于应用程序的语言。
另外,公共语言运行库的互用性还保存了基于COM开发的现有投资。
与现有ASP应用程序的兼容性:
ASP和ASP.NET可并行运行在IISWeb服务器上而互不冲突;不会发生因安装ASP.NET而导致现有ASP应用程序崩溃的可能。
ASP.NET仅处理具有.aspx文件扩展名的文件。
具有.asp文件扩展名的文件继续由ASP引擎来处理。
然而,应该注意的是会话状态和应用程序状态并不在ASP和ASP.NET页面之间共享。
ASP.NET启用了分布式应用程序的两个功能:
Web窗体和XMLWeb服务。
相同的配置和调试基本结构支持这两种功能。
Web窗体技术使您建立强大的基于窗体的网页。
Web窗体页面使用可重复使用的内建组件或自定义组件以简化页面中的代码。
使用ASP.NET创建的XMLWeb服务可使您远程访问服务器。
使用XMLWeb服务,商家可以提供其数据或商业规则的可编程接口,之后可以由客户端和服务器端应用程序获得和操作。
通过在客户端/服务器和服务器/服务器方案中的防火墙范围内使用标准(如XML消息处理和HTTP),XMLWeb服务可启用数据交换。
以任何语言编写的且运行在任何操作系统上的程序都能调用XMLWeb服务。
ASP.NET又叫ASP+,但并不仅仅是ASP的简单升级,而是MicroSoft推出的新一代ActiveServerPages脚本语言。
ASP.NET是微软发展的新型体系结构.NET的一部分,它的全新技术架构会让每一个人的网络生活都变得更简单。
首先需要特别指出的是,ASP.NET不仅仅只是有了一个新界面并且修复了一些缺陷的ASP3.0的升级版本(即不同于ASP2.0升级到ASP3.0的转变)。
更为重要的是,ASP.NET吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。
2.4运行环境和开发工具
本系统采用WindowsXP系统运行平台,IIS5.0WEB服务器和脚本解释器,IE浏览器,VS2008和SQLServer2005企业版为开发工具。
3过程论述
3.1系统需求分析
图书管理者的需求是查询图书馆所存的图书、借阅者的借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书查询给借阅者查看确认,可直接查看图书馆图书情况。
图书借阅者、图书进行管理和维护,及系统状态的查看、维护。
图书馆工作人员有修改图书借阅者借书和还书记录的权限,在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或是还书记录。
3.2系统功能模块设计
图1设计流程图
3.3图书基本信息管理
3.3.1图书新旧进出管理
1.新书入库
图书采购人员按照每年的采购计划进行购书(不在本系统考虑范围),图书购入后由图书管理人员将图书按类别分类后录入数据库。
2.图书出库
某一部分图书会随着时间的增长及知识的更新而变得不再有收藏的价值,或者图书被损坏、丢失,这些图书就要在图书库中除去,即从图书库中删除此图书记录。
3.新书编码
图书入库后,系统会自动生成编码,然后把编码贴到相应的图书上,以便以后提供借阅,本系统不涉及到条形码阅读器,只是假定此过程已经生成条形码。
编码只是将条形码帖于书上以唯一标识图书。
4.图书信息修改
图书信息由于工作人员的疏忽,而出现错误,可以修改其信息。
3.3.2图书流通管理
1.图书借阅
主要功能是记录借阅证编号和图书编号,进行借书过程。
在数据库中插入一条借书记录,该记录包括读者ID、图书ID、借出日期。
2.图书归还
主要功能是输入读者ID、图书ID,将借书记录删除,将该记录的相应数据更新到历史记录中。
3.注销借阅证
输入读者ID,依据输入读者的ID删除读者表中的读者记录。
3.3.3统计查询
1.图书查询
主要功能是录入图书的相关信息精确查询或模糊查询。
2.借阅查询
主要功能是录入读者ID对当前已经借阅的图借阅信息查询。
3.3.4系统管理
1.添加管理员
主要功能是向系统中添加管理员。
2.修改密码
主要功能用于用户密码的更改。
4图书管理系统的实现过程
4.1系统数据分析和设计
通过对图书管理系统的分析,可以得出该系统涉及三个实体:
读者、图书、工作人员。
读者:
读者编号、姓名、性别、读者种类、证件类型、证件号码、电话、邮箱、备注。
图书:
图书编号、图书名称、图书种类、存放书架、出版社、作者、价格、库存量。
管理人员:
员工账号、登陆密码。
其用到的表情况见下图:
图书库表(bookInfo)
图2图书信息表
bookInfo表是用来存放图书的,如管理员要对书库中的图书做一些调整可以通过修改bookInfo表达到。
2.读者信息表(readerInfo)
图3读者信息表
readerInfo表是用来存放用户信息的表,管理员能通过对readerInfo表的操作知道某用户的具体信息。
3.图书借阅记录表(bookBorrow)
图4图书借阅记录表
bookBorrow表用来存放用户借书的记录,用户每借一次书,系统就自己在bookBorrow表中添加一条记录,从而保证了书的出处有据可依。
4.管理员表(userInfo)
图5管理员表
该表是存放管理员的账号和密码,使得系统拥有对系统的登陆安全性。
5.书架表(bookcase)
图6书架表
Bookcase表是存放书架的信息。
6.图书种类表(bookType)
图7图书种类表
bookType表是用来存放图书分类,使得图书更好的查找与分类。
7.图书管信息表(library)
图8图书管信息表
该表是用来存储改图书系统的信息,对系统的版权和基本信息修改。
8.用户权限表(Powrer)
图9用户权限表
Powrer表是用来存放管理员的权限,管理员可以对用户进行权限的管理,包括对系统设置、读者管理、图书管理、图书借还、系统查询。
9.读者类型表(readType)
图10读者类型表
readType表是存放借阅者的类型,管理员可以对用户进行分类,管理员可以修改该表来实现对读者类型的添加、修改。
4.2系统详细设计过程
4.2.1登入主页(Default.aspx)
登陆后将进入主界面,该页面显示图书的借阅排行榜。
图11主页面
4.2.2管理员设置(Users.aspx)
对管理员账号的权限设置,包括对系统设置、图书借还、读者管理、系统查询、图书管理。
在对应的前面打上勾该用户就有对相应的页面进行设置修改。
图12管理员权限设置
4.2.3书架设置(bookCase.aspx)
通过对表(bookcase)表来读入,实现对书架的添加。
有了对书架的设置就可以更好的对图书的管理以及对后面的图书查询功能做准备。
4.2.4读者类型管理(readType.aspx)
读者类型添加是对读者一种借阅的权限管理,可以设置对每种读者级别的借阅最大图书量设置,比如老师可以借阅10本图书,学生可以借阅5本图书。
改功能主要是通过表(readType)进行添加。
图13读者类型管理
4.2.5读者档案管理(readerInfo.aspx)
该模块是对借阅者的用户添加,里面的条形码是系统自动生成的,条形码是由系统时间转换成的这是系统唯一识别借阅者的身份,里面包括读者姓名、性别、读者类型、证件类型、证件号码、联系方式等。
图14添加读者信息
4.2.6图书类型设置(bookType.aspx)
通过对表(bookType)数据读入来实现对图书类型的添加。
图15图书类型设置
4.2.7图书档案管理(bookInfoManage.aspx)
添加图书
主要功能是输入图书的各项信息,将图书的各项信息写入到数据库中的图书表中,该记录包括图书编号、图书名称、图书类型、出版社、图书价格、存放书架等等。
为了保证图书信息量的完整性,所以每个图书管必需时时引入新书,系统的新书入库这一环节必不可少,系统通过管理员对页面输入的图书信息,自动转化为数据库所识别的数据,并写进数据库内的图书表中储存起来。
图16添加图书信息
4.2.8图书借还(bookBorrow.aspx)
以下这段代码用来获取读者信息,在数据库里把读者的条形码设为主键,通过读者条形码来读取读者的信息。
如果条形码输入错误将提示“读者条形码输入错误!
”
stringreaderBarCode=txtReaderBarCode.Text;//获取读者条形码
//创建SQL语句在读者信息表中查询符合读者条形码条件的记录
stringreaderSql="select*fromreaderInfowherereaderBarCode='"+readerBarCode+"'";
Linklk=newLink();
SqlDataReadersdr=lk.getRow(readerSql);//获取该读者详细信息
if(sdr.Read())
{//读取一条记录
txtReaderName.Text=sdr["readerName"].ToString();//显示读者姓名
txtReaderSex.Text=sdr["Sex"].ToString();//显示读者性别
txtCertificateType.Text=sdr["certificateType"].ToString();//显示证件类型
txtCertificate.Text=sdr["certificate"].ToString();//显示证件号
//创建SQL语句在读者类型表中查询符合读者类型编号的记录
stringreaderTypeSql="select*fromreadTypewhereid="+sdr["readerType"].ToString();
Linkl=newLink();
SqlDataReadertypeSdr=l.getRow(readerTypeSql);//获取读者类型信息
typeSdr.Read();//读取一条记录
txtReaderType.Text=typeSdr["type"].ToString();//显示读者类型
intborrowNum=Convert.ToInt32(typeSdr["num"]);//获取可借图书总数
//创建SQL语句在图书借阅表中查询符合读者条形码条件的读者借了几本图书(图书未还的)
stringselSql="selectcount(*)frombookBorrowwherereaderBarCode='"+readerBarCode+"'andisReturn='0'";
intalreadyNum=Link.ExecuteNonQuery1(selSql);//获取图书已借数
txtNum.Text=Convert.ToString(borrowNum-alreadyNum);//显示可以借阅数
isSum=1;
}
else
RegisterStartupScript("","");
图书借阅:
主要功能是记录借阅证编号和图书编号,进行借书过程。
在数据库中插入一条借书记录,该记录包括读者ID、图书ID、借出日期、还书期限。
用户借阅图书的时候,系统从页面接收到读者的借阅证号和图书的编号,系统根据从页面中得到的参数从数据库中提取出读者需要的目标图书,并且将读者的借书记录写到数据库中的读者借书信息表中。
同样在页面中用文本框接收输入的信息。
以下这段代码用来获取图书信息,先输入图书条形码来读取图书信息,然后判断读者借阅是否超借了。
如果借阅数已满将提示“借阅数量已满!
不可以再借阅”。
protectedvoidbtnBookSearch_Click(objectsender,EventArgse)
{if(isSum>0)
{if(Convert.ToInt32(txtNum.Text.Trim())>0)//判断读者是否还可以借书
{if(txtBookBarCode.Text.Trim()!
="")//判断图书条形码是否为空
{stringbookBarCode=txtBookBarCode.Text;//获取图书条形码
//创建SQL语句在图书信息表中查询符合图书条形码条件的记录
stringsql="select*frombookInfowherebookBarCode='"+bookBarCode+"'";
Linkk=newLink();
DataSetds=k.GetDs(sql,"bookInfo");
if(ds.Tables["bookInfo"].DefaultView.Count>0)
{gvBookBorrow.DataSource=ds.Tables["bookInfo"].DefaultView;
//获取数据源
gvBookBorrow.DataKeyNames=newstring[]{"bookBarCode"};
//设置主键
gvBookBorrow.DataBind();//绑定GridView控件