893.图书信息管理系统论文.doc

上传人:小小飞 文档编号:3901020 上传时间:2019-10-09 格式:DOC 页数:38 大小:1.96MB
返回 下载 相关 举报
893.图书信息管理系统论文.doc_第1页
第1页 / 共38页
893.图书信息管理系统论文.doc_第2页
第2页 / 共38页
893.图书信息管理系统论文.doc_第3页
第3页 / 共38页
893.图书信息管理系统论文.doc_第4页
第4页 / 共38页
893.图书信息管理系统论文.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《893.图书信息管理系统论文.doc》由会员分享,可在线阅读,更多相关《893.图书信息管理系统论文.doc(38页珍藏版)》请在三一文库上搜索。

1、广播电视大学毕业论文题目 图书管理系统 指导老师 年级 专业 信息系统开发与维护姓名 学号 日期 2008 年 12 月 28 日第一章图书管理系统的系统分析31.前言31.1 编写目的31.2 背景31.3 参考资料32 项目概述32.1系统开发前提32.2 系统开发的基本目标32.3 经济目标32.4 社会目标32.5 开发规模42.6系统流程43 可行性研究的方法及评价度44 软件分析45 软件技术分析55.1 设计目标55.2 设计条件55.3 软件基本工作原理56.软件的功能56.1 设备的要求56.2 对运行过程的影响56.3 技术方面的可行性57 可行性综合分析58可行性结论5第

2、二章模块结构6第三章数据库设计7第四章程序界面及编码8第五章结束语10第一章 图书管理系统的系统分析1.前言随着电子技术的不断发展,人类已经进入了一个充满现在化气息的社会。信息技术在人类的社会生产活动中发挥着重要的作用。人们对信息和数据的应用和处理已经进入了新的阶段(自动化,社会化和网络化)。现在各个行业领域都在开发各自的管理信息系统,管理系统的开发已经成了必要和必需的。图书管理系统就是图书管理发展到一定时期出现的产物,随着大量图书的涌现,科目的繁多,传统式的人工管理无法对其进行及时,正确的记录和维护。所以,管理系统的存在是必然的。1.1 编写目的提高对图书录入,分类,借阅的效率,达到一个管理

3、员和一台机器就能对其进行图书的管理,从而减少了人力和物力在这方面对的浪费,在借阅图书时为管理者和借阅者提供更快捷,准确的服务。1.2 背景由于现代社会中大众对图书的需求日益扩大,图书的数量在不断增加,大量的图书给传统的人工管理带来许多不可避免的麻烦和错误如需要大量的记录账本,在查阅历史信息时不便于查找,还有在计算借阅费用时人工计算容易出现偏差。在人力和物力的费用上造成了大量的浪费,使图书馆的管理负担加重,影响了图书管理的正常运行,因此,为了方便对大量图书的管理,必须开发一套合理的,有效的,实用并且快捷的图书管理系统,对大量的图书进行统一的管理。(1)产品名称:图书管理系统(2)任务提出者:大连

4、电视大学(3)产品开发: 第三开发小组(4)产品用户:图书管理人员(5)产品所有权:沈建军1.3 参考资料(1)中央广播电视大学-信息系统开发案例分析与课程设计 (2)中央广播电视大学Visual Basic程序设计(3)北大青鸟Visual Basic可视化编程(4)Visual Basic 案例教程2 项目概述2.1系统开发前提图书管理系统,主要是为了管理人员的使用方便而进行的设计开发的,通过系统的运行,简便快捷的完成每个流程。针对管理方面的不同,建立多个管理模块如图书信息的维护,图书借阅的管理等。2.2 系统开发的基本目标A. 减小费用的开支。 B. 提高了新图书的录入效率,并且也提高了

5、图书借阅的效率。 C. 减免了在数据上的差错,保证了数据的正确性和准确性。 D加大了图书管理的可维护性。 E加大了图书管理的升级空间。2.3 经济目标运用现代化信息处理技术来管理图书,不仅简化了图书的借阅流程,提高了借阅效率,方便了管理人员对图书的维护,而且图书的历史记录能被完成的保存。2.4 社会目标系统的使用减少了大量时间的浪费,并且效率高,准确性高,比往的人工方式更能提高工作效率。并且使管理者和借阅者能对现代化信息技术有了初步的认识,促进了现代化技术知识的普及和应用。2.5 开发规模该系统软件开发总人数:8人辅导老师:任东华组长:冯昊程序分析:全体开发人员2.6系统流程是否否是是设置侦听

6、Winsock接受客户端连接接受客户端命令登陆信息确?命令权限正确?操作数据库向客户端返回信息退出?开始结束否 3 可行性研究的方法及评价度在经济、技术、法律的可行性方面,图书管理系统能很透彻的表现出存在的优越性,在经济方面不需要很大的开支,能很快地开发出来并被使用。在技术方面不需要很高的系统环境。在法律方面由于是自行开发,借助办公软件就可自行使用不存在法律上的版权问题。3.1 经济可行性系统开发需求比较低并且不是十分的复杂,开发的周期较短。为使用者带来便利的同时,重要的一点是本次开发可以给我们对系统的开发有个全面的认识。从经济角度考虑,此信息系统开发可行。3.2 技术可行性系统现阶段的发展过

7、程中,利用现有人力和物力是完全具备的能力开发出来的,作为阶段性产品,日后的发展空间大,实现方法逐步简单容易,所以图书管理系统的技术上是完全可行的。3.3 法律可行性整个系统由于是自行开发,自行使用,所以系统本身不存在法律上的版权争议。4 可行性分析结论 根据以上的可行性研究,我们小组认为开发此系统的条件已经具备,可以开始进行开发。5 软件分析 基于windows下开发,应用Visual Basic6.0开发软件及后台数据库Microsoft Access所开发的图书管理系统,用户可以方便,快捷地存取各种信息,使得编写的程序更加稳定可靠。对电脑系统环境的依赖低。在一般环境的办公软件(Office

8、)基础下,图书管理系统就能很顺利的运行,不需要额外的支出。在软件功能方面能满足图书馆对图书的日常管理方面的基本要求(如图书的登录,添加,删除,修改,查询,以及数据库的访问)。5.1 硬件需求服务器最低配置:Pentium 4 2.4 GHZ内存256MB以上硬盘 30GB以上客户端最低配置:Pentium 3 633MHZ 内存256MB以上硬盘 30GB以上服务器建议配置:(视具体数据量而定)Pentium 4 3.0GHZ以上内存1GB以上硬盘80GB以上客户端建议配置:Pentium 4 2.4GHZ 以上内存512MB以上硬盘 80GB以上5.2 软件需求 系统:Windows 200

9、0、Windows XP或 Windows 2003,Visual Basic6.0数据库:Access(Office2000、2003)。5.3 功能需求(1)借阅操作A借阅图书:通过向系统输入读者ID和图书ID实现储存图书的借阅信息。B归还图书:通过向系统输入图书ID,实现系统对图书归还的操作。C续借图书:实现增加借阅天数的功能。D缴纳罚款:当图书被损坏时或不按期归还图书时,读者需缴纳罚金。(2)图书信息A图书类别管理:实现对图书类别的添加功能,删除功能和修改功能,还有对全部类别的总括一览。B图书信息管理:实现了对添加图书、维护图书和查询图书的功能。C图书借阅管理:实现了能够查找所有被借阅

10、的图书的借阅信息的功能和成批删除记录的功能。(3)读者信息A添加读者信息:实现了添加读者信息的功能。B删除读者信息;实现了删除读者信息的功能。C查询读者信息:实现了输入读者ID或读者姓名对读者借阅信息的查询。D维护读者信息:实现了对读者信息修改的功能。(4)管理员信息A添加管理员信息:实现了添加新管理员信息的功能。B删除管理员信息:实现了删除管理员信息的功能。C查询管理员信息:实现了查询按条件和全部查询的功能。(5)数据统计A图书借阅统计:通过输入显示排名的位数来查看图书借阅次数的排名,从而知道图书受欢迎的程度。B未还图书统计:通过此功能可以查看所有未还图书的信息,并且还可以只查看超期未还图书

11、的信息。C超期读者统计:可以查看到所有借阅图书超期的读者信息,并且可以对不存在的读者信息进行删除。第二章 模块结构服务器端模块划分(1)数据管理模块:连接数据库,根据客户端发送来的命令,按要求对数据库进行不同的操作。(2)网络管理模块:管理和控制客户端,包括连接状态和连接数量等。将上述功能模块结合在一起,最后得到如图4-4所示的服务器端系统功能模块图。图书馆管理系统服务器端数据管理模块网络管理模块操作数据库管理和控制客户端信息向客户端发送消息系统连接管理员信息管理管理员信息的添加管理员信息的删除管理员信息的查询连接图书管理系统验证管理员信息图书系统主窗体借阅管理借阅图书归还图书续借图书缴纳罚款

12、图书管理图书类别管理图书信息管理图书借阅管理读者信息管理读者信息的添加读者信息的删除读者信息的查询读者信息的维护数据统计图书借阅统计未还图书统计超期读者统计客户端程序流程图 第三章 数据库设计数据关系模式:管理员资料数据表(管理员ID,管理员姓名,管理员密码,权限类型,备注)图书类别数据表(类别号,类别名称,成绩)图书资料数据表(图书号,书名,作者,出版社,版本号,出版日期,单价,类别号,是否在库,借阅次数,备注)读者资料数据表(读者ID,读者姓名,读者类型,已借图书数,超期欠款,是否有效,登记日期,有效期,是否可以续,备注)图书借还数据表(记录号,读者ID,图书号,借阅日期,应还日期,实际归

13、还日,超期欠款,备注)管理员资料数据表(User_Info)字段名类型长度字段说明索引Usr_ID文本8管理员ID主索引Usr_Name文本20管理员姓名Usr_Pwd文本16管理员密码Usr_Type数字1权限类型Usr_Remark文本255备注管理员资料数据表。管理员资料数据表记录了所有管理员的基本资料,管理员可添加、删除和查询该表。该表包括管理员ID、姓名、密码和权限类型(系统管理员、高级管理员、普通管理员)等资料。图书类别数据表(Book_Type)字段名类型长度字段说明索引Type_Num自动编号长整型类别号主索引Type_Name文本10类别名称图书类别数据表。读者类别数据表记录

14、图书类别,用于给图书分类。主要包括了类别号和类别名称等数据。图书资料数据表(Book_Info)字段名类型长度字段说明索引Book_Num自动编号长整型图书号主索引Book_Name文本40书名Book_Author文本20作者Book_Press文本20出版社Book_PrsNum文本20版本号Book_PrsDate日期/时间短日期出版日期Book_Price货币货币单价Book_Type数字整型图书类别号Book_Available是/否是/否是否在库Book_Total数字长整型借阅次数Book_Remark文本255备注图书资料数据表。图书资料数据表记录了图书馆藏书的基本资料,可供查

15、询。该表主要包括了图书号、书名、作者、出版社、版本号、出版日期、单价、图书类别号、是否在库等基本资料,并且设计了借阅次数字段,以供统计图书借阅次数排名使用。图书类别号必须与图书类别数据表中的类别号对应。读者资料数据表(Reader_Info)字段名类型长度字段说明索引Rdr_ID文本16读者ID主索引Rdr_Name文本8读者姓名Rdr_Type数字整型读者类型Rdr_BkTotal数字整型已借图书数Rdr_Arrearage货币货币超期欠款Rdr_Entitle是/否是/否是否有效Rdr_From日期/时间短日期登记日期Rdr_to日期/时间短日期有效期Rdr_lend是/否是/否是否可以续

16、借Rdr_Remark文本255备注读者资料数据表。读者资料数据表记录了所有读者的基本资料,管理员可添加、删除和查询该表。除了读者ID、读者姓名、读者类型的基本资料,还设计了已借图书数、超期欠款、是否有效、登记日期、有效期和是否可以续借等字段,用于判断该读者是否满足可借书的条件。图书借还数据表(Reader_Record)字段名类型长度字段说明索引Rec_Num自动编号长整型记录号主索引Rec_RdrID文本16读者IDRec_BkNum数字长整型图书号Rec_LendTime日期/时间短日期借阅日期Rec_LendLimit日期/时间短日期应还日期Rec_ReturnTime日期/时间短日期

17、实际归还日期Rec_Arrearage货币货币超期欠款Rec_Remark文本255备注图书借还数据表。图书借还数据表记录了所有读者借阅图书的数据,管理员通过添加图书借阅信息、图书归还信息和缴纳罚款信息来添加和修改该表中的记录。该表主要包括记录号、读者ID、图书号、借阅日期、应还日期和实际归还日期,以及本书的超期欠款等资料。其中借阅读者ID必须与读者资料数据表中的读者ID对应。图书号必须与图书资料数据表中的图书号对应。第四章 程序界面及编码服务器共通模块代码:Public DBCnn As New ADODB.Connection 定义全局ADO对象连接,用于连接数据库Public maxso

18、ck As Integer 生成sock控件数Public svrport As String 服务器端口Public aaa As StringPublic bbb As IntegerPublic clientmax As Integer 记录客户端连接最大下标Public Client(1 To 100) As ClientType 允许连接100个客户端Type ClientType 记录客户端数据的ClientType数据类型 UsrID As String 管理员ID index As Integer 通道号 Usrip As String 管理员IPEnd TypePublic

19、Function MessgeInfo(ByVal MsgID As String) As StringDim MsgInfo As StringIf MsgID = M001 Then MsgInfo = 请输入用户ID!End IfIf MsgID = M002 Then MsgInfo = 请输入密码!End IfIf MsgID = M003 Then MsgInfo = 用户不存在!End IfIf MsgID = M004 Then MsgInfo = 用户没有该权限!End IfMessgeInfo = MsgInfoEnd Function一 图书管理系统服务器登录界面1) 用

20、户ID没有输入时,点击登陆按钮时。错误提示信息框_12)当输入用户ID,没有输入密码时。错误提示信息框_23) 当用户ID和密码都输入,但在数据库中部存在时。错误提示信息框_34) 当输入的用户ID和密码都符合时,弹出主窗体。5) 当输入的用户ID和密码都符合时,弹出主窗体。登录界面的代码为:Private Sub btnExit_Click()Unload MeEnd SubPrivate Sub btnLogin_Click()Dim sqlstr As String 存储sql命令字符串Dim rs As New ADODB.RecordsetDim RecordCount As Int

21、egerDim UserType As StringIf Trim(txtUsrID.Text) = Then MsgBox MessgeInfo(M001), , 登录信息Else If Trim(txtUsrPW.Text) = Then MsgBox MessgeInfo(M002), , 登录信息 End IfEnd IfIf Trim(txtUsrID.Text) And Trim(txtUsrPW.Text) Thensqlstr = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & _ App.Path & mdblibrary.md

22、b;Persist Security Info=FalseDBCnn.Open sqlstrsqlstr = select Usr_ID,Usr_Name,Usr_Type From User_Info sqlstr = sqlstr & Where Usr_ID= & Trim(txtUsrID.Text) & AND Usr_Pwd = & Trim(txtUsrPW.Text) & rs.Open sqlstr, DBCnn, adOpenStatic, adLockOptimisticRecordCount = rs.RecordCountIf RecordCount 0 ThenUs

23、erType = rs.Fields(Usr_Type).ValueEnd IfIf RecordCount = 0 Then MsgBox MessgeInfo(M003), , 登录信息ElseIf UserType 9 Then MsgBox MessgeInfo(M004), , 登录信息ElseFrmMain.ShowUnload MeEnd IfEnd IfEnd IfEnd Sub二 图书管理系统服务器主窗体界面1) 当有客户端连接到服务器时如下图显示2) 当要断开客户端的连接时如下图显示3) 当要给客户端发送信息时如下图显示客户端接受到来自服务器的信息如下图显示主窗体界面的部分

24、代码为:接受并处理数据Private Sub winsock_DataArrival(index As Integer, ByVal bytesTotal As Long)Dim StrArrival As StringDim strBack As StringDim RdrID As StringDim BkNum As LongDim StatNum As IntegerDim UsrID As StringDim UsrPwd As StringDim Usrip As StringDim StrGet() As StringMe.winsock(index).GetData StrAr

25、rival, vbStringIf Len(StrArrival) 1 Then Exit Sub StrGet() = Split(StrArrival, , -1) Select Case StrGet(0) Case Lend RdrID = StrGet(1) BkNum = Val(StrGet(2) strBack = checklend(RdrID, BkNum, index) Case Lend1 RdrID = StrGet(1) strBack = lend1(RdrID) Case Return BkNum = Val(StrGet(1)strBack = checkRe

26、turn(BkNum, index) Case Pay RdrID = StrGet(1) strBack = checkPay(RdrID, index)Case Type strBack = BookType(StrGet, index)Case Book strBack = BookInfo(StrGet, index)Case Rdr strBack = Reader(StrGet, index) Case Usr strBack = User(StrGet, index) Case Stat StatNum = Val(StrGet(1) strBack = checkStat(St

27、atNum) Case Cnn UsrID = StrGet(1) UsrPwd = StrGet(2) Usrip = StrGet(3) strBack = checkUsr(UsrID, UsrPwd, Usrip, index) End Select If Me.winsock(index).State sckConnected Then Exit Sub End If Me.winsock(index).SendData strBack End Sub 检验图书类别信息管理的函数 BookTypePrivate Function BookType(ByRef StrGet() As

28、String, index As Integer) As StringDim iType As IntegerDim TypeName As StringDim TypeNum As StringDim TypeNum1 As StringiType = StrGet(1) Select Case iType Case 1 TypeName = StrGet(2) BookType = checkType1(TypeName, index) Case 2 BookType = checkType2() Case 3 TypeNum = StrGet(2) BookType = checkTyp

29、e3(TypeNum, index) Case 4 BookType = checkType4() Case 5 TypeNum = StrGet(2) TypeNum1 = StrGet(3) BookType = checkType5(TypeNum, TypeNum1, index) End SelectEnd Function检验添加图书类别的函数 CheckType1Private Function CheckType1(ByVal TypeName As String, index As Integer) As StringCheckType1 = Type,01,For i =

30、1 To ClMax If Client(i).index = index Then DBstr = select * from User_Info where Usr_ID= DBstr = DBstr & Replace(Client(i).UsrID, , ) & rsCheck.Open DBstr, DBCnn, adOpenStatic, adLockOptimistic If rsCheck.Fields(Usr_Type).Value = 2 Then CheckType1 = CheckType1 & 超出权限!添加类型失败! Exit Function End If rsC

31、heck.CloseExit ForEnd IfNext iDBstr = select * from Book_Type where Type_Name= & Replace(TypeName, , ) & rsCheck.Open DBstr, DBCnn, adOpenStatic, adLockOptimisticIf rsCheck.RecordCount 0 Then 已经存在 CheckType1 = CheckType1 & 该类型已存在!添加类型失败! Exit FunctionEnd IfSqlStr = INSERT INTO Book_TypeSqlStr = SqlS

32、tr & (Type_Name) SqlStr = SqlStr & VALUES ( & Replace(TypeName, , ) & );DBCnn.Execute SqlStrCheckType1 = CheckType1 & 添加类型成功!End Function检验读者借阅图书的函数 CheckLendPrivate Function checklend(ByVal RdrID As String, ByVal BkNum As Long, index As Integer) As Stringchecklend = Lend,For i = 1 To clientmax If C

33、lient(i).index = index Then DBstr = select * from User_Info where Usr_ID= DBstr = DBstr & Replace(Client(i).UsrID, , ) & rscheck.Open DBstr, DBCnn, adOpenStatic, adLockOptimistic If rscheck.Fields(Usr_Type).Value = 2 Then checklend = checklend & 超出权限!借阅图书失败! Exit Function End If Exit ForEnd IfNext i

34、DBstr = select * from Reader_Info where Rdr_ID= & Replace(RdrID, , vbNullString) & rscheck.Open DBstr, DBCnn, adOpenStatic, adLockOptimisticIf rscheck.RecordCount = 0 Then checklend = checklend & 该读者不存在!借阅图书失败! Exit FunctionEnd IfIf rscheck.Fields(Rdr_to).Value Now Then checklend = checklend & 该读者已过

35、期!借阅图书失败!Exit FunctionEnd IfDBstr1 = select * from Book_Record where Rec_RdrID= & Replace(RdrID, , vbNullString) & and Rec_ReturnTime is null and Rec_lendLimit 0 Then checklend = checklend & 你有 & ss & 本过期图书未还 & vbCrLf checklend = checklend & 借阅失败Exit FunctionEnd IfIf rscheck.Fields(Rdr_Entitle).Valu

36、e = False Thenchecklend = checklend & 该读者ID已不可用!借阅图书失败!Exit FunctionEnd IfIf rscheck.Fields(Rdr_Arrearage).Value 3 Thenchecklend = checklend & 该读者欠款已超过3元!借阅图书失败!Exit FunctionEnd IfRdrType = rscheck.Fields(Rdr_Type).ValueRdrBkTotal = rscheck.Fields(Rdr_BkTotal).ValueSelect Case RdrType Case 1 BkTotal

37、 = 1 dLimit = 1 Case 2 BkTotal = 2 dLimit = 2 Case 3 BkTotal = 3 dLimit = 3 End SelectIf RdrBkTotal = BkTotal Then checklend = checklend & 该读者借书已达最大!借阅图书失败!Exit FunctionEnd If DBstr = select * from Book_Info where Book_Num= & BkNumbook.Open DBstr, DBCnn, adOpenStatic, adLockOptimisticIf book.RecordC

38、ount 1 Thenchecklend = checklend & 您的输入有误!该图书不存在! Exit FunctionEnd If book.MoveFirstIf book.Fields(Book_Available).Value = False Then checklend = checklend & 您的输入有误!该图书已借出!Exit FunctionEnd IfdNow = Format(Now, yy - mm - dd)DateLimit = DateAdd(m, dLimit, dNow)rscheck.Fields(Rdr_BkTotal).Value = schec

39、k.Fields(Rdr_BkTotal).Value + 1book.Fields(Book_Total).Value = book.Fields(Book_Total).Value + 1book.Fields(Book_Available).Value = Falserscheck.Updatebook.Updatechecklend = checklend & 借阅图书成功! & 归还期限是 & DateLimit & , SqlStr = INSERT INTO Book_Record & (Rec_RdrID,Rec_BkNum,Rec_lendTime,Rec_lendLimit

40、) & _VALUES ( & RdrID & & , & BkNum & ,# & dNow & # & ,# & DateLimit & #);DBCnn.Execute SqlStrEnd Function检验读者归还图书的函数 CheckReturnPrivate Function checkReturn(ByVal BkNum As Long, index As Integer) As StringcheckReturn = Return, For i = 1 To clientmax If Client(i).index = index Then DBstr = select *

41、from User_Info where Usr_ID= DBstr = DBstr & Replace(Client(i).UsrID, , ) & rscheck.Open DBstr, DBCnn, adOpenStatic, adLockOptimistic If rscheck.Fields(Usr_Type).Value = 2 Then checkReturn = checkReturn & 超出权限!归还图书失败!Exit FunctionEnd IfExit ForEnd IfNext i DBstr = select * from Book_Record where Rec_BkNum= & BkNum & and Rec_ReturnTime Is Nullrscheck.Op

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1