




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
福州教育学院 ( )届毕业论文(设计)题 目: 系 部: 专业(方向): 学 号: 姓 名: 提 交 日 期: 指导教师及职称: 25图书管理系统计算机系 初等教育(信息技术)专业 2009届 xxx指导教师:福建教育学院 xxx摘要信息化的来临,面对激烈的市场竞争,在当今信息社会,各行各业都离不开信息处理,计算机的运用越来越广泛,信息管理水平越来越高。图书馆也不再局限于人工手动管理,电子图书馆越来越受青睐。本系统的设计,就是为了方便读者进行图书借阅,方便管理员管理图书信息。本系统采用vb6.0和access两个软件制作图书管理系统,提高了管理员的管理效率,图书借阅与归还也更加简便、快捷。 关键字:图书管理系统 信息 数据库 access visual basic 6.0目录摘要. 11、引言11.1选题的目的、意义12、图书管理系统开发相关技术介绍12.1 visual basic 6.0介绍12.2 access 介绍23、系统总体设计分析23.1系统需求分析23.2系统实现的目标33.3系统的功能结构图33.4系统的功能模块设计34、 系统总体结构设计44.1、数据库概念结构设计44.2、数据库逻辑结构设计45、图书管理系统详细设计65.1身份登录65.2主界面85.3读者信息管理95.4图书信息管理125.5图书借阅管理175.6系统管理216、期间遇到的问题226.1 建立数据库236.2 vb如何与access连接236.3 很多控件不知道怎么用237、不足之处238、结论24参考文献.24 正文内容: 1、引言很多图书馆之前由于读者较少,藏书较少等原因,对图书的信息需求不高。随着社会的信息化发展,图书的数量越来越多,种类越来越多样化,因此对信息的需求越来越高,这就有必要建立一个易于管理、易于操作且更加规范的图书管理系统。1.1选题的目的、意义社会的发展,科技的进步,信息技术的广泛应用,数字化管理成为是现代社会的发展趋势。对于学校图书馆,图书馆的规模越来越大,如果局限于人工手动管理,拿着一本记录本,一本书一本书的登记借阅,一个读者一个读者的登记信息,数据量大,严重浪费时间、精力,而且容易出错。像这样中小型的图书馆,为了节约人力物力就有必要建立一个图书管理系统,通过计算机,对馆内图书信息及读者信息进行管理,极大得提高了工作效率,而且查找简便,存储容量大,成本又低,是个很好的选择。2、图书管理系统开发相关技术介绍2.1 visual basic 6.0介绍 vb6.0是在basic语言上发展而来的,以可视化工具进行界面设计,以结构化basic语言为基础,以事件驱动为运行机制。是目前最流行的程序设计语言之一。visual basic 6.0具有以下几个功能:(1)具有面向对象的可视化设计工具;(2)具有事件驱动的编程机制;(3)提供了易学易用的应用程序集成开发环境;(4)提供了结构化的程序设计语言;(5)支持多种数据库系统的访问;(6)采用了ole技术;(7)采用了activex技术;(8)新增很多实用控件。2.2 access 介绍本系统使用access进行数据库的创建,access是microsoft推出的office系列的办公室自动化软件中用于数据库管理。它可以接受和转换多种文件格式的数据,并且能够方便的对现存数据库系统进行扩展和升级。它是一个中、小型的数据库管理系统,它的数据库文件储存于*.mdb文件中,数据的输入、查询非常简便。可以高效地进行数据库开发和管理工作。它具有以下特点:(1)完整的数据库管理功能access提供了一套用于组织数据、建立查询、共享数据等功能,这些功能可以完成管理的各项工作。(2)高度智能化的向导功能从创建窗体、报表中的各种控件,到创建access表、查询、数据页等基本对象,都可以使用向导功能,在向导的帮助下,很多复杂的工作也变得简单。(3)方便操作的图形界面access的图形界面是标准的windows窗口形式,独具特色的图形化查询设计,使原来需要编写大量代码的工作也只需拖动鼠标就可以完成。3、系统总体设计分析3.1系统需求分析系统需求分析工作是系统生命周期中重要的一个环节,也是决定性的一步。只有经过系统需求分析,才能了解用户对系统的功能和性能的要求,并将其转换为具体的需求规格说明,为系统的设计打下基础。调查发现,现代的人们希望图书馆完成的不仅仅是借书和还书的功能,而更多的是对图书和借阅者信息的管理,因为这些信息管理起来相对麻烦,比较浪费时间精力,效率不高又容易出错,所以有必要让这些繁琐的程序通过计算机来执行。本系统的图书管理涉及图书信息、读者信息、图书借阅、系统管理等管理功能,实现基本的用户需求。3.2系统实现的目标本图书管理系统设计目的是实现图书管理的系统化、自动化,帮助图书管理人员更好更有效地完成图书管理工作。(1)强大的查询功能,查询灵活(2)操作界面简洁,易于用户操作(3)数据存储具有安全性和可靠性(4)管理员和一般会员身份区别清晰,权限清晰(5)实现图书借阅与归还的全程数据信息追踪3.3系统的功能结构图图31图书管理系统功能结构图3.4系统的功能模块设计 3.4.1 图书管理部分 图书信息管理主要实现图书的录入、查询,图书信息的修改。一般会员可以方便地查询馆内图书信息,即馆内藏书以及是否被借出,界面简洁,容易操作。图书的录入和信息的修改只能由管理员来实现,管理员可以在登录后对馆内图书的信息记录进行修改,包括图书类别的添加与删除、修改,图书信息的添加、修改等,操作简单,方便管理员对图书的管理。 3.4.2 读者管理部分 读者信息管理主要实现对读者信息的查询、修改等功能,一般会员同样只能查询读者的信息,读者可以查询自己借了哪些书,何时借的,以便在规定时间内可以归还所借图书。修改功能只能在管理员权限下才可操作,管理员可以添加读者信息,修改读者信息,确保管理系统录入的都是读者的最新信息,可以在需要的时候联系到借阅者。 3.4.3借阅管理部分 图书的借阅管理全部由管理员操作,一般会员是没有权限的。包括图书的借阅与归还等操作,以及帮助统计已借出书与馆内存书情况。管理员可以通过录入读者的信息和图书的信息、借阅日期等来实现对图书的借阅,同样的,录入图书和读者信息、还书日期实现还书。 3.4.4系统管理部分 系统管理功能也只能在管理员的权限下才可操作,管理员可以在登录账户后,进行添加会员和账户密码的修改。4、 系统总体结构设计4.1、数据库概念结构设计数据库是存放数据的仓库,只不过这个仓库是建在计算机存储设备上的,而且数据按照一定的格式存放。也就是说数据库是长期存储在计算机内的、有组织的、可共享的数据集合。数据库概念结构设计是整个数据库设计的又一个关键,它通过对用户需求进行综合、归纳与抽象,形成于独立于具体的概念模型。4.2、数据库逻辑结构设计逻辑结构设计是将概念结构转换成dbms能够接受的数据模型,并对其优化。4.2.1图书信息实体属性首先,一个图书馆最重要的就是对馆内图书的管理,所以要创建一个关于图书信息的数据表。图41图书信息实体属性图4.2.2读者信息实体属性再者就是对图书馆的用户进行信息的存储,需要存储读者的详细信息,这也是图书管理必不可少的一部分。图42读者信息实体属性图4.2.3借阅信息实体属性然后就是图书管理系统中的图书借阅与归还,需要将读者信息与图书信息联系起来,图书借阅与归还是图书管理最重要的环节。图43借阅信息实体属性图4.2.4读者类别实体属性读者类别用来记录读者的分类及其具有的权限。图44读者类别实体属性图4.2.5图书类别实体属性图书类别主要用于管理员对图书的管理工作,方便查找与整理。图45图书类别实体属性图4.2.6用户实体属性用户实体是用于用户第一次在本图书馆借阅浏览,需先注册一个账号,方便之后的借阅与归还操作。图46用户实体属性图5、图书管理系统详细设计 5.1身份登录本系统设计登录的身份分为管理员与会员。注册过的用户使用账号密码登录,选择身份进入管理员或者会员的界面,进行一系列的操作。这个界面的设计只是用了简单的几个控件:commandbutton(按钮)、textbox(文本框)、label(标签)具体代码:option explicitdim cnt as integer 记录确定次数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 & library.mdbif trim(text1.text) = then msgbox 用户名不能为空,请重新输入! text1.setfocus else sql = select * from 用户表 where user_id= & trim(text1.text) & rs_login.open sql, conn, adopenkeyset, adlockpessimistic if rs_login.eof = true then msgbox 没有这个用户,请重输入!, vbokonly + vbexclamation, text1.text = text1.setfocus else username = text1.text if trim(rs_login.fields(1) = trim(text2.text) then if combo1.text = 管理员 then unload me 管理员.show else unload me 会员.show end if 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 form_load()cnt = 0end sub5.2主界面主界面有两个,管理员和会员的界面。这里运用到菜单编辑器,使用菜单编辑器可以在当前窗口添加菜单栏,方便使用者选择系统的各种功能。菜单编辑器可以通过单击工具栏中的“菜单编辑器”按钮打开其对话框,也可以通过菜单栏中的“工具”菜单“菜单编辑器”打开。需要注意的是,其中必须要填的是“标题”和“名称”。关键代码:private sub bzxx_click() on error goto errb 打开帮助文件 dlgcommondialog.helpcommand = &hb& dlgcommondialog.showhelperrb:end sub5.3读者信息管理读者信息管理主要包括读者信息的查询与修改。5.3.1查询读者信息 查询读者信息的界面运用了更多的控件:datagrid combo1 check 等,利用datagrid控件列出所要查询的信息,如果是刚安装的vb在工具箱中是找不到这个控件的,需要在“工程”菜单中点击“部件”打开部件对话框,在其中勾选“microsoft datagrid control 6.0(sp6)(oledb)”,点击“确定”,这样控件就会显示在工具箱中了,直接使用就可以了。关键代码:private sub command1_click()if check1.value = vbchecked then sql = 读者编号= & trim(text1.text & ) & end ifif check2.value = vbchecked then if trim(sql) = then sql = 读者姓名= & trim(text2.text & ) & else sql = sql & and 读者类别= & trim(text2.text & ) & end ifend ifsql = select * from 读者信息 where & sqlrs_findreader.cursorlocation = aduseclientrs_findreader.open sql, conn, adopenkeyset, adlockpessimisticdatagrid1.allowaddnew = falsedatagrid1.allowdelete = falsedatagrid1.allowupdate = falseend sub5.3.2修改读者信息关键代码:private sub command1_click() dim answer as string on error goto command1 command2.enabled = false command1.enabled = false command3.enabled = true command4.enabled = true datagrid1.allowupdate = true exit sub command1: if err.number 0 then msgbox err.description end ifend subprivate sub form_load() sql = select * from 读者信息 rs_reader.cursorlocation = aduseclient rs_reader.open sql, conn, adopenkeyset, adlockpessimisticcommand3.enabled = false command4.enabled = false datagrid1.allowaddnew = false datagrid1.allowdelete = false datagrid1.allowupdate = false set datagrid1.datasource = rs_reader exit subloaderror: msgbox err.descriptionend subprivate sub form_unload(cancel as integer) set datagrid1.datasource = nothing rs_reader.closeend sub5.3.3添加读者类别关键代码:private sub command1_click() dim rs_readerstyle as new adodb.recordset if trim(text1.text) = then msgbox 读者种类不能为空 , vbok0nly + vbexclamation, text1.setfocus exit sub end if if trim(text2.text) = then msgbox 借书数量不能为空, vbok0nly + vbexclamation, text2.setfocus exit sub end if if trim(text3.text) = then msgbox 借书期限不能为空, vbok0nly + vbexclamation, text3.setfocus exit sub end if sql = select * from 读者类别 where 种类名称= & text1.text & rs_readerstyle.open sql, conn, adopenkeyset, adlockpessimistic if rs_readerstyle.eof then rs_readerstyle.addnew rs_readerstyle.fields(0) = trim(text1.text) rs_readerstyle.fields(1) = trim(text2.text) rs_readerstyle.fields(2) = trim(text3.text) rs_readerstyle.update msgbox 添加读者类别成功!, vbokonly, rs_readerstyle.close else msgbox 读者类别重复!, vbokonly + vbexclamation, text1.setfocus text1.text = rs_readerstyle.close exit sub end if end sub5.4图书信息管理 5.4.1添加图书类别关键代码:private sub command1_click()dim rs_bookstyle as new adodb.recordset if trim(text1.text) = then msgbox 图书种类不能为空 , vbok0nly + vbexclamation, text1.setfocus exit sub end ifsql = select * from 图书类别 where 类别名称= & text1.text & rs_bookstyle.open sql, conn, adopenkeyset, adlockpessimistic if rs_bookstyle.eof then rs_bookstyle.addnew rs_bookstyle.fields(0) = trim(text1.text) rs_bookstyle.fields(1) = trim(text2.text) rs_bookstyle.update msgbox 添加图书类别成功!, vbokonly, rs_bookstyle.close else msgbox 图书类别重复!, vbokonly + vbexclamation, text1.setfocus text1.text = rs_bookstyle.close exit subend ifend sub5.4.2修改图书类别关键代码:private sub command2_click() dim answer as string answer = msgbox(确定要删除吗?, vbyesno, ) if answer = vbyes then datagrid1.allowdelete = true rs_reader.delete rs_reader.update datagrid1.refresh else exit sub end ifend subprivate sub form_load() on error goto loaderror sql = select * from 图书类别 rs_reader.cursorlocation = aduseclient rs_reader.open sql, conn, adopenkeyset, adlockpessimisticcommand3.enabled = false command4.enabled = false datagrid1.allowaddnew = false datagrid1.allowdelete = false datagrid1.allowupdate = false set datagrid1.datasource = rs_reader exit subloaderror: msgbox err.descriptionend sub5.4.3添加图书信息 关键代码:private sub form_load()dim rs_leibie as new adodb.recordsetdim conn as new adodb.connectiondim sql as stringconn.open provider=microsoft.jet.oledb.4.0; data source= & app.path & library.mdbsql = select * from 图书类别rs_leibie.open sql, conn, adopenkeyset, adlockpessimisticrs_leibie.movefirstdo while not rs_leibie.eof combo1.additem rs_leibie.fields(0) rs_leibie.movenextlooprs_leibie.closeend sub 5.4.4查询图书信息 关键代码:private sub command1_click()if option2.value = true then sql = select * from 图书信息 where 是否被借出=是 end if if option3.value = true then sql = select * from 图书信息 where 是否被借出=否 end if if option1.value = true and text1.text then sql = select * from 借阅信息 where 读者姓名= & text1.text & elseif option1.value = true and text1.text = then msgbox 请输入读者姓名!, vbokonly + vbexclamation text1.setfocus exit sub end if rs_find.cursorlocation = aduseclient rs_find.open sql, conn, adopenkeyset, adlockpessimistic datagrid1.allowaddnew = false datagrid1.allowdelete = false datagrid1.allowupdate = false set datagrid1.datasource = rs_findend sub 5.4.5修改图书信息 关键代码:private sub form_load() sql = select * from 图书信息 rs_book.cursorlocation = aduseclient rs_book.open sql, conn, adopenkeyset, adlockpessimisticcommand3.enabled = false command4.enabled = false datagrid1.allowaddnew = false datagrid1.allowdelete = false datagrid1.allowupdate = false set datagrid1.datasource = rs_book exit subloaderror: msgbox err.descriptionend sub5.5图书借阅管理 5.5.1借书管理关键代码:option explicitdim panduan as stringif check1.value = vbchecked then sql = 图书名称 like % & trim(text1.text & ) & %end ifif check2.value = vbchecked then if trim(sql) = then sql = 图书类别 like % & trim(combo1.text & ) & % else sql = sql & and 图书类别 like % & trim(combo1.text & ) & % end ifend ifif check3.value = vbchecked then if trim(sql) = then sql = 图书作者 like % & trim(text2.text & ) & % else sql = sql & and 图书作者 like % & trim(text2.text & ) & % end ifend ifif check4.value = vbchecked then if trim(sql) = then sql = 图书编号 like% & trim(text3.text & ) & % else sql = sql & and 图书编号 like% & trim(text3.text & ) & % end ifend ifif check5.value = vbchecked then if trim(sql) = then sql = 出版社 like % & trim(text4.text & ) & % else sql = sql & and 出版社 like % & trim(text4.text & ) & % end ifend ifif trim(sql) = then msgbox 请选择查询方式!, vbokonly + vbexclamation exit subend ifsql = select * from 图书信息 where & sqlrs_findbook.cursorlocation = aduseclientrs_findbook.open sql, conn, adopenkeyset, adlockpessimisticdatagrid1.allowaddnew = falsedatagrid1.allowdelete = falsedatagrid1.allowupdate = falseif rs_findbook.recordcount = 0 then msgbox 查询不到该图书信息!, vbokonly + vbexclamationelse set datagrid1.datasource = rs_findbookend ifend subprivate sub datagrid1_rowcolchange(lastrow as variant, byval lastcol as integer) book_num = datagrid1.columns(0).cellvalue(datagrid1.bookmark) panduan = datagrid1.columns(1).cellvalue(datagrid1.bookmark)end subprivate sub form_load() dim rs_find as new adodb.recordset dim conn as new adodb.connection dim sql as string sql = select * from 图书类别 conn.open provider=microsoft.jet.oledb.4.0; data source= & app.path & library.mdb rs_find.open sql, conn, adopenkeyset, adlockpessimistic rs_find.movefirst if not rs_find.eof then do while not rs_find.eof combo1.additem rs_find.fields(0) rs_find.movenext loop combo1.listindex = 0 end if rs_find.close end sub5.5.2还书管理关键代码:private sub combo1_click() combo2.listindex = combo1.listindexend subprivate sub combo2_click() combo1.listindex = combo2.listindexend subprivate sub command1_click() dim rs_reader as new adodb.recordset dim conn as new adodb.connection dim sql as string findform = false sql = select * from 借阅信息 where 读者姓名 = & combo2.text & conn.open provider=microsoft.jet.oledb.4.0; data source= & app.path & library.mdb rs_reader.cursorlocation = aduseclient rs_reader.open sql, conn, adopenkeyset, adlockpessimistic set datagrid1.datasource = rs_reader datagrid1.allowaddnew = false datagrid1.allowupdate = false datagrid1.allowdelete = false end subprivate sub command3_click() dim book_number as string dim reader_number as string dim answer as string dim rs_back as new adodb.recordset dim conn as new adodb.connection dim sql as string conn.open provider=microsoft.jet.oledb.4.0; data source= & app.path & library.mdb book_number = datagrid1.columns(3).cellvalue(datagrid1.bookmark) reader_number = datagrid1.columns(1).cellvalue(datagrid1.bookmark) answer = msgbox(确定要还这本书吗?, vbyesno, ) if answer = vbyes then sql = select * from 借阅信息 where 图书编号 = & book_number & 删除这本书在借阅信息中的记录 rs_back.cursorlocation = aduseclient rs_back.open sql, conn, adopenkeyset, adlockpessimistic rs_back.delete rs_back.update rs_back.close sql = select * from 图书信息 where 图书编号 = & book_number & rs_back.cursorlocation = aduseclient rs_back.open sql, conn, adopenkeyset, adlockpessimistic rs_back.fields(8) = 否 rs_back.update rs_back.close sql = select * from 读者信息 where 读者编号 = & reader_number & rs_back.cursorlocation = aduseclient rs_back.open sql, conn, adopenkeyset, adlockpessimistic rs_back.fields(8) = rs_back.fields(8) - 1 rs_back.update rs_back.close msgbox 成功删除!, vbokonly + vbexclamation, datagrid1.allowdelete = false else exit sub end ifend subprivate sub form_load()dim rs_reader as new adodb.recordsetdim conn as new adodb.connectiondim rs_book as new adodb.recordsetdim sql as stringsql = select * from 读者信息conn.open provider=microsoft.jet.oledb.4.0; data source= & app.path & library.mdbrs_reader.cursorlocation = aduseclientrs_reader.open sql, conn, adopenkeyset, adlockpessimisticif not rs_reader.eof then do while not rs_reader.eof combo1.additem rs_reader.fields(1) combo2.additem rs_reader.fields(0) rs_reader.movenext loopend ifrs_reader.closesql = select * from 借阅信息rs_book.cursorlocation = aduseclientrs_book.open sql, conn, adopenkeyset, adlockpessimisticif not rs_book.eof then do while not rs_book.eof combo3.additem rs_book.fields(3) combo4.additem rs_book.fields(4) rs_book.movenext loopend ifend sub5.6系统管理 5.6.1添加用户关键代码:private sub command1_click()if trim(text1.text) = then msgbox 用户名不能为空,请输入!, vbokonly + vbexclamation, text1.setfocus else sql = select * from 用户表 rs_add.open sql, conn, adopenkeyset, adlockpessimistic while (rs_add.eof = false) if trim(rs_add.fields(0) = trim(text1.text) then msgbox 已有这个用户, vbokonly + vbexclamation, text1.setfocus exit sub else rs_add.movenext end if wend end ifend sub 5.6.2更改密码关键代码:private sub command1_click() if trim(text1.text) trim(text2.text) then msgbox 密码不一致!, vbokonly + vbexclamation, text1.setfocus text1.text = text2.text = exit sub else sql = select * from 用户表 where user_id= & username & rs_mima.open sql, conn, adopenkeyset, adlockpessimistic rs_mima.fields(1) = text1.text rs_mima.update msgbox 密码修改成功, vbokonly + vbexclamation, unload me end ifend sub6、期间遇到的问题 由于对vb这个软件熟悉程度不够深,在制作图书管理系统的过程中遇到了很多问题。6.1 建立数据库 刚开始着手准备前,虽然也查阅过很多书籍,上网了解过图书管理系统的数据库建立,但是,真正开始
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房车改装合同协议书模板
- 购房合同出现第三方协议
- 桥梁拆复建劳务合同范本
- 铁路工程施工合同协议书
- 债权转股权协议合同范本
- 金坛区绿化租赁合同范本
- led广告维修合同范本
- 合同续签一年的补充协议
- 报废锅炉拆除安全协议书
- 1871年伦敦协议书
- 成人脑室外引流护理标准解读
- 算法认识与体验(教学设计)-2024-2025学年人教版(2024)小学信息技术五年级全一册
- 2025年水利工程监理员网络培训考试试题与答案
- 初三化学上教学工作方案
- 微生物实验安全知识培训课件
- 建筑结构及选型
- 质量管理统计工具(共102页).ppt
- (完整版)PHQ-9抑郁症筛查量表
- 场记单模板(共20页)
- 食物频率法问卷调查FFQ
- FOXBORO__IA_高级培训
评论
0/150
提交评论