小型图书资料管理系统.docx
- 文档编号:14688047
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:19
- 大小:728.47KB
小型图书资料管理系统.docx
《小型图书资料管理系统.docx》由会员分享,可在线阅读,更多相关《小型图书资料管理系统.docx(19页珍藏版)》请在冰点文库上搜索。
小型图书资料管理系统
小型图书资料管理系统
摘要:
随着计算机的普及和网络的出现,对信息的需求日益增加,图书馆业务受到了强烈的冲击,传统的手工管理方式已不能适应现在的信息化社会。
利用现有的科学技术条件提高图书信息的管理效率,因此一个健全的图书管理系统就必不可少,图书管理系统的使用大大的提高了图书馆的工作效率,很好的节省了大量的人力、物力和财力资源。
关键词:
图书管理;VisualBasic;Access
一、管理信息系统简介
1)系统开发前提
随着计算机的普及和网络的出现,对信息的需求日益增加,图书馆业务受到了强烈的冲击,传统的手工管理方式已不能适应现在的信息化社会。
利用现有的科学技术条件提高图书信息的管理效率,因此一个健全的图书管理系统就必不可少,图书管理系统的使用大大的提高了图书馆的工作效率,很好的节省了大量的人力、物力和财力资源。
管理信息系统的开发是一个开发周期长、技术要求高、影响因素多的复杂系统工程,因此制定一个完善、可行、合理的开发计划,不仅是系统开发成功的保证,而且可以提高效率、节省时间、降低成本。
2)系统开发目的
由于在过去人们对信息管理的主要方式是基于文本、表格等纸质的手工处理之上的,而用手工进行图书借阅管理存在多种弊端,其中包括图书过于繁多,包含很多的信息数据的管理对于图书借阅情况如:
借阅天数、超过限定借阅时间等等的统计和核实,往往采用对借阅卡的人工查询进行,对借阅天数等用人工计算、手抄进行。
信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说缺乏系统、规范的管理手段人们操控起来是很困难的;因此,使用电子化的管理手段将是大势所趋,建立一个图书管理系统也是图书管理部门提高工作效益的有效手段。
系统能够合理高效地利用图书资源,使得图书借阅更加的科学合理。
二、管理信息系统需求分析
1)现行业务描述
对于一个图书管理系统来说,图书的查询及数据的维护管理是其中的核心环节。
在现现行的图书管理中存在几个共同的问题:
1、图书种类过多,数据庞大;这是几乎所有图书馆都会遇到的共同问题,各种不同种类的图书馆为这些图书入库,进行添加于维护增加了很多的难题,对这些数据的反复输入,往往造成庞大的工作量和较低的效率。
2、查询图书困难,每天的借阅情况,读者借阅的到期、还书情况,各项数据的汇总和统计情况必须由管理员统计上报,图书库总管理员才能考虑对图书馆的硬件如某类书的需求数量进行改变已向上级申报。
3、图书毁坏及图书破损;在借阅过程中难免此类现象的发生,如何及时发现及事后对毁坏图书进行淘汰和更新也是个需要解决的问题。
4、不能及时归还图书;经常有读者超过借阅期的情况发生,对此类读者的超期信息提示也是图书借阅管理工作中必须解决的问题之一。
通过调查,一般图书馆组织结构图如下:
通过调研了解到,该图书馆各个部门负责的主要业务如下:
(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.Show vbModal
IfCurrentUser.LoginSuccessThen
Me.Caption=App.Title&"("&CurrentUser.Name &")"
Else
Me.Caption=App.Title & "(未登录)"
EndIf
EndSub
程序首先显示frmLogin窗口,由于这个窗口是模态(vbModal)显示的,因此如果用户只能关闭这个窗口后才能进行其他的操作。
VB的窗口分成模块窗口和非模态窗口两种,普通情况下都是非模态窗口,但是多数对话框是模态窗口。
程序的后面使用了一个结构体,这个结构体在公共模块定义,程序的任何地方都可以访问这个结构体,同时程序初始化了一个全局变量CurrentUser。
该变量用来指示当前是否有用户登陆,用户的ID和名称是什么等信息。
Type Users
ID AsInteger
Name AsString
PasswordAs String
LoginSuccessAsBoolean
EndType
PublicCurrentUser AsUsers
登录窗口实现代码:
OptionExplicitﻭDim cntAsInteger'记录确定次数PrivateSub cmdCancle_Click()ﻭUnload MeﻭEnd SubﻭPrivateSubcmdOK_Click()DimsqlAs StringﻭDim rs_loginAsNewADODB.RecordsetﻭDimconnAsNew ADODB.Connectionconn.Open"provider=Microsoft.Jet.OLEDB.4.0; data source="&App.Path&"\database.mdb"IfTrim(Text1.Text)=""ThenMsgBox"用户名不能为空,请重新输入!
"ﻭText1.SetFocusﻭElsesql="select *from 用户表whereuser_ID='" & Trim(Text1.Text) &"'" rs_login.Opensql,conn,adOpenKeyset, adLockPessimisticIfrs_login.EOF =True ThenMsgBox"没有这个用户,请重输入!
", 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="" EndIfEndIfﻭ EndIfcnt = cnt+1Ifcnt=3ThenUnloadMeEnd IfEndSubﻭPrivateSubForm_Load()ﻭcnt= 0ﻭEndSub
“系统运行”实现代码:
PrivateSubCommand1_Click()ﻭIfText2=""Then MsgBox"请输入姓名"ﻭ Text2.SetFocusﻭElseﻭ sql = "select*from borrowwhere 读者姓名='"+Trim(Text2.Text)+"'" ado.ConnectionString=constr '连接字符串ﻭ ado.RecordSource= sql'社顶记录员ado.Refreshﻭ grid.RefreshEndIfEndSubﻭPrivateSubForm_Load()ﻭconstr ="provider=microsoft.jet.oledb.4.0;"&"datasource="& App.Path&"\library1.mdb"
EndSub
“图书归还”实现代码:
PrivateSubCommand1_Click()ﻭIfText1=""Thenﻭ MsgBox"请输入读者姓名" Text1.SetFocusElseﻭsql="select *fromborrow where 读者姓名='"+Trim(Text1.Text) +"'"ado.ConnectionString=constr '连接字符串 ado.RecordSource =sql'社顶记录员 ado.Refreshgrid.RefreshEndIfEnd SubﻭPrivateSub Form_Load()constr="provider=microsoft.jet.oledb.4.0;"&"datasource="&App.Path &"\library1.mdb"ﻭ
四、系统执行情况
1)书籍出借/归还
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
usingSystem.Windows.Forms;
namespace 借_还书籍登记
{
publicpartialclassForm1:
Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidbutton4_Click(objectsender, EventArgse)
{
}
}
}
新书入库的程序段采用了更为完备的功能,它首先检测用户输入是否合法,然后整理用户的输入信息,通过Database的Execute方法将SQL语句写入到数据库中,由于写入过程有可能出错(数据库共享冲突、硬件故障等),所以代码段中使用了差错控制机制,VB的差错控制通过两个语句来完成
On Error GotoLine_Indentity
或者
OnErrorResume Next
其中第一句表示如果发生错误时将转到Line_Indentity开始的地方进行处理,第二句表示如果发生错误时强制程序继续运行以后的语句。
str1="LibID"
str2= Chr(34)& Text1.Text &Chr(34)
2)系统执行过程
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include
#defineSTACK_INIT_SIZE 10
#defineOK1
#defineTRUE1
#define FALSE0
#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(struct book),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);
return FALSE;
}
findbook1()
{
FILE*fp;
char bookcreat[10];
int ture,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);return 0;}
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月
出版社:
清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小型 图书资料 管理 系统