图书管理系统 毕业论文6.doc_第1页
图书管理系统 毕业论文6.doc_第2页
图书管理系统 毕业论文6.doc_第3页
图书管理系统 毕业论文6.doc_第4页
图书管理系统 毕业论文6.doc_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图书管理系统摘 要二十一世纪是信息的社会,信息作为社会最主要的资源,将成为战略资源引起人们广泛的关注。如何获取信息?图书是我们最好的获取信息的方式,但由于图书馆图书收藏量大大增加,使传统的图书管理员的工作日益繁重起来。迫使人们起用新的管理方法来管理图书即图书管理系统。图书管理系统是典型的信息管理系统(mis),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。经过分析,使用 microsoft公司的 visual basic6.0为开发工具,利用其提供的各种面向对象的可视化开发平台作为开发工具,采用面向对象技术,图形化的应用开发环境,尤其是它有一个功能极其强大的集成环境提供级开发人员,使得开发人员可通过菜单、界面、图形浏览工具、对话框以及嵌入的各种生成器来轻松地完成各种复杂的操作。开发过程中不断修正和改进,直到形成用户满意的可行系统。关键字:图书管理 数据库 visual basic6.0 面向对象(object) 目 录第一章 需求分析11-1系统目标设计11-2本系统的开发设计思想11-3开发和运行环境选择11-4系统功能分析11-4-1读者信息的输入、修改、查询11-4-2图书信息的输入、修改、查询11-4-3用户信息的输入、修改、查询11-4-4借书、还书办理手续11-4-5全部信息的统计1第二章 系统功能设计模块22-1 系统模块图2第三章 数据库分析与设计33-1数据库系统33-2数据库系统的简介33-3数据库的设计思想33-4利用access创建数据库43-5连接数据及数据库53-6数据库公共模块6第四章 详细设计94-1用户进入模块94-2系统主界面管理模块104-3 图书管理模块104-3-1图书的添加功能模块114-3-2图书修改的功能模块124-3-3图书的删除功能模块144-4借还书管理模块154-4-1借书管理模块154-4-2还书管理模块174-5 读者资料管理模块174-5-1添加读者信息174-5-2修改读者信息174-5-3删除读者信息174-6用户信息管理模块184-6-1用户添加管理模块184-6-2用户修改管理模块184-6-3用户删除管理模块184-7统计办理业务信息18第五章 设计结论19参考资料20第一章 需求分析1-1系统目标设计通过一个图书馆管理信息系统,使图书馆的信息管理工作系统化、规范化、自动化,从而达到提高学校管理效率的目的。1-2本系统的开发设计思想系统应符合图书馆信息管理的规定,满足图书馆日常管理的工作需要,并达到操作过程中的直观、方便、实用、安全等要求;系统采用模块化程序设计方法,既便于各种数据的查询,又便于系统功能的修改,及时根据用户需求进行数据的添加、删除、修改、查询等操作。1-3开发和运行环境选择开发工具:visual basic6.0、access数据库运行环境:windows 98、windows nt或windows 2000。1-4系统功能分析1-4-1读者信息的输入、修改、查询包括:读者编号、读者姓名、家庭住址、电话号码。1-4-2图书信息的输入、修改、查询包括:图书编号、图书名称、作者姓名、出版社名称、图书价格、图书类别。1-4-3用户信息的输入、修改、查询 包括:用户编号、用户名、密码。1-4-4借书、还书办理手续包括:借书、还书信息的办理:包括读者编号、图书编号。1-4-5全部信息的统计统计的内容包括:未还图书、已还图书和所有业务。并按照读者姓名、图书书名、图书作者、图书出版社、图书分类、图书价格进行统计。第二章 系统功能设计模块2-1 系统模块图在系统功能分析的基础上,考虑visual basic6.0程序编制的特点,得到如图2.1系统功能模块如下:添加登陆界面图书资料图书管理系统借阅管理借书还书办理统计用户信息添加删除修改修改删除删除修改读者资料添加 2.1系统功能模块图第三章 数据库分析与设计3-1数据库系统数据库系统本质上是一个用计算机存储记录的系统。数据库本身可被看作为一种电子文件柜:也就是说,它是收集计算机数据文件的仓库或容器。系统用户可以对这些文件执行插入数据、检索数据、更改数据、删除数据等一系列操作。总之,数据库系统是一个计算机存储记录的系统,即它是一个计算机系统,该系统的目标存储信息并支持用户检索和更新所需要的信息。图3.1数据库系统简图3-2数据库系统的简介通过图书馆图书管理系统管理员可以简捷、方便的对图书记录查阅、增加、删除等功能,而用户也可以通过这个系统对进行图书查询、借阅、归还等功能。 该数据库应用程序按照用户权限和实现功能的不同分为两部分:外部学生对数据库的查询访问和内部管理人员对数据记录的管理维护。每一部分中包含各自实现的各项功能,对每一项功能的实现,将按照窗体设计以及运行情况的顺序逐一进行设计。本系统采用microsoft access技术建立数据库,使用vb技术建立数据源的链接,并且生成图书管理的数据库应用程序从而实现数据库的管理功能。 3-3数据库的设计思想(1) 规划阶段确定开发的总目标,给出计划开发的软件系统的功能、性能、可靠性以及接等方面的设想。 (2) 需求分析阶段认真细致地了解用户对数据的加工要求,确定系统的功能与边界。本阶段的最终结果,提供一个可作为设计基础的系统说明书,包括对软硬件环境的要求和一整套完善的数据流程图。(3) 设计阶段把需求分析阶段所确定的功能细化,主要工作是概念设计阶段、逻辑设计阶段、物理设计阶段,然后,对每个阶段内部设计详细的流程。 (4) 程序编制阶段以一种或几种特定的程序设计语言表达上一阶段确定的各模块控制流程。程序编制时应遵循结构化程序设计方法。(5) 调试阶段对已编好的程序进行单元调试(分调),整体调试(联调)和系统测试(验收)。(6) 运行和维护阶段这是整个设计周期最长的阶段,其工作重点是收集和记录系统实际运行的数据。在运行中,必须保持数据库的完整性,必须有效的处理数据故障和进行数据库恢复。同时解决开发过程的遗留问题,改正错误进行功能完善。3-4利用access创建数据库图3.1:读者包括读者编号、读者姓名、读者类别、家庭住址、电话号码等。图3.1读者数据库图3.2:图书包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期、备注信息等。 图3.2图书数据库图3.3:业务包括图书信息和借书及还书的详细信息图 3.3业务数据库图3.4:用户包括编号、用户名、密码等。 图 3.4用户数据库3-5连接数据及数据库在visual basic环境下,选择“工程”“引用”命令来连接数据,在随后出现的对话框中选择“microsoft activex data objects 2.0 library”,然后单击“确定”按钮,如图3.5所示。图3.5引用对话框在visual basic环境下,ado对象是通过odbc来访问数据库,所以还要建立odbc数据引擎接口。开控制面板中的“管理工具”“数据源”(odbc),出现如图3.6所示对话框。图3.6odbc对话框图单击“添加”按钮,出现“建新数据源”话框,如图3.7所示。3.7建新数据源对话框在”创建新数据源”对话框 选择microsoft access driver(*.mdb),单击“完成”按钮,出现如图3.8所示对话框。图3.8创建新数据源对话框设置连接数据源: 在“数据源名”文本框中添加一个名字,单击“确定”按钮完成系统默认连接设置。然后在odbc对话框中单击“确定”按钮完成odbc设置。3-6数据库公共模块模块(modado)代码:global dbcon as new adodb.connectionglobal dbrec as new adodb.recordset错误处理public function errs(err as errobject, title as string) as booleanif err.number 0 then errs = false msgbox title & vbcrlf & vbcrlf & 错误代码: & err.number & vbcrlf & 错误描述: & err.description, vbcritical + vbokonly, 错误信息 err.clearelse errs = trueend ifend function连接数据库public function con2srv() as booleanon error resume next常规方法打开数据库文件dbcon.connectionstring=provider=microsoft.jet.oledb.4.0;datasource=bm.mdb;persist security info=falsedbcon.open con2srv = errs(err, 数据库连接失败!)end function查询数据库public function query(sql as string) as booleanon error resume nextset dbrec = new recordsetcall dbrec.open(sql, dbcon, adopendynamic, adlockoptimistic, -1)query = errs(err, 数据库查询失败!)end function关闭数据库public function discon() as booleanon error resume nextif dbcon.state = adstateopen then dbcon.closediscon = trueend function模块(modbm)部分代码:选中文本框的内容public function textfocus(text as textbox)text.selstart = 0text.sellength = len(text.text)end function向列表框添加项目public function cbolist(cbo as combobox, sql as string)on error resume nextdim dbreclist as new recordsetcbo.clearcall dbreclist.open(sql, dbcon, adopendynamic, adlockoptimistic, -1)if errs(err, 数据库查询失败!) = true then while not dbreclist.eof cbo.additem dbreclist.fields(0).value dbreclist.movenext wendend ifdbreclist.closeend function向网格添加信息public function msglist(msg as msflexgrid, dbrec as adodb.recordset) as integeron error resume nextmsg.rows = 1msg.cols = dbrec.fields.countmsg.row = 0for i = 0 to dbrec.fields.count - 1 msg.col = i msg.text = dbrec.fields(i).name msg.cellalignment = 4 msg.colwidth(i) = dbrec.fields(i).definedsize * 100 if msg.colwidth(i) 1000 then msg.colwidth(i) = 1000next idbrec.movefirstwhile not dbrec.eof msg.additem empty msg.row = msg.rows - 1 msg.rowdata(msg.row) = dbrec.fields(0).value for i = 0 to dbrec.fields.count - 1 msg.col = i msg.text = dbrec.fields(i).value if msg.text like true then msg.text = 已借 elseif msg.text like false then msg.text = 未借 end if msg.cellalignment = 4 next i dbrec.movenext msglist = msglist + 1wendend function第四章 详细设计4-1用户进入模块通过输入用户名和密码进行登陆。界面如下:图4.1 登陆界面程序如下:private sub command1_click() 输入用户名和密码 dim sql as stringdim rs_login as new adodb.recordsetdim conn as new adodb.connectionconn.open provider=microsoft.jet.oledb.4.0; data source= & app.path & bm.mdb if trim(text1.text) = then msgbox 用户名不能为空,请重新输入! text1.setfocus else sql = select * from 用户 where 用户名= & trim(text1.text) & rs_login.open sql, conn, adopenkeyset, adlockpessimistic if rs_login.eof = true then msgbox 没有这个用户,请重输入!, vbokonly + vbexclamation, text1.text = text2.text = text1.setfocus else username = text1.text if trim(rs_login.fields(1) = trim(text2.text) then unload me frmmain.show else msgbox 密码不正确,请重输入!, vbokonly + vbexclamation, text2.setfocus text2.text = end if end if end if cnt = cnt + 1 if cnt = 3 then unload me end ifend subprivate sub command2_click()unload meend sub界面分析和功能:在代码中要求输入正确的用户、密码才可以进去。输入的用户密码在属性passwordchar中设置了用*。4-2系统主界面管理模块主界面(frmmain)如下图:图4.2 主界面主界面包括图书资料、读者资料、用户信息、借还书信息以及统计等功能。并且利用toolbar工具加入按钮使其进行快速查找。利用statusbar的属性填写个人的基本信息及对日期和时间进行设置。4-3 图书管理模块图书管理模块主要功能是实现图书的添加、删除以及修改。4-3-1图书的添加功能模块界面如下:图4.3 图书添加界面程序代码如下:private sub cbo_gotfocus()call cbolist(cbo, select 分类 from 图书 group by 分类)end subprivate sub cmd_click(index as integer)select case indexcase 2 addbookcase 3 unload meend selectend subfunction addbook()if not (text(1).text = empty or text(2).text = empty or text(3).text = empty or _text(4).text = empty or cbo.text = empty) then if query(select * from 图书 where 书名 like & text(1).text & _ and 作者 like & text(2).text & and 出版社 like & text(3).text & ) = true then if msglist(msg, dbrec) = 0 then dbrec.addnew for i = 1 to 4 dbrec.fields(i).value = text(i).text next i dbrec.fields(5).value = cbo.text dbrec.update call msglist(msg, dbrec) msgbox 资料添加成功!, vbinformation, 图书管理系统 msgbox 请将表格中显示的图书编号填写在标签上,并贴到图书的书脊上! & vbcrlf & 这是此书在数据库中的唯一编号!, vbinformation, 图书管理系统! for i = 1 to 4 text(i).text = empty next i cbo.clear else msgbox 数据库中已有该书的资料,请确认!, vbcritical, 图书管理系统 end if end ifelse msgbox 图书资料未填完整!, vbcritical, 图书管理系统end iftext(1).setfocusend functionprivate sub text_change(index as integer)text(index).text = trim(text(index).text)end subprivate sub text_gotfocus(index as integer)call textfocus(text(index)end subprivate sub text_keypress(index as integer, keyascii as integer)if index = 0 or index = 4 then keyascii = num(keyascii)end sub4-3-2图书修改的功能模块界面如下:图4.4 图书修改界面程序代码如下:private sub cbo_gotfocus()call cbolist(cbo, select 分类 from 图书 group by 分类)end subprivate sub cmd_click(index as integer)select case indexcase 0 if queryint(select * from 图书 where 图书编号=, text(0), msg) = true then cmd(1).enabled = true cmd(1).setfocus end ifcase 1 enableedit dbrec.movefirst for i = 1 to 4 text(i).text = dbrec.fields(i).value next i cbo.text = dbrec.fields(5).valuecase 2 modbookcase 3 unload meend selectend subfunction modbook()dim i as integerif not (text(1).text = empty or text(2).text = empty or text(3).text = empty or _ text(4).text = empty or cbo.text = empty) then dbrec.movefirst for i = 1 to 4 dbrec.fields(i).value = text(i).text next i dbrec.fields(5).value = cbo.text dbrec.update call msglist(msg, dbrec) msgbox 资料修改成功, vbinformation, 图书管理系统 for i = 1 to 4 text(i).text = empty next i cbo.text = empty unenableedit text(0).text = emptyelse msgbox 图书资料未填完整!, vbcritical, 图书管理系统end ifend functionprivate sub text_change(index as integer)text(index).text = trim(text(index).text)end subprivate sub text_gotfocus(index as integer)call textfocus(text(index)end subprivate sub text_keypress(index as integer, keyascii as integer)if index = 0 or index = 4 then keyascii = num(keyascii)end subfunction enableedit()dim i as integerfor i = 1 to 4 text(i).enabled = true lbl(i).enabled = truenext ilbl(5).enabled = truecbo.enabled = truecmd(0).enabled = falsecmd(1).enabled = falsecmd(2).enabled = truetext(0).enabled = falselbl(0).enabled = falsecmd(2).default = truetext(1).setfocusend functionfunction unenableedit()dim i as integerfor i = 1 to 4 text(i).enabled = false lbl(i).enabled = falsenext ilbl(5).enabled = falsecbo.enabled = falsecmd(0).enabled = truecmd(1).enabled = falsecmd(2).enabled = falsetext(0).enabled = truelbl(0).enabled = truecmd(0).default = truetext(0).setfocusend function4-3-3图书的删除功能模块界面如下:图4.5 图书删除界面程序代码如下:private sub cmd_click(index as integer)select case indexcase 2 delbookcase 3 unload meend selectend subfunction delbook()if queryint(select * from 图书 where 图书编号=, text(0), msg) = true then if msgbox(真的要删除图书资料吗?, vbquestion + vbyesno, 图书管理系统2008) = vbyes then dbrec.movefirst dbrec.delete dbrec.update call msglist(msg, dbrec) msgbox 资料已经删除, vbinformation, 图书管理系统2008 text(0).text = empty end ifend ifend functionprivate sub text_change(index as integer)text(index).text = trim(text(index).text)end subprivate sub text_gotfocus(index as integer)call textfocus(text(index)end subprivate sub text_keypress(index as integer, keyascii as integer)if index = 0 or index = 4 then keyascii = num(keyascii)end sub4-4借还书管理模块借还书管理模块主要实现借书业务和还书业务。4-4-1借书管理模块界面如下:图4.6借书管理界面程序代码如下:private sub cmd_click(index as integer)select case indexcase 0 borrowbookcase 1 unload meend selectend subfunction borrowbook()if queryint(select * from 读者 where 读者编号=, text(0), msg(0) = true then dbrec.movefirst if dbrec.fields(dbrec.fields.count - 1) = false then if queryint(select * from 图书 where 图书编号=, text(1), msg(1) = true then dbrec.movefirst if dbrec.fields(dbrec.fields.count - 1) = false then if query(select * from 业务 where 业务编号=0) = true then dbrec.addnew dbrec.fields(1).value = val(text(0).text) dbrec.fields(2).value = val(text(1).text) dbrec.fields(3).value = date dbrec.update if query(select * from 读者 where 读者编号= & val(text(0).text) = true then dbrec.fields(dbrec.fields.count - 1).value = true dbrec.update call msglist(msg(0), dbrec) end if if query(select * from 图书 where 图书编号= & val(text(1).text) = true then dbrec.fields(dbrec.fields.count - 1).value = true dbrec.update call msglist(msg(1), dbrec) end if msgbox 业务办理成功!, vbinformation, 图书管理系统 text(0).text = empty text(1).text = empty end if else 图书已经借出 msgbox 该书已经借出!, vbcritical, 图书管理系统 end if end if else 读者业务状态为已借 call queryint(select t.业务编号,t.读者编号,r.姓名,t.图书编号,b.书名,t.借出日期 from 业务 as t,图书 as b,读者 as r where t.图书编号=b.图书编号 and b.业务状态=true and t.读者编号=r.读者编号 and t.读者编号=, text(0), msg(1) msgbox 该读者尚有图书未还!不能办理新的借书业务!, vbcritical, 图书管理系统 end ifend iftext(0).setfocusend functionprivate sub text_change(index as integer)text(index).text =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论