图书馆信息管理系统.docx
- 文档编号:27910825
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:24
- 大小:390.21KB
图书馆信息管理系统.docx
《图书馆信息管理系统.docx》由会员分享,可在线阅读,更多相关《图书馆信息管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
图书馆信息管理系统
图书馆信息管理系统
数据库的概念
数据库是一种存储数据并对数据进行操作的工具。
数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。
计算机的数据库可以分为两类:
非关系数据库(flat-file)和关系数据库(relational)。
关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。
新建一个数据库
创建任何一个数据库的第一步是仔细的规划数据库,设计必须
是灵活的、有逻辑的。
创建一个数据库结构的过程被认为是数据模
型设计。
(1)标识需要的数据;
(2)收集被标识的字段到表中;
(3)标识主关键字字段;
(4)绘制一个简单的数据图表;
(5)规范数据;
(6)标识指定字段的信息;
(7)创建物理表。
创建数据库
参照VF自带的数据库,可以很方便地创建了本系统将要使用的本地数据库。
系统的组织结构图如下:
表的说明如下:
Book_recno.dbf 借书登记表
Book_table.dbf 图书资料表
B_table.dbf 读者类别查询中间表
Group_table.dbf 图书类别查询中间表
Pass_word.dbf 管理员ID密码表
User_table.dbf 读者资料表
表结构介绍:
Book_recno.dbf 借书登记表
字段名称
字段类型
字段说明
TSBH
C(10)
图书编号
TXM
C(10)
条形码
SM
C(20)
书名
BH
C(10)
编号
XM
C(10)
姓名
JSBZ
C(4)
借书标志
JSSJ
D(8)
借书日期
Book_table.dbf 图书资料表
字段名称
字段类型
字段说明
TSBH
C(10)
图书编号
TXM
C(10)
条形码
SM
C(20)
书名
ZZ
C(20)
作者
CBS
C(40)
出版社
CBSJ
D(8)
出版时间
LB
C(20)
类别
XCSL
N(3)
现存数量
TSZS
N(3)
图书总数
RGSJ
D(8)
入馆时间
TSJG
N(8,2)
价格
ZCCS
N(5)
借出次数
JSQX
N
(2)
借书时限
B_table.dbf 读者类别查询中间表
字段名称
字段类型
字段说明
CHINA_LB
C(10)
中间字段
LB
C(15)
中间字段
Group_table.dbf 图书类别查询中间表
字段名称
字段类型
字段说明
CHINA_LB
C(10)
中间字段
LB
C(15)
中间字段
Pass_word.dbf 管理员ID密码表
字段名称
字段类型
字段说明
GLY_ID
C(10)
管理员ID
MM
C(10)
管理员密码
GLY_NAME
C(10)
管理员姓名
User_table.dbf 读者资料表
字段名称
字段类型
字段说明
BH
C(10)
编号
XM
C(10)
姓名
XB
C
(2)
性别
YXMC
C(20)
院系名称
ZZ
C(40)
住址
YJTS
N(4)
已借天数
BZ
C(20)
备注
LB
C(10)
职业
DJRQ
D(8)
登记日期
JSRQ
D(8)
借书日期
HSRQ
D(8)
还书日期
系统的具体实现
程序菜单功能介绍:
借书------根据您提供的图书条形码和图书编号确认图书,再根据学生的编号确认学生后把此书借给这位学生。
还书------根据您提供的图书条形码和图书编号确认图书,再根据学生的编号确认学生后把此书归还。
图书馆信息管理------对所有图书的资料进行添加,修改和删除等操作。
读者管理------对所有读者的资料进行添加,修改和删除等操作。
查询------所有图书、不在馆图书,今天借出图书、今日归还图书、今日新进图书和有条件查询。
统计------图书基础状况统计排名。
管理员------在这里修改管理员的登录密码。
系统程序构成:
图书馆信息管理系统的所有模块都包括在一个项目中,这个项目我们命名为Tsgl.pjx,项目由数据、文档、类库、代码、其它五部分组成。
其中数据又分为数据库和自由表;文档分为表单、报表和标签;代码分为程序、API、01/10应用程序;其它分为菜单文件、文本文件、其它文件。
系统构成图表如下图:
项目的各部分完成系统的不同任务,但从总体上讲,可分成两个方面分析,一个是数据源,为程序处理提供原始数据;一个是程序模块,是数据处理的方法和平台。
把这两者有机的结合起来,就是一个完整的程序应用系统。
程序运行界面图
说明:
系统登录界面,只有输入正确的ID和密码才能进行图书馆信息管理系统。
说明:
图书馆信息管理系统主界面。
说明:
借书子程序操作界面。
说明:
还书子程序操作界面。
说明:
图书馆信息管理操作界面。
提供图书新增、修改、删除等功能。
说明:
读者管理操作界面。
提供读者新增、修改、删除等功能。
说明:
打印模块具有打印图书信息的功能
说明:
管理员密码维护操作界面。
系统登陆界面
用户名:
1
密码:
1
如果出现打不开问题
请先打开FoxPro程序
选择程序-运行-图书馆信息管理系统.exe
如遇到路径不存在问题直接点击忽略
我已经先设置了一个借书人编号12345王鑫
图书信息在任务窗口可以选择查询
附:
程序清单
程序功能介绍:
**\\-------主控程序:
main_tsgl.prg
clearall 从内存中释放所有的内存变量和数组以及所有用户自定义菜单栏、菜单和窗口的定义。
_screen.visible=.f. 主窗口VFP不可见
setescapeoff 禁止运行的程序和命令在按Esc键后被中断。
settalkoff 阻止对话结果传送到VisualFoxPro主窗口、系统信息窗口
setexcloff (私有数据工作期的默认方式)允许网络上的任何用户共享和修改网络上打开的表
setsafetyoff 指定在改写已有文件时不显示对话框。
setdeleon 使用范围子句处理记录(包括在相关表中的记录)的命令忽略标有删除标记的记录
setcenturyon 指定在包含10个字符(包括日期分隔符)的日期格式中,用四位数字表示年。
setdatetoYMD 决定日期在日期时间表达式中的格式:
yy/mm/dd
publicM_js,M_hs,mypath,tsgl,demo[3] 定义变量、数组为公共变量
M_js=.T. 为变量赋值
M_hs=.T.
mypath=left(sys(16),rat("\",sys(16))) 把当前路径赋给一个变量
setdefato&mypath 指定默认的驱动器、目录或文件夹
***------------------------------
dimensiondemo[3] 创建一维内存变量数组
store'.F.'todemo[1] 为数组赋值
store'.F.'todemo[2]
store'.F.'todemo[3]
***----------传递ID、密码变量-----
sele1 激活指定工作区1,以下类似
usebook_table 打开一个表,以下类似
sele2
usegroup_table
sele3
useb_table
sele4
useuser_table
doformlogin_form 运行表单
readevents 当发出READEVENTS命令时,VisualFoxPro启动事件处理
说明:
设置程序运行的环境参数、变量等。
**\\----密码验证表单:
Login_form.scx
**\\----控件:
command1
**\\----click事件代码如下:
selectgly_id,mm,gly_namefrompass_word;
wheregly_id=allt(thisform.text1.value)and;
mm=allt(thisform.text2.value) intoarraydemo
ifdemo[1]='.F.'
=messagebox('登录ID或密码错误!
',0+16+0,'提示') 信息提示窗口
thisform.text1.setfocus 控件text1获得了焦点
*return.T.
else
thisform.release 从内存中释放表单集或表单
dologin_app 运行程序
endif
代码说明:
SQL语句从密码表“Pass_word.dbf中选出gly_id,mm,gly_name三个字段的记录与所输入的数据进行比较,如果相等。
则把它们赋值到一个数组中,然后执行下一步程序。
否则数组为最初所赋的值“.F.”,程序返回到数据输入状态,直到正确输入或者退出。
**\\----控件:
command2
**\\----click事件代码如下:
thisform.release
clearevents 发出CLEAREVENTS命令停止事件处理
代码说明:
释放当前表单,清除当前事件。
**\\-------联接程序:
main_tsgl.prg
DOFORMtsgl.scxnametsgl&&窗口句柄传递
DOMenu_tsgl.mprWITHtsgl,.t.,.t. 运行菜单
代码说明:
运行图书馆信息管理主表单以后,再运行菜单组件。
**\\---- 图书馆信息管理主表单:
Tsgl.scx
主要属性:
AlwaysOnTop=.F. 其他窗口可以覆盖住表单窗口。
AutoCenter =.T. 指定表单对象第一次显示于VisualFoxPro主窗口时,自动居中放置
ShowWindows=2 作为顶层表单
Caption=岳阳电信-图书馆信息管理系统 V1.0 表单标题
属性说明:
当前表单优先居前,自动居中,为顶层表单,表单标题为“岳阳电信-图书馆信息管理系统 V1.0”。
**\\----Init事件代码如下:
bo1.listindex=1 表单上的页中的组合框的属性
bo1.listindex=1
代码说明:
控件“Combol”的数据源是“Group_Table.dbf”,Listindex=1,则当前控件“Combol”中所显示的数据为“图书编号”。
**\\----Resize事件代码如下:
mandgroup1.width=this.width-5
thisform.pageframe1.width=this.width-5
thisform.pageframe1.height=this.height-100
thisform.pageframe1.page1.grid1.width=thisform.pageframe1.width-22
thisform.pageframe1.page1.grid1.height=;
thisform.pageframe1.height-82
thisform.pageframe1.page2.grid1.width=;
thisform.pageframe1.width-22
thisform.pageframe1.page2.grid1.height=;
thisform.pageframe1.height-82
thisform.pageframe1.refresh
代码说明:
页框“page1”和“page2”、表格控件“grid1”随当前表单大小的变化而变化。
**\\----QueryUnload事件代码如下:
thisform.release 从内存中删除内存变量和数组。
clearevents
**\\-------借书子程序:
Jies.scx
**\\----控件:
command1
**\\----click事件代码如下:
sele1
ifthisform.optiongroup1.option1.value=0 当前单选框的值为0
locatefortxm=upper(allt(thisform.text2.value)) 从表中查找输入的条形码
ifnotfound()
=messagebox('没有该图书的条形码!
',0+64+0,'提示')
gotop 指针定位到表头
else
mand3.enabled=.T. 指定对象可以响应用户引发的事件
endif
endif
ifthisform.optiongroup1.option1.value=1 当前单选框的值为1
locatefortsbh=upper(allt(thisform.text1.value))
ifnotfound()
=messagebox('没有该图书编号!
',0+64+0,'提示')
gotop
else
mand3.enabled=.T.
endif
endif
thisform.refresh
代码说明:
根据图书的条形码或图书编号查询所借书目。
只有所借书目存在,才能对读者信息进行操作。
**\\----控件:
command2
**\\----click事件代码如下:
thisform.text2.value='' 赋文本框text2的值为空
thisform.text1.value=''
thisform.text1.setfocus
**\\----控件:
command3
**\\----click事件代码如下:
sele4
locateforbh=upper(allt(thisform.text12.value))
ifnotfound()
=messagebox('没有该读者的编号!
',0+64+0,'提示')
gotop
endif
mand5.enabled=.T.
thisform.refresh
代码说明:
对借书读者的资料进行确认。
**\\----控件:
command5
**\\----click事件代码如下:
nAnswer=MESSAGEBOX('确认所借书目的资料无误吗?
',4+32+0,'重要提示')
DOCASE
CASEnAnswer=6
sele1
Ifxcsl=0
=messagebox('该图书已经没有库存!
',0+64+0,'提示')
return.T.
Else
replacexcslwithxcsl-1,zccswithzccs+1 现存数量减1,借出数量加1
insertintobook_recno(tsbh,txm,sm,bh,xm,jssj,jsbz);
values(upper(allt(thisform.text7.value)),;
upper(allt(thisform.text4.value)),;
upper(allt(thisform.text3.value)),;
upper(allt(thisform.text13.value)),;
upper(allt(thisform.text14.value)),;
datetime(),'借出') 把当前资料插入到表book_recno中
sele4
replaceyjsswithyjss+1 读者资料表中的已借书数加1
Endif
CASEnAnswer=7
ENDCASE
代码说明:
在确认所输入的图书和读者资料无误后,程序开始对图书资料表、读者资料表、借书记录表这三个表进行修改和录入。
MESSAGEBOX()对应每个按钮的返回值。
返回值 按钮
1 确定
2 取消
3 放弃
4 重试
5 忽略
6 是
7 否
**\\-------还书子程序:
Jies.scx
**\\----控件:
command1
**\\----click事件代码如下:
sele1
ifthisform.optiongroup1.option1.value=0
locatefortxm=upper(allt(thisform.text2.value))
ifnotfound()
=messagebox('没有该图书的条形码!
',0+64+0,'提示')
gotop
endif
endif
ifthisform.optiongroup1.option1.value=1
locatefortsbh=upper(allt(thisform.text1.value))
ifnotfound()
=messagebox('没有该图书编号!
',0+64+0,'提示')
gotop
endif
endif
mand3.enabled=.T.
thisform.refresh
**\\----控件:
command3
**\\----click事件代码如下:
thisform.text13.visible=.T. 显示当前文本框text13
sele4
locateforbh=upper(allt(thisform.text12.value))
ifnotfound()
=messagebox('输入的读者编号有错吧?
',0+32+0,'提示')
gotop
else
thisform.refresh
mand5.enabled=.T.
endif
**\\----控件:
command5
**\\----click事件代码如下:
sele1
replacexcslwithxcsl+1 现存数量加1
insertintobook_recno(tsbh,txm,sm,bh,xm,jssj,jsbz);
values(upper(allt(thisform.text7.value)),;
upper(allt(thisform.text4.value)),;
upper(allt(thisform.text3.value)),;
upper(allt(thisform.text12.value)),;
upper(allt(thisform.text13.value)),;
datetime(),'还回')
thisform.refresh
=messagebox('操作完成,该书已经归档!
',0+64+0,'完成')
mand5.enabled=.F.
代码说明:
还书程序代码和借书程序代码比较相似,请看借书程序代码说明。
**\\----控件:
command7
**\\----click事件代码如下:
M_hs=.T.
thisform.release
**\\-------图书馆信息管理子程序:
Tsgl_tsgl.scx
**\\----控件:
command1
**\\----click事件代码如下:
sele1
ifthisform.optiongroup1.option1.value=0
locatefortxm=upper(allt(thisform.text2.value))
ifnotfound()
=messagebox('没有该图书的条形码!
',0+64+0,'提示')
gotop
endif
endif
ifthisform.optiongroup1.option1.value=1
locatefortsbh=upper(allt(thisform.text1.value))
ifnotfound()
=messagebox('没有该图书编号!
',0+64+0,'提示')
gotop
endif
endif
thisform.refresh
代码说明:
根据图书的条形码或图书编号查询图书。
并且可以对当前所选定的图书进行修改。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 信息管理 系统