《vb设计说明书》doc版.docx

上传人:b****3 文档编号:27281672 上传时间:2023-06-28 格式:DOCX 页数:13 大小:23.25KB
下载 相关 举报
《vb设计说明书》doc版.docx_第1页
第1页 / 共13页
《vb设计说明书》doc版.docx_第2页
第2页 / 共13页
《vb设计说明书》doc版.docx_第3页
第3页 / 共13页
《vb设计说明书》doc版.docx_第4页
第4页 / 共13页
《vb设计说明书》doc版.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

《vb设计说明书》doc版.docx

《《vb设计说明书》doc版.docx》由会员分享,可在线阅读,更多相关《《vb设计说明书》doc版.docx(13页珍藏版)》请在冰豆网上搜索。

《vb设计说明书》doc版.docx

《vb设计说明书》doc版

《vb设计说明书》doc版

《vb设计说明书》doc版摘要本文档介绍了基于VB6.0+ADO+ACCESS的图书信息管理系统的实现方法。

该系统针对目前一些中小型图书馆采用手工的方式管理,劳动强度大、图书资源不能充分发挥作用的问题而设计。

通过合理地使用本系统,用户可以轻松地完成图书信息的入库、更正、读者的录入、注销和修改,并能处理书籍出借、归还等操作,用户还能对图书信息、读者信息、图书出借情况等进行查询。

该系统的开发及应用为图书管理提供了灵活、方便、安全的管理工具。

关键词:

VB6.0,数据库,信息管理一、选题背景1.1、图书馆信息化管理的必要性1.1.1、学校中小型图书馆普及的需要:

随着学校基本硬件条件的提高,现在绝大多数中小学校都有了自己的图书馆。

图书馆管理的信息化可以减少人力资源的浪费,可以使少量的人员就可以承担好图书馆的日常工作的任务。

1.1.2、进一步提高图书馆工作服务质量,充分发挥图书资源优势的需要:

目前,一些中小规模的图书馆还是继续采用借书证+图书卡片+手工登记操作的方式进行管理。

工作人员在日常工作中要面对图书、读者等枯燥资料的大量重复操作,并且靠手工进行有关数据的统计很困难,而且在实际工作中会由于人工处理的疏漏、不慎造成一定的问题,整体上讲,原始的图书管理方法一定程度上导致了工作效率无法进一步提高。

为了能更好的为教育服务,把握好学生们的需求,做好服务工作,图书管理的信息化是一条切实可行的改革之路。

1.1.3、数据可维护性、安全性的需要:

原始的手工管理图书馆的方式,要整理图书馆的图书、读者、进出库信息都相当困难,而且手写的数据一旦被毁,要重新整理就相当不容易。

图书管理的信息化,可以使有关数据的统计可以轻松、精确实现,而且数据的备份、恢复也很容易,只要有良好的操作习惯,遇到怎样的数据灾难都可以从容应对。

1.2、图书馆信息化管理技术上的可行性1.2.1、硬件平台的条件容易被满足:

计算机硬件技术的飞速发展使计算机的硬件不再昂贵,即使是大部分乡下的普通中小学也同样可以承担这项费用。

1.2.2、图书信息简易管理的软件编制难度也降低:

随着编程工具不断的推陈出新、更新换代,利用新的编程语言,借助于可视化编程技术、高效的数据库处理工具,编制信息管理系统的难度也有所降低,再也不会像以前DOS下编程那么艰难,而且软件的调试、维护的成本也会同样降低下来。

所以,管理的信息化应该进一步地普及开来,充分地发挥好它的作用,特别是在图书馆这样的信息“中心”。

1.3、图书馆信息化管理系统应实现的几个目标:

1.3.1、方便信息管理:

要让信息能方便地输入系统、更正容易,且易于维护,也要实现信息检索查询方便,基本报表能够提供,提高管理效能的目的。

1.3.2、保证数据的有效性:

由于图书信息管理系统包含了图书馆的比较重要的信息,因此,在系统设计时除了满足用户需求的同时,也要保证系统数据的有效性:

(1)安全性:

通过密码的身份验证后才能访问系统的数据,否则就不能进入系统;

(2)一致性:

系统的数据要保证一致性、准确性,当某一数据库中记录改变,与之相关联的数据库也随之变化。

(3)可靠性:

由于实际工作中数据量大,必须能对数据快速的进行备份与恢复。

二、方案论述2.1、方案选择:

从系统开发规模、方向的选择上,图书信息管理系统有分为大型的图书管理系统和小型图书管理系统,前者的特点是支持网络环境,有分服务器、客户端,能够支持海量的数据存储、处理的信息管理系统;后者的特点是单机的,数据量不太大的信息管理系统。

考虑到这个程序是提供给中小型的图书馆进行信息管理用的,并没有要求网络环境,所以我选择编制小型的图书信息管理系统。

2.2、数据库格式的选择:

我们最熟悉的是应用非常广泛的DBF数据库,使用相当简单,性能还可以,但是每个Table或Index都是一个独立的文件,数据库变大、Table表多了后,管理上就不太方便,最关键的是其安全性较差。

而微软的Access数据库则不同了,所有的表、文件都被整合在一个.mdb文件中,这样就有利于管理。

同时它还提供密码保护功能,安全性比DBF数据库要好得多。

Access数据库还擅长于对多媒体数据的支持,在对图像、声音等对象进行处理时,比DBF数据库强很多。

综上考虑,为了有利于管理、提高数据安全性、我在数据库格式上选择了Access(选用这个格式也有利于将来程序的进一步开发,因为程序最好也能处理一些多媒体信息,主要是图片,如读者照片、图书封面等。

)2.3、编程语言的选择:

数据库支持是VB6.0的强项之一,VB6.0支持BDE、ADO、InterBase等多种数据库访问方式,并提供有丰富的数据库操作控件。

尤其是它对微软的ADO技术支持得非常好,并将其封装成ADO控件集,同时也提高了开发ADO数据库应用程序的效率。

另外,VB6.0还封装了可视化控件库,使得程序界面可以轻松维护,VB6.0的编译器的速度很快,在日常编程效率上会较有优势,所以我选用VB6.0语言这个工具来进行这个毕业设计。

2.4、本方案的特点:

本管理系统是采用VB6.0编程语言,基于Access数据库的一个小型的信息管理系统,该系统可以基本满足中小型图书馆的信息管理工作要求。

2.5、运行环境:

硬件环境:

CPU:

400MPentiumII以上。

内存:

128M以上。

硬盘可用空间:

2G以上。

软件环境:

操作系统:

win98/me/2000/xp三、过程论述:

3.1、程序模块、功能分析:

3.1.1、功能模块分析:

本课题设计在进行用户需求分析的基础上把系统划分为三大模块(五小模块):

信息管理模块(图书管理模块、读者管理模块、借阅管理模块)、信息查询模块,以及数据维护模块。

这几个模块之间,紧密结合,共享信息资源,形成一种简洁明了的图书馆信息管理的解决方案。

系统功能模块设计的关系结构图:

3.1.2、功能描述:

本系统具有以下几个功能:

1、信息管理模块包括三个子模块:

a:

图书管理模块:

包括新书入库登记、图书管理;b:

读者管理模块:

包括读者管理(新读者登记、信息更正、读者身份注销);c:

借阅管理模块:

包括图书出借管理、图书续借管理、图书归还管理、提示超期缴纳罚款的功能;2、信息查询模块:

图书信息查询、读者信息查询、借阅信息查询;3、数据维护模块:

数据备份、数据恢复;4、退出系统。

在本系统中:

一个本借书证最多只能同时借2本书;借书未按期30天归还就算是“超期”,就要罚款,;如果某读者有图书超期未归还,则不能继续借任何书籍。

3.2、数据流图:

借阅者信息借书证借书证档案库图书名/号图书档案库借书证图书名/号图书名/号借书证登记查询借书还书表格打印学生图书管理图书名/号图书名/号图书名/号3.2.1、顶层数据流图图书名/号还书库记载还书情况有图书名/号借书证无效、图书名/号记载借书情况有是否持有借书证?

可借书借书库申请借书证可还书3.2.2、0层数据流图3.3、数据库结构:

3.3.1、各表的结构:

读者基本信息表:

readerinfo字段类型说明关键字读者编号文本读者编号是读者姓名文本读者姓名否读者性别文本读者性别否办证日期日期/时间办证日期否联系电话文本联系电话否工作单位文本工作单位否家庭地址文本家庭地址否图书基本信息表:

bookinfo字段类型说明关键字书籍编号文本书籍编号是书籍名称文本书籍名称否类别代码文本类别代码否出版社文本出版社否作者姓名文本作者姓名否书籍价格数字书籍价格否书籍页码文本书籍页码否登记日期日期/时间登记日期否是否借出是/否是否借出否基本设置表:

basicset字段类型说明关键字借出册数数字借出册数否罚款数字罚款否图书类型表:

booktype字段类型说明关键字类别代码文本类别代码是书籍类别文本书籍类别否借出天数数字借出天数否借阅信息表:

lentinfo字段类型说明关键字读者编号文本读者编号是书籍编号文本书籍编号是借书日期日期/时间借书日期是还书日期日期/时间还书日期否超出天数数字超出天数否罚款金额数字罚款金额否3.3.3、数据连接方式:

Vb6.0提供了很多的连接数据库的方法,为了方便程序的安装、降低对运行软件环境的要求,考虑到Windows2000开始的Microsoft操作系统都已经封装了ADO,我选择了ADO来连接Access数据库。

3.4、程序运行的整体流程图如下:

3.5、模块功能、实现过程说明:

3.5.1、新书入库登记模块功能介绍:

图书馆的所有新书都在本模块进行登记。

登记时,管理人员先给图书编上书号,然后在本模块中按照界面提示依次输入:

书号、书名、作者、出版社、价格、备注等信息,点击入库就可以实现新书在的登记功能。

新书在入库过程中自动检测图书编号是否重复,并能给予提示,避免了生成重复书号的错误。

新书入库流程图如右图所示:

新书“保存”按钮的代码如下:

PrivateSubcmdSave_Click()Setg_rs=g_db.OpenRecordset(“SELECT*FROMbookInfo“,dbOpenDynaset)添加记录g_rs.AddNew设置记录的字段值g_rs!

书籍编号=txtBookID.Textg_rs!

书籍名称=txtBookName.Textg_rs!

类别代码=Mid(cboType.Text,1,1)g_rs!

出版社=txtBookConcern.Textg_rs!

作者姓名=txtWriter.Textg_rs!

书籍价格=txtBookPrice.Textg_rs!

书籍页码=txtPage.Textg_rs!

登记日期=dtpRigDate.Valueg_rs!

是否借出=False保存修改!

g_rs.UpdateSetg_rs=NothingMsgBox“新书添加完毕“,vbOKOnly,“提示“EndSub窗体加载时的代码如下:

PrivateSubForm_Load()dtpRigDate.Value=DateSetg_rs=g_db.OpenRecordset(“bookType“,dbOpenTable)cboType.ClearIfg_rs.RecordCount>0Theng_rs.MoveFirstDoWhileNotg_rs.EOFcboType.AddItemg_rs!

类别代码+“-“+g_rs!

书籍类别g_rs.MoveNextLoopEndIfSetg_rs=NothingEndSub3.5.2、图书管理模块图书馆的所有书籍都在本模块进行管理。

在本模块,管理人员可以对书籍的书名、作者、出版社、价格、备注等信息进行维护,保存就可以将信息登记入库,从而实现库存书目的维护功能。

代码部分:

PrivateSubcmdAdd_Click()FrmAddnew.ShowEndSubPrivateSubcmdClose_Click()UnloadMeEndSubPrivateSubcmdDel_Click()DimstrBookIDAsStringDimintResponseAsIntegerDataGrid1.Col=0strBookID=DataGrid1.TextintResponse=MsgBox(“是否真的要删除编号为“+strBookID+“的书籍信息?

“,vbOKCancel,“提示“)IfintResponse=vbOKTheng_strSql=“select*frombookInfowhere书籍编号=“DataSource=“PersistSecurityInfo=False“Adodc1.CursorLocation=adUseClientAdodc1.CommandType=adCmdTextAdodc1.RecordSource=strDataSourceAdodc1.RefreshEndSub3.5.3、读者管理模块:

因为时间关系,为了简单,读者的基本信息在后台数据库中添加、修改和删除。

这个模块的实现就不在前台实现了。

3.5.4、出借归还管理模块:

分为三个部分,借,续借和归还。

实现的代码分别如下:

1、正常借书“借出当前图书”按钮代码PrivateSubcmdLendBook_Click()IftxtReaderID.Text““ThenIflblRemain.Caption“0“Then判断是否已经借满Setg_rs=g_db.OpenRecordset(“lentInfo“,dbOpenTable)Withg_rs.AddNew.Fields(“读者编号“)=txtReaderID.Text.Fields(“书籍编号“)=txtBookID.Text.Fields(“借书日期“)=dtpLendDate.Value.UpdateEndWithSetg_rs=Nothing更新bookInfo表,设置该书是否借出属性为“借出“g_strSql=“select*frombookInfowhere书籍编号=“&txtBookID.Text&““Setg_rs=g_db.OpenRecordset(g_strSql)g_rs.Editg_rs.Fields(“是否借出“).Value=Trueg_rs.UpdateSetg_rs=NothingMsgBox“借出完毕!

“,vbOKOnly,“提示“txtBookID.Text=““txtBookName.Text=““txtBookPrice.Text=““txtBookLeibie.Text=““txtBookConcern.Text=““txtBookPage.Text=““InitDataGrid(False)ElseMsgBox“您的书已经借满,不能再借!

“,vbOKOnly,“提示“EndIfElseMsgBox“请先输入读者编号!

“,vbOKOnly,“提示“EndIfEndSub正常借书时按回车读出读者信息代码:

PrivateSubtxtReaderID_KeyPress(KeyAsciiAsInteger)判断用户按下回车键并且是否输入读者编号IfKeyAscii=“13“AndtxtReaderID.Text““Then根据输入的读者编号,查找读者姓名g_strSql=“select*fromreaderInfowhere读者编号=“&txtReaderID.Text&““Setg_rs=g_db.OpenRecordset(g_strSql)进行数据库的查询判断是否找到IfNotg_rs.EOFThentxtReaderName.Text=g_rs!

读者姓名InitDataGrid(False)初始化DataGrid控件信息ElseMsgBox“没有该读者信息!

“,vbOKOnly,“提示“txtReaderName.Text=““EndIfSetg_rs=NothingElseIfKeyAscii=“13“AndtxtReaderID.Text=““ThenMsgBox“请先输入读者编号“,vbOKOnly,“提示“EndIfEndSub2、续借图书“确定”按钮代码PrivateSubcmdOK_Click()g_strSql=“select*fromlentInfowhere书籍编号=“&txtBookIDRenew.Text&“and读者编号=“&txtReaderIDRenew.Text&“and借书日期=#“&txtLendDate.Text&“#“Setg_rs=g_db.OpenRecordset(g_strSql)g_rs.Editg_rs.Fields(“借书日期“).Value=dtpLendDateChange.Valueg_rs.UpdateSetg_rs=NothingAdodc1.Recordset.UpdateMsgBox“续借完毕!

“,vbOKOnly,“提示“EndSub续借时按回车读出读者信息的代码:

PrivateSubtxtReaderIDRenew_KeyPress(KeyAsciiAsInteger)判断用户按下回车键并且是否输入读者编号IfKeyAscii=“13“AndtxtReaderIDRenew.Text““Then根据输入的读者编号,查找读者姓名g_strSql=“select*fromreaderInfowhere读者编号=“&txtReaderIDRenew.Text&““Setg_rs=g_db.OpenRecordset(g_strSql)进行数据库的查询判断是否找到IfNotg_rs.EOFThentxtReaderNameRenew.Text=g_rs!

读者姓名InitDataGrid(True)初始化DataGrid控件信息cmdOK.Enabled=TrueElseMsgBox“没有该读者信息!

“,vbOKOnly,“提示“txtReaderNameRenew.Text=““cmdOK.Enabled=FalseEndIfSetg_rs=NothingElseIfKeyAscii=“13“AndtxtReaderIDRenew.Text=““ThenMsgBox“请先输入读者编号“,vbOKOnly,“提示“cmdOK.Enabled=FalseEndIfEndSub3、还书“归还图书”按钮代码PrivateSubcmdReturn_Click()g_strSql=“select*fromlentInfowhere书籍编号=“&txtBookIDReturn.Text&“and读者编号=“&txtReadIDReturn.Text&“and借书日期=#“&txtLendDateReturn.Text&“#“Setg_rs=g_db.OpenRecordset(g_strSql)g_rs.Editg_rs.Fields(“还书日期“).Value=txtReturnDate.Textg_rs.Fields(“超出天数“).Value=txtDayCount.Textg_rs.Fields(“罚款金额“).Value=txtFakuan.Textg_rs.UpdateSetg_rs=Nothingg_strSql=“select*frombookInfowhere书籍编号=“&txtBookIDReturn.Text&““Setg_rs=g_db.OpenRecordset(g_strSql)g_rs.Editg_rs.Fields(“是否借出“).Value=Falseg_rs.UpdateSetg_rs=NothingtxtBookIDReturn.Text=““txtBookNameReturn.Text=““txtBookPriceReturn.Text=““txtBookLeibieReturn.Text=““txtBookPageReturn.Text=““txtReadIDReturn.Text=““txtReaderNameReturn.Text=““txtLendDateReturn.Text=““txtDay.Text=““txtReturnDate.Text=““txtFactDay.Text=““txtDayCount.Text=““cmdReturn.Enabled=FalseMsgBox“归还完毕!

“,vbOKOnly,“提示“EndSub还书时按回车读出书籍信息的代码:

PrivateSubtxtBookIDReturn_KeyPress(KeyAsciiAsInteger)DimstrSQLAsString判断用户按下回车键并且是否输入读者编号和书籍编号IfKeyAscii=“13“AndtxtBookIDReturn.Text““ThenstrSQL=“selectlentInfo.读者编号,readerInfo.读者姓名,lentInfo.书籍编号,bookInfo.书籍价格,“_&“bookInfo.书籍名称,bookInfo.书籍页码,lentInfo.借书日期,bookType.书籍类别,bookType.借出天数“_&“fromreaderInfo,bookInfo,lentInfo,bookTypewherereaderInfo.读者编号=lentInfo.读者编号“_&“andbookInfo.书籍编号=lentInfo.书籍编号andbookInfo.书籍编号=“&txtBookIDReturn.Text&““_&“andbookInfo.类别代码=bookType.类别代码“g_strSql=strSQLSetg_rs=g_db.OpenRecordset(g_strSql)IfNotg_rs.EOFThencmdLendBook.Enabled=TruetxtBookNameReturn.Text=g_rs!

书籍名称txtBookPriceReturn.Text=g_rs!

书籍价格txtBookLeibieReturn.Text=g_rs!

书籍类别txtBookPageReturn.Text=g_rs!

书籍页码txtReadIDReturn.Text=g_rs!

读者编号txtReaderNameReturn.Text=g_rs!

读者姓名txtLendDateReturn.Text=g_rs!

借书日期txtDay.Text=g_rs!

借出天数txtReturnDate.Text=Date

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

当前位置:首页 > 总结汇报 > 工作总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1