图书管理系统论文.docx
《图书管理系统论文.docx》由会员分享,可在线阅读,更多相关《图书管理系统论文.docx(16页珍藏版)》请在冰点文库上搜索。
图书管理系统论文
图书资料管理系统
日常工作中遇到的实际问题,例如图书信息、读者的信息、管理员信息、借阅者信息进行管理,完成的系统实现了四个主要功能:
.管理员管理操作,.借还图书的操作,.读者信息的管理,书籍信息的管理。
关键词:
管理信息系统;数据访问对象;SQLServer2000;
libraryManegementSystem
ly,suchasbooksinformation,theinformationofreaderandkeeperinformation,borrowpersoninformationtocarryoutmanagement,canrealizewiththefourmajorfunctions:
keepermanagement,.booksborrowingandreturning,readeresmanagement,bookssearch.Keyword:
ManagementInformationSystem;DAO;SQLServer2000;
前言
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
VB是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。
它简单易学、效率高,且功能强大可以与Windows专业开发工具SDK相媲美。
在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(SPI)函数[4],以用动态链接库(DLL)、对象的链接与世隔嵌入(OLE)、开放式数据连接(ODBC)等技术[5],可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。
它的特点分别是:
(1)可视化编程:
用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。
VisualBasic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来[6],开发人员不必为界面设计而编写大量程序代码。
只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。
VisualBasic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。
能够更好的设计出实用的软件。
(2)面向对象的程序设计
VisualBasic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C++)不完全相同。
在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而VisualBasic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。
在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,VisualBasic自动生成对象的程序代码并封装起来。
每个对象以图形方式显示在界面上,都是可视的。
(3)结构化程序设计语言
VisualBasic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。
VisualBasic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。
VisualBasic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。
在设计VisualBasic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.EXE),脱离VisualBasic环境,直接在Windows环境下运行。
VisualBasic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQLServer,Oracle等。
在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(client/server)方案。
方便了用户,实现用户的需求。
(4)动态数据交换(DDE)
利用动态数据交换(DynamicDataExchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。
当原始数据变化时,可以自动更新链接的数据。
VisualBasic提供了动态数据交换的编程技术,可以在应用程序中与其他Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。
(5)动态链接库(DLL)
VisualBasic是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。
但它可以通过动态链接库技术将C/C++或汇编语言编写的程序加入到VisualBasic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。
此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数[6],实现SDK所具有的功能。
1.2相关技术(SQL)
自20世纪70年代以来,数据库技术得到迅速发展。
目前世界上已经有数百万个数据库系统在运行,其应用已经深入到社会生活的各个领域,从企业管理,银行管理,资源管理,经济预测一直到信息检索,档案管理,普查统计等.我国20世纪90年代初在全国范围内装备了12个以数据库为基础的大型计算机系统,这些系统分布在邮电,计委,银行,电力,铁路,气象,民航,情报,公安,军事,航天和财税等行业.
因此,数据库的学习是非常重要的.数据库系统本质上是一个用计算机存储记录的系统[8]。
数据库本身可被看作为一种电子文件柜[9]:
也就是说,它是收集计算机数据文件的仓库或容器,系统用户可以对这些文件执行插入数据、检索数据、更改数据、删除数据等一系列操作[10]。
总之,数据库系统是一个计算机存储记录的系统,即,它是一个计算机系统,该系统的目标存储信息并支持用户检索和更新所需要的信息。
一个现代化的图书馆在正常运营中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息,还书信息。
面对图书馆数以万计的图书,纷繁复杂的读者信息,频繁更替的借还书信息,传统的直接方法不但管理出现漏洞,而且容易造成不必要的损失。
因此有一个智能化、系统化、信息化的图书管理系统十分重要的。
充分利用计算机的功能实现对读者管理、书籍管理,借阅管理等自动化控制,将会大大减轻图书馆管理人员的工作量。
方便友好的图形界面、简便的操作、完善的数据库管理,将会使得图书馆系统极大限度地应用于现代化图书管理中。
2.2系统的功能
图书资料管理系统,是图书管理员的助手,为使图书馆的管理工作高效,规范和科学,
相应的基本需求有:
1能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:
1)图书信息的录入、删除及修改。
2)图书信息的多关键字检索查询。
3)图书的出借、返还和资料统计。
2能够对一定数量的读者进行相应的信息存储与管理,这其中包括:
录入、修改和删除书籍的信息
5.读者库操作
录入、修改和删除读者的信息
3.3 总体界面的设计
3.3.1界面设计思想
首先考虑标准化,在标准化的基础上进行界面的美工设计。
其次进一步完善程序的界面设计,包括:
窗口标题的改变,背景图片、颜色等;
对象字体属性的改变;
对象的位置对齐等;
3.2.3界面设计原则
总的原则是:
简单易用、简洁明了、兼容性好、标准、规范。
界面要具有一致性。
一致性原则在界面设计中最容易违反,同时也最容易修改和避免。
例如,
在菜单和联机帮助中必须使用相同的术语;对话框必须具有相同的风格等。
常用操作要有捷径。
常用操作的使用频度大,应该减少操作序列的长度。
例如,为文件的常用
操作如打开、存盘、另存等设置快捷键。
由多个读者记录构成,读者记录的数据结构如下:
读者证号(ReaderID)整数(唯一标示符)
读者姓名(ReaderName)变长字符串
读者联系方法(Address)变长字符串
读者电话号码(TelephoneNumber)整数
读者电子邮件(Email)变长字符串
借书记录表
由若干个借书记录构成,借书记录的数据结构如下:
借阅图书(BookID)整数(与图书库中的图书编号对应)(唯一标示符)
借阅者(ReaderID)整数(与读者库中的图书编号对应)
借阅时间(BorrowDate)日期
系统设置表
由单个系统设置记录构成,系统设置记录的数据结构如下:
记录号(id)整数(系统自动生成,唯一标示符)
最多可借图书数(MaxBLNum)整数
最多借书天数(MaxBLDays)整数
系统操作员记录表
由若干个系统操作员记录构成,系统操作员记录的数据结构如下:
记录序号(id)整数(系统自动生成,唯一标示符)
账号(Addminister)变长字符串
口令(Password)变长字符串
权限级别(Level)整数(0-7)
3.5.2物理结构设计
数据的物理结构设计采用链表结构。
3.6数据结构与程序的关系
1主模块
连接数据库
2借书模块
1)读者查验模块:
读入读者号,对应输出读者姓名,读者联系方法,读者电话号码,读者电子邮件。
IF返回结果集为空(不存在该读者证号)
置读者姓名字符串为空
返回”非法读者证号”
ELSE
置读者姓名字符串
返回”合法读者证号”
接口
调用形式:
BOOLCheckReader(constlongReaderID,CString&strReaderName)
传入参数:
ReaderID(常量参数传入)待查验的读者证号
m_pConnection(借书模块内的全局变量)数据库连接指针
传出参数:
读者证号存在/不存在标志(返回值)
long欲还图书书号
m_strLenderIDCString借阅者图书证号显示
m_strLenderCString借阅者姓名
m_strRBInfCString已还图书信息显示
m_strNRBInfCString未还图书信息显示
m_strRBNumCString已还图书数显示
m_strNRBNumCString未还图书数显示
内部参数m_lCurrIDlong当前还书者读者证号
m_intRBNumint已还图书计数
m_MaxLBDayint借书天数上限
4.3.2借书记录查验模块
功能
查验借书记录是否存在(即是否存在与指定书号相对应的借书记录)
输入项目
图书书号(传入参数)
输出项目
查验结果(返回值);查询结果集(图书书号、书名、状态、出借日期)
程序逻辑
生成数据库查询语句
调用数据库查询模块
IF操作成功
IF查询结果集不为空(存在该借书记录)
返回”记录存在”
ELSE
警告”记录不存在”
ELSE
警告”查询失败”
返回”记录不存在”
接口
调用形式:
BOOLCheckBlrcord(constlongBookID)
传入参量:
BookID(整型常量)
传出参量:
书号合法/非法标志(BOOL型)
存储分配
局部变量:
ing书名关键字
m_bBookNameBOOL书名查询选择状态
m_strPublisherCString出版社关键字
m_bPublisherBOOL出版社查询选择状态
m_intYear1int出版时间关键字
m_intYear2int出版时间关键字
m_intMonth1int出版时间关键字
m_intMonth2int出版时间关键字
m_bPubTimeBOOL出版时间查询选择状态
m_intTimeTypeint出版时间查询方式选择
局部变量:
查询参数vtQuiry_variant_t查询命令
vNull_variant_t查询连接
类型转换strQuiryCString查询命令类型转换
4.4.2查询命令生成子模块
功能
根据用户界面的输入生成查询命令
输入项目
用户界面的输入值(公共变量)
输出项目
查询命令(返回值)
程序逻辑
读取各复选框的值
,置为-1
存储分配
局部变量:
数据库pTemp_RecordsetPtr数据库查询结果集指针
查询参数vNull_variant_t数据库查询连接
vtQuiry_variant_t数据库查询命令
类型转换strQuiryCString查询命令类型转换
内部参数resultint权限级别
引用的全局变量:
m_pConnection_ConnectionPtr数据库连接指针
m_strCurrUserCString当前操作员账号
4.5.3图书库操作子模块
功能
根据输入提供对图书库的浏览、数据修改、增加、删除记录等操作
增加记录时,提供对生成的图书书号的唯一性验证
删除记录时,提供对所删除记录的相关性检验
输入项目
数据库连接(传入参数)
输出项目
无
程序逻辑
初始化(获取数据库连接,显示对话框)
WHILE用户未输入退出
IF用户输入”下一个”
更新当前记录
移动至下一个记录
刷新显示
IF用户输入”上一个”
更新当前记录
移动至上一个记录
刷新显示
读
m_intStatusint读
m_fBookPricefloat读
m_strCurrentBookCString读
m_strTotalBookCString读
存储分配
局部变量:
操作参数vtCommand_varaint_t操作命令
vRecsAffected_variant_t操作连接
strCommandCString操作命令类型转换
内部参数currBookIDlong当前图书书号保存
4.5.7获取相关记录子模块
功能
查验是否存在相关的借书记录
输入项目
图书书号(传入参数)
输出项目
相关借书记录存在/不存在标志(返回值)
程序逻辑
生成数据库查询命令,执行查询
IF操作成功
IF查询结果集为空
返回”不存在”
ELSE
返回”存在”
ELSE
给出警告”不能查询数据库”
返回”存在”
接口
调用形式:
BOOLRelatedExisted(constlongBookID)
传入参数:
BookID(整型常量)待查验的图书书号
传出参数:
查验结果(BOOL值)
引用的全局变量:
m_pConnection使用
存储分配
局部变量:
数据库pLBook_RecordsetPtr数据库查询结果集指针
查询参数vtQuiry_variant_t查询命令
vNull_variant_t查询连接
类型转换strQuiryCString查询命令类型转换
测试要点
数据库连接正常
相关记录存在返回“真”
相关记录不存在返回“假”
数据库连接异常
好的数据表相连接,在命令类型中可以选择[adcmdunknown].
7“借书信息”窗体的加载
窗体的加载时,首先是当前选定的要借阅的图书的信息,通过对ADODC2控件数据源的设置,
可以找到目标图书的信息,将他们在相应的Label控件中显示出来。
代码如下,
Priviatesubform_load() DimIasinteger ADODC2.Recordsource=”select*from书籍信息where 书籍编号=‘“&book_name”’此外,还要将所有的读者信息添加到下拉列表中供选择,通过ADODC3控件来设定。
8“借书信息”窗体的卸载
窗体卸载时将表格控件的数据源设置为Nothing,在Form_unload事件中添加代码,
priviatesubform_unload(cancelasinteger)
unloadme
Endsub
9“借书信息管理”窗体功能的实现
在这个功能中,工作人员输入借阅者的借阅证号和所要借阅的图书的图书编号,然后点击借阅按
钮就可进行图书借阅。
考虑到实际中可能会出现只知图书名而不知图书编号的情况,在此界面下方加入了一个转换功能,可以把图书名称转换成图书编号,再进行图书借阅。
借书窗体的功能有添加借书信息、修改借书信息、删除借书信息和查询借书信息。
图书馆管理人
员可以通过按纽的功能,来查阅借书的信息,比如读者的姓名,读者的编号,读者的种类,以及书籍的信息,书籍的名称等等。
要查阅读者和书籍的信息,就必须通过数据库来查询。
10“借书信息查询“窗体的功能设计
程序启动后,执行“借阅信息管理”菜单中的“借书信息查询”命令将打开该窗体,如图所示:
该窗体是frmmain的子窗体,所以其mdIchild属性设置为true,name属性为frmsinfo,caption为“借书信息查询“。
使用本模块时,首先选择查询方式(如”读者姓名“方式,”书籍姓名“方式,”借书时间“方式),用户通过单击”确定“按扭,来查询借书信息。
部分程序代码如
PrivateSubForm_Load() DimiAsInteger DimjAsInteger书验收
4系统测试:
采用人工测试方法
系统的测试,先从程序调试开始,因为软件的设计需要编出很多的代码,其错误的频率相当的高,
如没有错误,则进行子系统的测试,子系统是各个模块的分支,通过测试之后,在与模块相连接,看总体的设计是否的合理。
刚开始总调时不必按完全真实情况下的数据量进行,可以采用一些精心设计的数据量较少的测试
用例,这样不仅可以使处理工作量大大减少,而且更容易发现错误和确定错误所在范围。
测试完了之后,系统就可以投入使用。
结束语
短短的两三个月过去了,毕业设计的任务终于完成了。
在设计过程中,主要使用了VB程序设计语言,我觉得VB在实际操作中很实用,而且VB程序设计语言具有强大的可视化程序设计和面向对象程序设计的功能。
对初学者来说,VB简单易学,简化了复杂的界面设计工作。
本次设计完成了对图书馆信息管理的实现,设计中还采用了SQL技术等等。
参考文献
[1]李光明.VisualBasic6.0编程实例[M].冶金工业出版社,2004,34-35.
[2]刘炳文.精通VISUALBASIC6.0入门与提高[M].人民邮电出版社,2003,23-35.
[3]BobReselman.VisualBasic6.0使用指南[M].电子工业出版社,2005,55-65.
[4]温小敏.VisualBasic数据库系统项目开发实践[M].科学出版社,2004,34-66.
学出版社,2004,24-37.
[14]张海藩.软件工程导论[M].清华大学出版社,2003,76-95.
[15]施伯乐丁宝康、汪卫编著.数据库系统教程[M].高等教育出版社,2004,77-91.
致 谢
此次毕业设计是在指导老师的悉心指导和支持鼓励下完成的,特别是朱理望老师从课题的选择、方案论证,都尽其所能给予了我很多的指导与帮助。
同时,也得到了同学们的大力帮助,在此表示衷心的感谢!
通过这次毕业设计,我不但巩固了以前所学的知识,增强了知识间的联系,而且学到了好多新的理论知识,同时,也增强了我的思维和动手能力。
另外在这次毕业设计过程中,我系统地学习了有关VB方面和SQL的一些新知识,收益良多。
最后,向始终关心、支持和帮助我的老师和同学致以诚挚的谢意。
王京
网络工程4班