《图书信息管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《图书信息管理系统的设计与实现.doc(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、毕业设计论文图书信息管理系统的设计及实现第 30 页摘 要本文首先阐述了基于 Framework平台的图书馆管理信息系统的开发背景以及其实践意义,其次说明了图书馆管理信息系统的功能以及相比同类软件的创新之处。然后就图书馆管理系统开发中所使用的一些的技术进行研究探讨。主要针对数据库的设计技术、存储过程技术、技术以及访问SQL数据库技术四个方面进行了研究。最后还附上了图书馆管理信息系统的安装说明、简单使用说明与一些通用性的经典代码。化了大量的时间用于程序设计,这也是工作的重点,所开发的软件具有实用价值,所编写的代码对程序员也有很好的参考性。在系统的开发过程中,深刻体会到了平台的强大性、优越性以及存
2、储过程在提高数据访问性能与增强数据访问安全性上所起到的重要作用。此外,对于关系代数在数据库科学里的应用,在编程过程中也做了一定的研究。关键字:图书管理;SQLAbstractIn this paper, based on NET Framework platform library management information system development background and the significance of its practice, followed by information on the library management information syste
3、m function and compared with similar software innovation. Then the library management system used by some technical research. Mainly for database design technology, storage technology, ADO technology and SQL database access technology in four aspects were studied. The last is also attached to the li
4、brary management information system installation instructions, simple use and some classic code. A lot of time for program design, which is also the focus of the work, the developed software has practical value, code for NET programmers also has a very good reference. In the development process of t
5、he system, realized the . NET platform of the powerful, superiority and stored procedure in improving data access performance and enhanced data access security of the important role played by. In addition, the relational algebra in database science applications, in the programming process can also d
6、o some research.Keywords: library management; VB; SQL目 录第一章 引 言11.1 课题背景1国内外研究现状1本课题研究的意义2图书管理系统的特点3第二章 系统开发相关技术5理论基础5的简介5运行环境5服务器端的配置5客户端配置6第三章图书管理系统的设计7功能设计7数据库设计8数据库概念模型83.2.1 数据库表的概念10第四章. 图书管理功能的实现12登录功能实现124.2 系统功能管理134.2.1 书籍查询管理实现134.2.2 书籍添加实现164.2.3 书籍编辑功能的实现174.3 用户删除功能的实现184.4 借书、还书管理的实现
7、19总 结25致 谢26参 考 文 献27第一章 引 言 课题背景目前随着信息化程度的提高,国内图书馆也日益现代化,为了满足这种需求,很多软件开发商已经开发出很多交好的商品化的图书管理软件,这些图书管理软件功能与性能都很完善,他们大多是面向大型专业图书馆而开发的,专业型强、功能分工较细、操作与使用比较复杂,难以掌握。对那些管理人员不多且不是图书管理业务的专业人员,业务分工也不是很明确,这样的软件对他们来说太庞大、太复杂了。本系统开发基于技术,本着简单、实用的原则,既在功能上满足用户需求,又力求操作简单,使系统容易掌握与使用。由于采用技术构建,本系统既可以在单机运行又可以在网络中运行,具有较高的
8、适应性。国内外研究现状伴随着科技的进步,社会经济的发展高校人类步入知识社会经济时代。知识管理理论即是这一时代的产物。作为一种全新的管理方法与管理手段,知识管理的实践最早诞生于企业,目前也在企业界得以广泛应用。而图书管理系统一直是这些年来积极探索的问题,并随着这一问题研究的深入与关注,人们逐渐开始了对图书管理系统新的领域的探索,基于信息化管理的图书知识管理系统必将成为今后图书馆建设的一个只要内容。但是图书信息话管理还有很多的不足:高校图书馆档案管理信息化所需基础设施、设备条件与技术手段还相对比较落后。然而,由于高校图书馆档案管理信息化所需基础设施、设备条件与技术手段还相对比较落后,目前高校图书馆
9、档案管理信息化水平还比较低。随着时代的发展、办公形式的进步,高校的教学、科研及其他活动中越来越多的依据声像档案。它真实、形象、鲜活地记载了活动、事件的面貌,是一种最直观、最真实的档案材料, 也是高校及图书馆建设与发展的宝贵资料。但在工作中往往忽视了对声像档案的收集与利用,使声像档案失去了其应有的作用。因此,应增加一些高档的声像设备,加强声像档案的管理与利用,同时提高计算机、局域网与公共网的建设,促进高校图书馆管理信息化水平的不断提高。高校图书馆档案管理信息化服务层次低。目前,高校图书馆档案管理信息服务主要还是在对档案资源的登记、保管,只是为部分人提供阅览、简单的咨询与导读、复印等外部层次上。随
10、着高校基础设施建设的加强,设施设备条件进一步完善,校园网普遍建立,为高校图书馆档案管理工作提供了很好的平台。然而,高校图书馆信息化服务网络平台的建设并不理想。在高校图书馆档案管理中,计算机网络的共享性优势没有得到很好的发挥,高校图书馆档案信息并没有提供网络信息服务,也没有建立能让读者进行交流网络平台。信息化服务层次还比较低,网络资料、档案文献报道、专题提供、资源共享等深层次服务还没有形成。高校校园网逐步建立,但校园网的利用不够充分,还未建立起高校图书馆网络远程用户平台。在过去很长一段时间里,由于高校图书馆档案管理传统工作方式所形成的思维与方法上的定式,使得图书馆档案管理工作者在思想观念上难以将
11、现代化管理引入到档案工作中来。尽管计算机普及程度已经较高,校园网已经逐步建立,但是,高校图书馆档案管理中没有充分发挥现代网络技术的作用。图书馆档案信息基本上是局限于本校,至多就是本地区,基本没有实现远程存取服务,很少有高校图书馆建设有远程用户也可以非常方便地利用图书馆档案信息的网络平台。近几年,电子信息技术的迅速发展与对社会生活的巨大影响,虽然已经让档案工作者认识到计算机、网络等可以大大提高档案管理工作的效率与信息化水平。但是对于如何构建图书馆档案管理信息化服务平台,相当多的档案管理工作者并没有站在资源充分共享及利用与学校改革及发展的高度,从更深层次上认真思考信息化给档案管理带来的机遇!本课题
12、研究的意义随着当今社会的迅猛发展,知识变的越来越重要,终身学习的观念已经深入人心。而图书馆这一传统的获取知识的场所,它的地位也变的越来越重要。而图书馆的管理方法也更新了很多次。从最初的手工管理到现在的计算机管理等等。经过调查一些图书馆的现状,发现各图书馆使用的管理系统基本都是几年前的产品,大多使用VB+ADO方式,web平台也主要使用asp或php开发。开发技术比较陈旧,功能上也有一些不足。而且以前的VB面向对象化编程(OOP)支持的不是很好,软件维护起来也相当困难。Microsoft技术的推出,将计算带入一个新时代。现在已经引起业界广泛的关注。是专门为程序员设计的、功能强大的开发工具,利用该
13、工具能够构建各类应用程序。可以说是博大精深,蕴含者丰富的新技术新思想。使应用程序的功能更强大,使系统开发更简单,使系统的部署更轻松。而包含的统一的类库,统一的数据结构使得各类编程模型更统一。个人对技术非常感兴趣,在这方面也做过大量的研究。又鉴于当前流行的图书馆管理信息系统技术都比较陈旧,就萌发了用开发一个新图书馆管理信息系统的想法。很高兴它成为为毕业设计研究的课题。系统的实践意义有两个:1开发出的系统功能强大,可以应用于各大中型图书馆使用,可以根据客户的要求添加功能。2由于推出的时间不算很长,所以网上很少有用开发的公开源代码的大型系统。本系统可以给广大的编程爱好者一些参考。本文理论部分主要针对
14、数据库设计技术、存储过程技术、技术以及用SQL Server Framework 数据提供程序访问SQLserver2000数据库技术这四个方面进行了研究与探讨。的强大性以及优越性。在编程过程中查阅了大量的书籍,参考了大量MSDN以及各大网站的技术文章,全部代码约有一万两千行左右。为此做了大量的工作。在系统的开发过程中,深刻体会到了平台的强大性以及优越性以及存储过程在提高数据访问性能与增强数据访问安全性上所起到的重要作用图书管理系统的特点准备开发出具有以下特点的管理系统:页面清晰、功能齐全实用、操作简单。开发周期短、维护费用低、软件更新速度快。风格友好化,轻松管理,容易上手,达到一看就懂、一学
15、即会。目标系统必须具有可靠性、安全性、可维护性、可移植性等。本系统是针对学校图书馆来开发的管理信息系统,该系统要达到可以对图书的基本信息进行管理的功能,可以实现基本的查询、录入、修改与借阅功能。数据集中统一,采用数据库处理数据。使用模块化结构,便于修改,由易增加新内容。第二章 系统开发相关技术理论基础 ADO的简介它提供了平台互用性与可伸缩的数据访问。ADO增强了对非连接编程模式的支持,并支持RICH XML.由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。事实上,接受数据的组件不一定要是ADO 组件,它可以是基于一个Microsoft Visual S
16、tudio的解决方案,也可以是任何运行在其它平台上的任何应用程序。 ADO是一组用于与数据源进行交互的面向对象类库。通常情况下,数据源是数据库,但它同样也能够是文本文件、Excel表格或者XML文件。 ADO允许与不同类型的数据源以及数据库进行交互。然而并没有及此相关的一系列类来完成这样的工作。因为不同的数据源采用不同的协议,所以对于不同的数据源必须采用相应的协议。一些老式的数据源使用ODBC协议,许多新的数据源使用OleDb协议,并且现在还不断出现更多的数据源,这些数据源都可以通过的ADO类库来进行连接。 ADO提供及数据源进行交互的相关的公共方法,但是对于不同的数据源采用一组不同的类库。这
17、些类库称为Data Providers,并且通常是以及之交互的协议与数据源的类型来命名的。表1列处了一些常见的data providers,以及它们所使用的API前缀,与允许进行交互的数据源类型。运行环境2.2.1服务器端的配置硬件环境:(1) CPU:AMD 2500+(2)内存:512MB(3)硬盘:80G软件环境:Windows XP(含IIS ),Microsoft SQL Server客户端配置硬件环境:(1)(2)内存:256MB以上(3)硬盘:20G以上软件环境:Windows 2000/NT/XP/2003, 第三章 图书管理系统的设计功能设计本程序采用C/S模式,可以实现图书
18、查询,借/还,用户管理等功能。该系统的用户分不同角色:分别为用户与管理员。用户除了可以对系统的一般功能进行使用,可以浏览大部分的信息,主要是不能使用管理用户信息,这主要是防止用户胡乱的使用,扰乱整个系统的管理管理员可以进行所有图书信息与用户信息的添加、删除与编辑操作,可以查看读者的借书与还书信息,做出相应的反映。图书管理系统可以实现用户查询图书信息与读者信息,可以对图书进行借阅或归还。管理员可以实现对各种图书的录入、编辑与删除工作,可以统计读者的借还书信息,解决一些用户的疑问。管理员模块功能:(1)系统管理员信息模块系统管理员信息模块显示示:把所有数据库里面有的信息显示出来。详细的信息有助于管
19、理员对书籍与用进行添加、编辑、删除操作。(2)书籍信息模块书籍信息显示:把所有的书籍信息公布出来,为管理员管理书籍提供帮助。(3)读者信息模块读者信息显示:把所有的读者信息公布出来,为管理员管理读者提供帮助。 (5)退出信息模块退出信息显示:登录用户完成退出登录操作。数据库设计数据库技术是20世纪60年代后期产生何发展起来的一项计算机数据管理技术,现广泛运用及各种信息处理以及科学研究上。数据库技术已经成为当今时代非常重要的技术。当今流行的数据库系统主要是以关系数据库为代表的第二代数据库系统。当今流行的大型数据库管理系统主要有SQL Server、Oracle、Sybase等。图书馆管理信息系统
20、选用的是SQL数据库管理系统。选择它的原因有:SQL简单,实用,功能强大,能完整实现数据库系统的所有功能。3.2.1数据库概念模型E-R(Entity-Relationship Approach)图是最常用的概念模型表示方法,也是数据库的核心与基础,它是按用户的观点来对数据与信息建模,依据概念模型设计应具的特点,图书管理系统的E-R图,如3-1到3-4所示。出版日期管理员用户图书借书密码姓名作者类型状态出版社单价名字用户名地址 email身份证书名用户地址日期单价用户 用户名书号密码类型email 帐 号图3-2 图书信息E-R图图3-4 管理员信息E-R图图3-3 预订单信息E-R图图3-1
21、 用户信息E-R图 数据库表的概念用户信息表(如表3-1)是记录用户信息的,包括基本的用户名、用户密码与用户权限,在添加用户时需要使用该表。表3-1 用户信息表用户信息表名称类型长度说明Man_idnvarchar50用户帐号Man_pwdnvarchar12用户密码Man_purviewNvarchar10用户权限图书信息表(如表3-2)是图书的基本信息。在用户查看图书及管理员操作图书信息时需要使用该表。表3-2图书信息表图书信息表字段名称类型长度说明Book_idInt4图书编号Book_code nvarchar50条码号Book_name nvarchar50图书题名(Book_pub
22、 nvarchar50出版社Book_isbn nvarchar50ISBN号Book_pubdatesmalldatetime4出版日期Book_adddatesmalldatetime4入馆日期Book_sortnvarchar50图书分类读者信息表(如表3-3)是读者的基本信息。在用户查看读者信息及管理员操作读者信息时需要使用该表。表3-3读者信息表读者信息表字段名称类型长度说明Au_serialint4读者编号Au_namenvarchar50读者姓名Au_adddatesmalldatetime4添加日期Au_adrnvarchar50读者地址Au_emailnvarchar50读者
23、emailAu_remarksnvarchar50读者详细资料借阅情况信息表(如表3-4)是图书借阅的基本信息。在用户查看借阅情况及管理员操作借阅信息信息时需要使用该表。表3-4借阅情况信息表借阅情况信息表字段名称类型长度说明Numberint4借阅号Au_idnvarchar50读者编号book_codenvarchar50图书编号Borrow_datesmalldatetime4借阅日期Should_datesmalldatetime4应归还日期Return_datesmalldatetime4归还日期forfeitmoney4罚款金额图书分类信息表(如表3-5)是图书分类的基本信息。在用
24、户查看图书分类信息及管理员操作图书分类信息时需要使用该表。表3-5图书分类信息表图书分类信息表字段名称类型长度说明Book_sortnvarchar50nvarcharSort_remarksnvarchar5000分类具体说明第四章. 图书管理功能的实现在图书管理系统实现中首先介绍用户登录、管理员登录。用户在登录时将用户帐号(userID)与密码(password)输入到相应的TEXT控件中去,点击提交后系统把刚才获取的userID与password赋值给新定义的2个字符串name与pwd,然后使用OleDbCommand连接本地数据库。使用OleDbDataReader进行读操作,如果输入
25、的帐号与密码是及数据库中的值是匹配的,那么Session中的值就等于该帐号,即登录成功,跳转到首页。如果用户名不存在或输入错误,那么使用Response对象的Write方法显示出提示信息,同时Session中的值为空。在首页中判断是否登录就是看Session里的值。如果登录三次未成功,那么“显示你的帐号已被冻结,请及管理员联系”。如果其中的值为管理员名,那么该用户为管理员,可以点击登录按钮进入管理页面。如图4-1图4-1 登录界面用户登录系统后的界面,如图4-2所示图4-2 登录界面getUserRights()过程可以实现登录用户权限的选择。其getUserRights()过程实现代码如下:
26、Function getUserRights()MyConnection.Open()MyCommand = New OleDbCommand(SELECT * FROM SystemUsers WHERE UserID = & TxtUserID.Text & , MyConnection)MyReader = MyCommand.ExecuteReader()AdminStatus = MyReader(AdminRights)LibStatus = MyReader(LibRights)ReaderStatus = MyReader(ReaderRights)End WhileMyCon
27、nection.Close()MyReader.Close()MyCommand.Dispose()End Function4.2 系统功能管理 书籍查询管理实现登录进入该系统的用户或管理员都可以看到书籍信息,可以根据自己的需要进行查询如图4-3所示图4-3 书籍查询功能书籍查询可以根据书籍名称、ISDN号码以及作者查询图书信息。findByName()过程可实现通过书籍名称查找书籍;findByAuthorName()过程可实现通过作者查找书籍;findByISDN()过程可实现通过ISDN号查找书籍。其findByISDN()过程实现代码如下:Sub findByISDN()dbset.C
28、lear()MyConnection.Open()MyCommand = New OleDbCommand(Select * from BookDetails WHERE ISDN = & TxtCondition.Text & , MyConnection)dataA = New OleDbDataAdapter(MyCommand)dataA.fill(dbset, BookDetails)DGResult.ReadOnly = TrueDGResult.DataSource = dbset.Tables(BookDetails)MyReader = MyCommand.ExecuteRe
29、ader()End WhileMyConnection.Close()MyReader.Close()MyCommand.dispose()End Sub其findByAuthorName()过程实现代码如下:Sub findByAuthorName()dbset.Clear()MyConnection.Open()MyCommand = New OleDbCommand(Select * from BookDetails WHERE AuthorName LIKE & TxtCondition.Text & %, MyConnection)dataA = New OleDbDataAdapt
30、er(MyCommand)dataA.fill(dbset, BookDetails)DGResult.ReadOnly = TrueDGResult.DataSource = dbset.Tables(BookDetails)MyReader = MyCommand.ExecuteReader()End WhileMyConnection.Close()MyReader.Close()MyCommand.dispose()End Sub其findByName()过程实现代码如下:Sub findByName()dbset.Clear()MyConnection.Open()MyCommand
31、 = New OleDbCommand(Select * from BookDetails WHERE BookName LIKE & TxtCondition.Text & %, MyConnection)dataA = New OleDbDataAdapter(MyCommand)dataA.fill(dbset, BookDetails)DGResult.ReadOnly = TrueDGResult.DataSource = dbset.Tables(BookDetails)MyReader = MyCommand.ExecuteReader()End WhileMyConnectio
32、n.Close()MyReader.Close()MyCommand.Dispose()End Sub 书籍添加实现管理员根据读者的需要添加新的图书信息,如图4-4所示图4-4 添加图书信息checkSpecificFields()过程可查询添加的书籍编号是否存在,如不存在则编辑好图书信息,add_BookIntoDatabase()过程可将书籍信息提交及保存。其add_BookIntoDatabase()过程实现的代码如下:Function add_BookIntoDatabase() MyConnection.Open() MyCommand = New OleDbCommand(INSE
33、RT INTO BookDetails VALUES( & TxtSN.Text & , & TxtISBN.Text & , & TxtBookName.Text & , & ComboBookCode.Text & , & ComboBookType.Text & , & TxtBookDes.Text & , & TxtBookAuthor.Text & , & TxtPublishdate.Text & , & TxtEdition.Text & , & ComboStatus.Text & , & picPath & , & TxtAdditionDate.Text & ), MyC
34、onnection) MyCommand.ExecuteNonQuery() MyConnection.Close() MyCommand.Dispose() End Function 书籍编辑功能的实现管理员根据现实情况编辑图书现有的图书。如图4-5图4-5 编辑图书信息通过书籍编号,连接数据库查看书籍信息。updateBook()过程可完成对于编辑后信息的提交及保存。其updateBook()过程实现代码如下: Function updateBook()MyConnection.Open()TryMyCommand = New OleDbCommand(UPDATE BookDetails
35、 SET BookName = & TxtBookName.Text & ,AuthorName = & TxtBookAuthor.Text & ,BookType = & ComboBookType.Text & ,BookCode = & ComboBookCode.Text & , BookDes = & TxtBookDes.Text & , PublishDate = & TxtPublishdate.Text & , LibDate = & TxtAdditionDate.Text & ,Picture = & picPath & WHERE SN = & TxtSN.Text
36、& , MyConnection)MyCommand.ExecuteNonQuery()Catch c As ExceptionMsgBox(c.ToString)End TryMyConnection.Close()MyCommand.Dispose()End Function4.3 用户删除功能的实现管理员对违规操作的用户进行删除,如图4-6所示:图4-6 用户删除界面LoadUser()过程可显示数据库中的所以用户信息。其LoadUser()过程实现代码如下:Sub LoadUser()LvUser.Items.Clear()Dim LItem As ListViewItemDim SQ
37、LString As String = SELECT * FROM SystemUsersSQL查询语句MyConnection.Open()MyCommand = New OleDbCommand(SQLString, MyConnection)MyReader = MyCommand.ExecuteReader()LItem = New ListViewItem(MyReader(UserID).ToString)LItem.SubItems.Add(MyReader(UserName).ToString)LItem.SubItems.Add(MyReader(Password).ToSt
38、ring)LItem.SubItems.Add(MyReader(Status).ToString)LItem.SubItems.Add(MyReader(Address).ToString)LItem.SubItems.Add(MyReader(Phone).ToString)LItem.SubItems.Add(MyReader(CellPhone).ToString)LItem.SubItems.Add(MyReader(Email).ToString)LItem.SubItems.Add(MyReader(AdminRights).ToString)LItem.SubItems.Add
39、(MyReader(LibRights).ToString)LItem.SubItems.Add(MyReader(ReaderRights).ToString)LvUser.Items.Add(LItem)End WhileMyConnection.Close()MyReader.Close()MyCommand.Dispose()End Sub4.4 借书、还书管理的实现借书、还书功能是图书管理系统必不可少的功能之一。用户可以登录系统,对图书进行借阅或者对于自己借阅的书籍进行还书操作。如图4-13与图4-14:登录用户写入书籍编号进行图书信息确认,写入读者编号,确认读者信息,确认无误后进行
40、借书操作。如图4-8:图4-8 借阅书籍checkStatus()过程可查询书籍是否存在或是否被借阅。checkIssueTag()过程可查询该读者是否可以借阅书籍。issueBook()过程可将书籍借阅信息提交及保存。其issueBook()过程实现代码如下:Sub issueBook()MyConnection.Open()MyCommand = New OleDbCommand(INSERT INTO IssueBook VALUES( & TxtIssueNo.Text & , & TxtSN.Text & , & TxtBookName.Text & , & TxtAuthorNam
41、e.Text & , & TxtReaderNo.Text & , & TxtReaderName.Text & , & TxtIssueDate.Text & , & TxtReturnDate.Text & , & ComboChargeType.Text & ), MyConnection)MyCommand.ExecuteNonQuery()MyConnection.Close()MyCommand.dispose()End Sub其checkStatus()过程实现代码如下:Function checkStatus() As BooleanDim oStatus As StringM
42、yConnection.Open()MyCommand = New OleDbCommand(SELECT * FROM BookDetails WHERE SN = & TxtSN.Text & , MyConnection)MyReader = MyCommand.ExecuteReader()oStatus = MyReader(BookStatus)End WhileMyConnection.Close()MyReader.Close()MyCommand.dispose()If oStatus = 正常 ThenReturn TrueElseIf oStatus = 被借 ThenR
43、eturn FalseEnd IfEnd IfEnd Function其checkIssueTag()过程实现代码如下:Function checkIssueTag() As BooleanDim oTag As StringMyConnection.Open()MyCommand = New OleDbCommand(SELECT * FROM ReaderDetails WHERE ReaderNo = & TxtReaderNo.Text & , MyConnection)MyReader = MyCommand.ExecuteReader()oTag = MyReader(IssueT
44、agUsed)End WhileMyConnection.Close()MyReader.Close()MyCommand.dispose()If oTag = 3 ThenReturn FalseElseIf oTag 3 ThenReturn TrueEnd IfEnd IfEnd Function登录用户对自己已借的图书进行图书信息与读者信息确认,确认无误后进行还书操作。如图4-9图4-9归还图书checkIfAlreadyExists()查询是否存在该书籍,updateReaderIssueTag()过程可将书籍归还并保存。其checkIfAlreadyExists()过程实现代码如下
45、:Function checkIfAlreadyExists() As BooleanMyConnection.Open()MyCommand = New OleDbCommand(SELECT * FROM IssueBook WHERE IssueNo = & TxtIssueNo.Text & , MyConnection)TryMyReader = MyCommand.ExecuteReader()TextBox10.Text = MyReader(IssueNo)End WhileCatch c As ExceptionMsgBox(c.ToString)End TryMyConnection.Close()MyReader.Close()MyCommand.dispose()If TxtIssueNo.Text = TextBox10.Text ThenReturn TrueElseIf TxtIssueNo.Text TextBox10.Text ThenReturn FalseEnd IfEnd IfEnd Function其
限制150内