图书馆信息管理系统设计_第1页
图书馆信息管理系统设计_第2页
图书馆信息管理系统设计_第3页
图书馆信息管理系统设计_第4页
图书馆信息管理系统设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

图书馆信息管理系统设计一、系统功能描述图书馆管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一样性和完整性强.数据平安性好的库。而对于后者则要求应用程序功能完备,易运用等特点。本图书管理系统的应用对象定位在小型图书馆的应用。依据要求本图书管理系统主要针对图书管理员进行添加新书、执行借书、还书、查看图书的操作,另外进入该系统的读者只能查看当前图书馆的藏书并能执行查询操作,读者还可以通过该系统注册成为会员。图书管理系统用来管理图书借还过程中的静态和动态信息。系统管理的信息主要包括图书基本信息、图书存储信息、借书和还书信息。系统的目的就是有效地处理这些信息,同时为图书管理员供应信息检索和信息统计功能。该图书管理系统主要实现管理员操作和读者操作。其中,管理员操作包括完成添加图书、借书、还书、查询图书功能;读者操作包括完成图书查询和读者注册功能。二、开发环境(VISUALBASIC)的简介

VISUALBASIC是微软公司出品的一个快速可视化程序开发工具软件。借助微软在操作系统和办公自动化软件的垄断/地位,VB在短短的几年内风靡全球。VB是极具特色和功能强大的软件,主要表现:所见即所得的界面设计,基于对象的设计方法,极短的软件开发周期,教易维护的代码。同时众多的ACTIVE控件,提高了软件的运用效率。1VB应用程序语言的基本特点:可视化界面设计:VB为用户供应大量的界面元素(在VB中称为控件对象),这些控件对象如“窗体”,“菜单”,“吩咐按扭”,“工具按扭”,“检查框”等等,用户只要利用鼠标、键盘把这些控件对象拖动到合适的位置,设置其大小、形态、属性等,就可以设计出所需的应用程序界面。2事务驱动编程在运用VB设计应用程序是,必需首先确定应用程序如何同用户进行交互。例如发生鼠标单击、键盘输入等事务是,由用户编写代码限制这些事务的响应,这就是所谓的事务驱动编程。3与数据库的连接性

VISUALBASIC供应了与底层数据库系统紧密的连接。VISUALBASIC支持不同的关系数据库管理系统并充分发挥每一个数据库的特长。在开发该图书馆管理系统时,VISUALBASIC存取数据库的方式有两种:•通过运用的ODBC接口。(ODBC(开放数据库连接)是微软公司的数据库连接标准)•通过运用由VISUALBASIC供应的专用的干脆与数据库相连的接口该系统程序是在应用vb软件程序的过程中,通过声明和定义数据库变量和记录集变量将程序的实现与access数据库连接起来。三、系统开发过程(一)建立数据库Access数据库中包括member、book、loan、admin(读者表、图书表、借阅信息表、管理员表)四个数据表,分别存放读者信息、馆藏图书信息、读者借阅信息、管理员信息。Admin(管理员表)作为单独的一个表,与其他三个表没有干脆联系。book表中的isbn(图书编号)与loan(借书表)中的isbn(图书编号)具有一对多的关系,member(读者表)中的nomber(借书证编号)与loan表中的member(图书证编号)同样具有一对多的关系。Loan表中另外添加了out_data和due_data两个字段分别记录读者的借书时间和应还时间。数据库中表之间的联系如下图所示:

(二)vb程序中连接数据库在程序的设计过程中,干脆通过vb语句连接数据库,并没有运用控件连接。定义数据库变量的语句如下:Dimdb1AsDatabase

Dimdb2AsDatabase

Dimdb3AsDatabase定义数据记录集变量Dimrst1AsRecordset

Dimrst2AsRecordset

Dimrst3AsRecordset设置连接数据库并打开数据库中相应的记录表语句:Setdb1=Workspaces(0).OpenDatabase(App.Path&"\database\database.mdb",False)

Setrst1=db1.OpenRecordset("member",dbOpenTable)

‘打开member表Setdb2=Workspaces(0).OpenDatabase(App.Path&"\database\database.mdb",False)

Setrst2=db2.OpenRecordset("loan",dbOpenTable)

‘打开loan表Setdb3=Workspaces(0).OpenDatabase(App.Path&"\database\database.mdb",False)

Setrst3=db3.OpenRecordset("book",dbOpenTable)

‘打开book表在连接数据库中数据表的过程中,通过索引,以便以后在数据表中查找数据。设定索引语句:rst1.index="nomber"

rst2.index="isbn"

rst3.index="isbn"(三)设定管理员的操作:管理员进入系统后,首先能够看到当前图书馆的存书状况以及借书状况,在该界面下进行添加图书、还书、借书和查询操作。显示当前馆藏图书状况的代码实现为:LV2.View=lvwReport

LV2.ColumnHeaders.Add,,"图书编号"

LV2.ColumnHeaders.Add,,"书名"

LV2.ColumnHeaders.Add,,"作者"

LV2.ColumnHeaders.Add,,"价格"

LV2.ColumnHeaders.Add,,"数量"

LV2.ColumnHeaders.Add,,"出版社"LV2.ColumnHeaders.Add,,"出版日期"

total=rst3.RecordCount

LV2.ListItems.Clear

rst3.MoveFirst

Fori=1Tototal

LV2.ListItems.Addi,,rst3.Fields("isbn")&vbNullString

WithLV2.ListItems(i)

.SubItems(1)=rst3.Fields("bname")&vbNullString

.SubItems(2)=rst3.Fields("author")&vbNullString

.SubItems(3)="¥"&rst3.Fields("price")

.SubItems(4)=rst3.Fields("total")&vbNullString

.SubItems(5)=rst3.Fields("publish")&vbNullString

.SubItems(6)=rst3.Fields("pdata")&vbNullString

EndWith

rst3.MoveNext

Ifrst3.EOFThenExitFor

Nexti

借书状况的代码实现同馆藏图书的代码实现类似,在此不再重复给出。

1添加新书管理员点击“添加新书”按钮后,系统弹出添加新书的窗口添加图书。将新添加的图书记录在数据库中,新进图书可能图书馆中已有,也可能没有,系统要能分别处理。若新添加的图书在图书馆中已有记录,则在图书表中将总数增加,通过以下语句实现:

rst.Edit

rst.Fields("total")=rst.Fields("total")+Val(total.Text)

rst.Update

假如图书馆中没有相应记录,则在图书表中增加一条记录,写入其相关信息。通过以下语句实现:

rst.Seek"=",isbn.Text

Ifrst.NoMatchThen

rst.AddNew

rst.Fields("isbn")=isbn.Text

rst.Fields("bname")=b_name.Text

rst.Fields("author")=author.Text

rst.Fields("price")=Val(price.Text)

rst.Fields("total")=Val(total.Text)

rst.Fields("publish")=publish.Text

rst.Fields("pdata")=pdata.Text

rst.Fields("class")=class.Text

rst.Update2查询图书管理员通过输入图书编号查询相关图书,管理员窗口图书管理界面显示所查询图书的具体信息在程序实现过程中,用BookId作为全局变量,存放图书的编号信息,具体由以下语句实现:

rst.Seek"=",BookId

txtBookHao.Text=BookId

txtBookName.Text=rst.Fields("bname")&vbNullString

txtChuBan.Text=rst.Fields("publish")&vbNullString

txtCost.Text=rst.Fields("price")&Empty

txtLentDate=rst.Fields("pdata")&vbNullString

txtType.Text=rst.Fields("class")&vbNullString

author.Text=rst.Fields("author")&vbNullString3还书操作:管理员在实现还书操作的过程中,分别输入所借图书编号和借书证号进行借书操作。在还书过程中涉及到对book表、loan表、member表的同时修改,首先在book表中对所还图书的相应图书的数量(total字段)进行加1操作,然后在member表中对应借书证号的借书数量(total字段)进行减1操作,最终将loan表中对应的借书记录删除掉。删除loan表中相应记录:

rst.Delet修改book表中的记录:

rst2.Seek"=",BookId

rst2.Edit

rst2.Fields("total")=rst2.Fields("total")+1

rst2.Update修改member表

rst1.Seek"=",mAddEditId

rst1.Edit

rst1.Fields("total")=rst1.Fields("total")–1

rst1.Update4借书操作:工作人员通过此模块来进行借阅记录的查询。该模块供应了包括读者编号、图书编号两种查询条件,管理员依据这个查询条件来进行查询,既可以查询出某本书。执行结束操作过程中,管理员首先输入借书证号,查询是否存在该借书证号,若存在则显示对应的读者信息,并执行借书操作,否则弹出提示信息要求重新输入正确的借书证号。借书过程中也涉及到对book表、member表、loan表的同时操作。在book表中相应图书的数量(total字段)减1,member表中相应读者的借书量(total字段)加1,loan表中增加一条借书记录。同时借书过程中系统自动检查该用户借书是否已达到六本,若已达到六本则不允许接着借书。正确输入借书证后进入借书窗口,系统通过查询member表的相应记录,自动显示当前读者的具体信息,同时显示当前图书馆的藏书状况。读者所能进行的操作只有依据相应的图书编号查看图书,同时系统会将读者查看的图书的具体信息显示出来。具体代码实现为:

rst1.Seek"=",mAddEditId

'显示当前读者的信息

nomber.Text=mAddEditId

txtname.Text=rst1.Fields("name")&vbNullString

txtage.Text=rst1.Fields("age")&vbNullString

txtphone.Text=rst1.Fields("telephone")&vbNullString

txtaddress.Text=rst1.Fields("address")&vbNullString

txtfa.Text=rst1.Fields("fa")&Empty查看相应图书编号图书的具体信息通过以下代码实现:

PrivateSubisbn_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=13Then

rst3.Seek"=",isbn.Text

Ifrst3.NoMatchThen

MsgBox"没有此图书编号,请重新填写",0+48,"填写错误"

isbn.SetFocus

Frame4.Visible=False

ExitSub

EndIf

Frame4.Visible=True

txtBookHao.Text=isbn.Text

txtBookName.Text=rst3.Fields("bname")&vbNullString

txtChuBan.Text=rst3.Fields("publish")&vbNullString

txtCost.Text=rst3.Fields("price")&Empty

txtLentDate=rst3.Fields("pdata")&vbNullString

txtType.Text=rst3.Fields("class")&vbNullString

author.Text=rst3.Fields("author")&vbNullString

EndIf

EndSub单击“借出图书”按钮后系统执行借书操作。首先查看该图书是否被全部借出,然后确定该读者借书总数没有超过六本,否则不允许借出。具体通过一下操作实现

Ifrst3.Fields("total")<=0Then

MsgBox"此书已被全部借出!",0+48,"提示"

isbn.Text=""

isbn.SetFocus

Frame4.Visible=False

ExitSub

EndIf

‘限制每人所借图书不能超过六本

rst1.Seek"=",mAddEditId

Ifrst1.Fields("total")>=6Then

MsgBox"该用户借书已达到六本,不能再借!",0+48,"提示"

ExitSub

EndIfLoan表中添加一条记录的代码实现:rst2.AddNew

rst2.Fields("isbn")=txtBookHao.Text

rst2.Fields("member")=nomber.Text

rst2.Fields("uname")=txtname.Text

rst2.Fields("bname")=txtBookName.Text

rst2.Fields("price")=txtCost.Text

rst2.Fields("publish")=txtChuBan.Text

rst2.Fields("class")=txtType.Text

rst2.Fields("author")=author.Text

rst

温馨提示

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

评论

0/150

提交评论