小型图书资料管理系统.docx

上传人:b****3 文档编号:4192411 上传时间:2022-11-28 格式:DOCX 页数:17 大小:764.65KB
下载 相关 举报
小型图书资料管理系统.docx_第1页
第1页 / 共17页
小型图书资料管理系统.docx_第2页
第2页 / 共17页
小型图书资料管理系统.docx_第3页
第3页 / 共17页
小型图书资料管理系统.docx_第4页
第4页 / 共17页
小型图书资料管理系统.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

小型图书资料管理系统.docx

《小型图书资料管理系统.docx》由会员分享,可在线阅读,更多相关《小型图书资料管理系统.docx(17页珍藏版)》请在冰豆网上搜索。

小型图书资料管理系统.docx

小型图书资料管理系统

小型图书资料管理系统

小型图书资料管理系统

摘要:

随着计算机的普及和网络的出现,对信息的需求日益增加,图书馆业务受到了强烈的冲击,传统的手工管理方式已不能适应现在的信息化社会。

利用现有的科学技术条件提高图书信息的管理效率,因此一个健全的图书管理系统就必不可少,图书管理系统的使用大大的提高了图书馆的工作效率,很好的节省了大量的人力、物力和财力资源。

关键词:

图书管理;VisualBasic;Access

一、管理信息系统简介

1)系统开发前提

随着计算机的普及和网络的出现,对信息的需求日益增加,图书馆业务受到了强烈的冲击,传统的手工管理方式已不能适应现在的信息化社会。

利用现有的科学技术条件提高图书信息的管理效率,因此一个健全的图书管理系统就必不可少,图书管理系统的使用大大的提高了图书馆的工作效率,很好的节省了大量的人力、物力和财力资源。

管理信息系统的开发是一个开发周期长、技术要求高、影响因素多的复杂系统工程,因此制定一个完善、可行、合理的开发计划,不仅是系统开发成功的保证,而且可以提高效率、节省时间、降低成本。

2)系统开发目的

由于在过去人们对信息管理的主要方式是基于文本、表格等纸质的手工处理之上的,而用手工进行图书借阅管理存在多种弊端,其中包括图书过于繁多,包含很多的信息数据的管理对于图书借阅情况如:

借阅天数、超过限定借阅时间等等的统计和核实,往往采用对借阅卡

不能及时归还图书;经常有读者超过借阅期的情况发生,对此类读者的超期信息提示也是图书借阅管理工作中必须解决的问题之一。

通过调查,一般图书馆组织结构图如下:

通过调研了解到,该图书馆各个部门负责的主要业务如下:

(1)采编组主要负责图书采编工作,包括购置新书、打印编目、增加数量。

(2)目录厅主要负责读者查询工作,包括可借图书;新书目录;借书情况

(3)借阅组主要负责图书流通、查询统计、借阅查询等工作。

(4)阅览室、工具书室主要负责读者阅览工作,包括:

阅览各种杂志、报纸、阅览各种工具书。

下面绘制出图书馆流通业务中借书的流程图。

(1)读者在目录厅查阅索引卡;

(2)读者写出所借图书的分类号、种次号、交给图书管理员,并出示本人的借书证;

(3)图书管理员根据图书的分类号、种次号到书库找书;

(4)将图书交给读者,并由读者填写所借图书的借书卡。

(5)图书管理员把借书卡保存到写有该读者借书证号的口袋里。

2)现行管理系统存在问题分析和解决方案

该图书馆工作大部分还是进行着手工管理,工作起来效率很低,并且不能及时了解图书馆各类图书的存库,学生们比较需求的图书等等,不便于动态及时地调整图书结构,以便更好地适应当前学生的借阅需求。

手工管理还存在这许多弊端,由于不可避免的人为因素,经常造成数据的遗漏、误报。

计算机信息化管理有着储存信息量大、速度快等许多优点,提供给我们的处理信息及时快捷,同时也提高了我们工作人员的自身素质。

基于以上的对问题的分析,利用计算机给我们提供信息,及时地调整学校图书馆图书结构,并且对学生们的借阅过程形成一整套动态的管理就十分必要了。

图书馆信息系统的建立,需要进行用户的需求调查与分析,以确定系统目标,提出解决问题的详细方案,这是系统建设的重要环节。

学校图书馆规模相对于商业图书馆小,但要有着完善的图书信息,对每一册书要有详细的记录信息,功能上对系统的需求是全面的。

因此对用户的需求可分为四个方面:

一方面是图书馆工作人员通过计算机来管理各类图书,分类编号,调整图书结构,增加图书库存,适应学生的需求;二方面是学生们能通过计算机来查询浏览图书馆中的图书,来确定自已需要的书籍,为借阅做好准备;三方面是工作人员对学生们的借书证发放,登记能作好全面的掌握,及时得到每个借书证的当前状态和历史借阅记录;四方面也是图书馆的核心工作,对图书的借阅管理。

得出图书馆的业务流程图如下:

3)系统技术和功能可行性分析

通过对该图书馆的各个方面进行了具体的了解之后,现对该单位开发图书管理系统的可行性进行分析。

技术上可行:

该系统所需硬件设备,市场上销售且价格较低,甚至可以使用原有的设备,软件上,操作系统采用Windows系列操作系统,数据库管理系统采用VisualBasic、access

管理上可行:

该学校的图书馆有很多的管理体制,每位借书人均有借书证,同时图书馆还为每位借书人建立了档案。

因此管理上可行。

另外,图书馆管理人员对开发该系统也是大力支持的,同时制定了培训计划,并进行了实施MIS的物质准备和工作准备。

 

二、管理信息系统设计

系统设计在整个开发过程中起着重要的作用。

它将系统分析阶段建立的功能模型转化为系统的结构模型,并做好编程前的一切准备。

系统分析是定义系统干什么的问题,而设计阶段是解决怎么干的问题。

它从系统的目标出发,建立系统的总体结构,规划系统的规模,建立各个基础部分,并说明它在整个系统中的作用及相互关系。

1)系统设计的任务和原则

系统分析阶段的主要任务包括:

数据库设计(即数据存储文件的设计)、系统结构设计、系统流程设计、系统功能模块设计等。

系统设计的总原则是:

保证系统设计目标的视线,并在此基础上是技术资源的运用达到最佳。

系统设计中,应遵循以下原则:

系统性原则、可靠性原则、管理可接受性原则

数据库设计的目标:

1数据存储合理,要符合数据库设计的3个范式。

即:

表中每一个值都是院子项,只显示一次;表中每行都必须可以被唯一地区分;表中不会又多余的已存在其他表中包含的非关键字信息。

2数据对象的关系清晰明了,符合业务逻辑。

3保证数据的完整性。

4数据库系统该换时,原有的系统设计要便于转移,减少代码重写。

5维护方便

图3-1总体E-R图

 

 

图3-2读者E-R图

 

 

图3-3图书E-R图

图3-4管理员E-R图

 

2)数据库设计

数据库采用了Microsoft推出的Access数据库,,这是微软集成到Office中的一个桌面数据库,能够快速方便的和Office的其他套件综合使用。

由于Access具有显著的简易性和有效性,大量的桌面数据库系统都采用Access作为后台数据库。

书籍信息E-R图

借阅信息E-R图

用户表E-R图

(1)本系统中涉及到的主要实体及其属性有:

tblbooK(图书管理)表:

{图书编号,,书名,作者,出版社,出版日期,价格,tblCard(借书证)表:

{借书证编号,,姓名,男女,}

tblLoan(借阅)表:

{借书证编号,图书编号,借书日期,还书日期,}

tblOperator(操作员)表:

{操作员编号,姓名,密码,}

TblOperator

操作员表,定义操作员的ID和密码,作为系统登录检查的依据,提供唯一的管理员ID。

TblLoan

借阅表,通过借书证ID和图书ID反映图书的借阅关系。

TblCard

借书证表,提供读者信息等,同时包括借书证是否可用,提供唯一的借书证ID。

TblBook

图书表,保存馆内所有图书的信息,提供唯一的图书ID

(2)本系统的实体----联系(E-R)图

3)登录界面设计

系统进行登录时,用户单击了菜单“登录”,此时系统开始显示登录窗口。

PrivateSubmnuSysLogin_Click()

frmLogin.ShowvbModal

IfCurrentUser.LoginSuccessThen

Me.Caption=App.Title&"("&CurrentUser.Name&")"

Else

Me.Caption=App.Title&"(未登录)"

EndIf

EndSub

程序首先显示frmLogin窗口,由于这个窗口是模态(vbModal)显示的,因此如果用户只能关闭这个窗口后才能进行其他的操作。

VB的窗口分成模块窗口和非模态窗口两种,普通情况下都是非模态窗口,但是多数对话框是模态窗口。

程序的后面使用了一个结构体,这个结构体在公共模块定义,程序的任何地方都可以访问这个结构体,同时程序初始化了一个全局变量CurrentUser。

该变量用来指示当前是否有用户登陆,用户的ID和名称是什么等信息。

TypeUsers

IDAsInteger

NameAsString

PasswordAsString

LoginSuccessAsBoolean

EndType

PublicCurrentUserAsUsers

登录窗口实现代码:

OptionExplicit

DimcntAsInteger'记录确定次数

PrivateSubcmdCancle_Click()

UnloadMe

EndSub

PrivateSubcmdOK_Click()

DimsqlAsString

Dimrs_loginAsNewADODB.Recordset

DimconnAsNewADODB.Connection

conn.Open"provider=Microsoft.Jet.OLEDB.4.0;datasource="&App.Path&"\database.mdb"

IfTrim(Text1.Text)=""Then

MsgBox"用户名不能为空,请重新输入!

"

Text1.SetFocus

Else

sql="select*from用户表whereuser_ID='"&Trim(Text1.Text)&"'"

rs_login.Opensql,conn,adOpenKeyset,adLockPessimistic

Ifrs_login.EOF=TrueThen

MsgBox"没有这个用户,请重输入!

",vbOKOnly+vbExclamation,""

Text1.Text=""

Text1.SetFocus

Else

username=Text1.Text

IfTrim(rs_login.Fields

(1))=Trim(Text2.Text)Then

UnloadMe

图书馆理系统.Show

Else

MsgBox"密码不正确,请重新输入!

",vbOKOnly+vbExclamation,""

Text2.SetFocus

Text2.Text=""

EndIf

EndIf

EndIf

cnt=cnt+1

Ifcnt=3Then

UnloadMe

EndIf

EndSub

PrivateSubForm_Load()

cnt=0

EndSub

“系统运行”实现代码:

PrivateSubCommand1_Click()

IfText2=""Then

MsgBox"请输入姓名"

Text2.SetFocus

Else

sql="select*fromborrowwhere读者姓名='"+Trim(Text2.Text)+"'"

ado.ConnectionString=constr'连接字符串

ado.RecordSource=sql'社顶记录员

ado.Refresh

grid.Refresh

EndIf

EndSub

PrivateSubForm_Load()

constr="provider=microsoft.jet.oledb.4.0;"&"datasource="&App.Path&"\library1.mdb"

EndSub

“图书归还”实现代码:

PrivateSubCommand1_Click()

IfText1=""Then

MsgBox"请输入读者姓名"

Text1.SetFocus

Else

sql="select*fromborrowwhere读者姓名='"+Trim(Text1.Text)+"'"

ado.ConnectionString=constr'连接字符串

ado.RecordSource=sql'社顶记录员

ado.Refresh

grid.Refresh

EndIf

EndSub

PrivateSubForm_Load()

constr="provider=microsoft.jet.oledb.4.0;"&"datasource="&App.Path&"\library1.mdb"

三、系统执行情况

1)书籍出借/归还

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

namespace借_还书籍登记

{

publicpartialclassForm1:

Form

{

publicForm1()

{

InitializeComponent();

}

privatevoidbutton4_Click(objectsender,EventArgse)

{

}

}

}

新书入库的程序段采用了更为完备的功能,它首先检测用户输入是否合法,然后整理用户的输入信息,通过Database的Execute方法将SQL语句写入到数据库中,由于写入过程有可能出错(数据库共享冲突、硬件故障等),所以代码段中使用了差错控制机制,VB的差错控制通过两个语句来完成

OnErrorGotoLine_Indentity

或者

OnErrorResumeNext

其中第一句表示如果发生错误时将转到Line_Indentity开始的地方进行处理,第二句表示如果发生错误时强制程序继续运行以后的语句。

str1="LibID"

str2=Chr(34)&Text1.Text&Chr(34)

2)系统执行过程

#include

#include

#include

#include

#include

#defineSTACK_INIT_SIZE10

#defineOK1

#defineTRUE1

#defineFALSE0

#defineERROR0

findbook()

{

FILE*fp;

charbookname[10];

intture,i;

fp=fopen("book.txt","r");

printf("请输入你要查找的书名\n");

scanf("%s",bookname);

for(i=0;fread(&book[i],sizeof(structbook),1,fp)!

=0;i++)

{

if(strcmp(bookname,book[i].bookname)==0)

{

if(book[i].turefalse==1)

{

printf("这本书的详细资料是:

%d%s%s此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);

}

else{printf("这本书已经有人借出\n");fclose(fp);return0;}

fclose(fp);

returnFALSE;

}

}

printf("没有你要查询的书籍\n");

fclose(fp);

returnFALSE;

}

findbook1()

{

FILE*fp;

charbookcreat[10];

intture,i;

fp=fopen("book.txt","r");

printf("请输入你要查找的作者名\n");

scanf("%s",bookcreat);

for(i=0;fread(&book[i],sizeof(structbook),1,fp)!

=0;i++)

{

if(strcmp(bookcreat,book[i].bookcreat)==0)

{

if(book[i].turefalse==1)

{

printf("这本书的详细资料是:

%d%s%s此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);

}

else{printf("这本书已经有人借出\n");fclose(fp);return0;}

fclose(fp);

returnFALSE;

}

}

printf("没有你要查询的书籍\n");

fclose(fp);

returnFALSE;

}

lendcount()

{

FILE*fp;

inti,n=0;

fp=fopen("record.txt","r");

for(i=0;fread(&student[i],sizeof(structstudent),1,fp)!

=0;i++)

{

printf("卡号:

%d借出的书籍:

%s\n",student[i].carnum,student[i].lendbook);

n=n+1;

}

fclose(fp);

printf("目前共有%d本书借出\n",n);

printf("按任意键\n");

getch();

returnn;

}

主要参考文献

1.《VisualBasic6.0中文版入门与提高》

作者:

张树兵,戴红,陈哲出版日期:

2011年5月出版社:

清华大学出版社

2.《VisualBasic6.0程序设计》

作者:

DianeZak译者:

张云鹏出版日期:

2007年6月

出版社:

电子工业出版社

3.《Access2007数据库开发全书》

作者:

王樵民出版日期:

2008年12月

出版社:

清华大学出版社

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

当前位置:首页 > 经管营销 > 经济市场

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

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