anddata()-brower.归还日期=0;
orderbyreader.借书证编号
3、总体模块设计:
该系统的全部功能由一个主控界面(两个表单)、一个报表以及相关的四个表单组成,其总体模块框图如下:
五、模块设计:
1、欢迎界面和主控界面表单的设计:
图书馆信息管理系统的主界面由“欢迎表单”和“主控表单”组成,主控表单上安排六个命令按钮,分别实现总体框图中的五部分功能和退出系统模块。
每个命令按钮触发的结果均执行一条命令,运行一个表单,或启动一个报表文件的运行,或者退回到visualfoxpro系统状态。
欢迎表单标签的caption属性为“欢迎使用河南理工大学图书管理系统!
”,并设置“进入”和“退出”两个按钮,通过“进入”按钮(设计代码为:
doform主控表单.scx)进入主控界面,通过“退出”按钮退出系统。
主控表单的设计代码如下:
“借书证管理”按钮的click事件代码:
doform借书证管理.scx
“借书登记”按钮的click事件代码:
doform借书登记.scx
“还书登记”按钮的click事件代码:
doform还书登记.scx
“图书入库与报废”按钮的click事件代码:
doform图书入库与报废.scx
“催还书通知”按钮的click事件代码:
reportform催还书通知.frx
“退出系统”按钮的click事件代码:
Releasethisform
Closeall
Quit
2、其他表单的设计:
1)借书证管理表单设计:
此表单的数据源是reader.dbf表,在其支持下完成用户要进行的图书证的发放和退回工作。
用户从“借书证编号”文本框中输入一个借书证编号,如果该借书证在reader.dbf表中已存在,系统会在下面的表格对象中显示与之对应的读者情况,否则显示为空。
当单击“办理借书证”按钮后,系统会在表格中添加一行空记录,等待用户输入新读者的资料,并自动把办证日期赋值为系统当前日期,用户退出表单时系统将新数据存入与表单对应的reader.dbf表中;当用户单击“退还借书证”按钮后,系统把当前日期赋值给换证日期字段,表述该读者已归还借书证。
与表单对应的各种对象的属性值和事件代码说明如下:
(1)“借书证编号”文本框的属性值和事件代码:
Name属性——text1
Format属性——‘XXXXXXXXXX’
Interactivechange事件代码:
thisform.dataenvironment.cursor1.filter='借书证编号='+""+trim(this.value)+""
thisform.refresh
return
Lostfocus事件代码:
thisform.dataenvironment.cursor1.filter='借书证编号='+""+trim(this.value)+""
thisform.refresh
return
(2)“办理借书证”按钮的click事件代码:
appendblank
replace借书证编号withthisform.text1.value,办证日期withdate()
thisform.dataenvironment.cursor1.filter=’借书证编号=’+""+trim(thisform.text1.value)+""
thisform.refresh
return
(3)“退还借书证”按钮的click事件代码:
thisform.gird1.column6.text1.value=data()
return
(4)“退出”按钮的click事件代码:
CLOSEALL
Thisform.release
其他表单的“退出”按钮的代码完全相同,以后不再进行说明。
2)借书证登记表单的设计:
此表单是整个系统的一个主要菜单,共涉及到reader.dbf,booker.dbf,brower.dbf,typer.dbf等四个表。
用户在左上角的组合框对象中选择“借书证编号”,文本框中的“读者姓名”与“电话号码”是系统自动显示的。
在“选择图类型”组合框中选择要借阅的图类型,表格中显示图书的库存信息,在单击“借阅”按钮后,系统自动进行借阅登记,表单下半部分显示该读者现在未归还的图书及借阅日期。
下面对有关对象的属性及代码进行说明:
(1)数据环境。
数据环境中包含了四个表,其中的cuosor对象与表的对应关系如下:
Cuosor1—typer.dbf图书类型表
Cuosor2—booker.dbf图书登记表
Cuosor3—reader.dbf借书证登记表
Cuosor4—brower.dbf借书登记表
(2)“借书证编号”组合框的属性和事件代码:
Constrolsource属性——reader.借书证编号
Interactivechange代码:
thisform.dataenvironment.cursor3.filter='借书证编号='+""+this.value+""
thisform.dataenvironment.cursor4.filter='借书证编号='+""+;
this.value+""+'anddata()-brower.归还日期=0'
thisform.refresh
lostfocus代码:
thisform.dataenvironment.cursor3.filter='借书证编号='+""+this.value+""
thisform.dataenvironment.cursor4.filter='借书证编号='+""+;
this.value+""+'anddata()-brower.归还日期=0'
thisform.refresh
(3)“图书类型选择”组合的属性:
Rowsource属性——typer.图书类别
(4)显示姓名的文本框:
Controlsource——reader.读者姓名
(5)显示电话号码的文本:
Controlsource——reader.电话号码
(6)表单上半部分的表格对象,由表格对象生成器生成即可,该表格对象以booker.dbf表为数据源。
(7)表单下半部分的表格对象,由表格对象生成器生成即可,该表格对象以brower.dbf表为数据源。
(8)“借书”按钮的click事件代码如下:
ifbooker.图书编号=trim(bo2.value)
replacebooker.在库数量withbooker.在库数量-1
endif
ifused("brower")
selectbrower
gobottom
appendblank
endif
ifbooker.图书编号=trim(bo2.value)
replacebrower.图书编号withbooker.图书编号
replacebrower.借阅日期withdata()
endif
ifused("reader")
selectreader
replacebrower.借书证编号withreader.借书证编号
endif
thisform.refresh
return
“图书入库与报废”表单的设计:
该表单左上角的“图书编号”文本框供用户输入要登记入库和要报废的图书编号,后面的册数文本框输入对应的或报废的图书册数,如果所输入的图书编号是一个booker.dbf表中已存在的编号(这表示是进行图书报废登记),下面的表格对象中会显示该图书的其他信息,反之,表示一种新书要入库登记,实质是要将这种图书信息添加到booker.dbf数据表中。
对表单中有关对象的属性与代码说明如下:
(1)数据环境。
表单中只包含一个booker.dbf表。
(2)“图书编号”与“册数”文本框。
Name属性分别为text1和text2。
(3)表格对象,由表格生成器生成。
(4)“新书入库登记”按钮click事件代码:
thisform.dataenvironment.cursor1.filter='图书编号='+""+trim(thisform.text1.value)+""
ifeof()
appendblank
replace图书编号withthisform.text.value
thisform.refresh
thisform.grid1.column1.enable=.t.
thisform.grid1.column2.enable=.t.
thisform.grid1.column3.enable=.t.
thisform.grid1.column4.enable=.t.
thisform.grid1.column5.enable=.t.
endif
thisform.grid1.column8.text1.value=thisform.grid1.column8.text1.value+val(thisform.text2.value)
thisform.grid1.column9.text1.value=thisform.grid1.column9.text1.value+val(thisform.text2.value)
thisform.refresh
return
(5)“图书报废登记”按钮的click事件代码:
thisform.grid1.column8.text1.value=thisform.grid1.column8.text1.value-val(thisform.text2.value)
thisform.grid1.column9.text1.value=thisform.grid1.column9.text1.value-val(thisform.text2.value)
thisform.refresh
return
3、“催还图书通知”报表设计:
“催还图书通知”报表的设计过程说明如下:
报表数据源brower.vue视图,该视图已在前面做了说明。
报表分组条件reader.读者姓名
报表排序条件reader.借书证编号
该报表由向导程序生成,其后进行了一些格式美化的调整修改工作,关键问题是要先定义好作为数据源的试图文件。
六、效果截图
七、总结:
任何一个社会组织和企业公司在发展过程中都会产生大量的数据,这些数据的组织存储、分析统计有利于提高企业的发展,有利于提高企业的效率。
这些数据的组织和存储就是数据模型,就是数据库应用系统开发的任务。
数据库应用系统开发的过程一般包括可行性研究、需求分析、系统设计、程序编码、程序调试和系统维护六个阶段。
根据数据库应用系统的复杂程度,不一定完全刻板地遵守上述步骤,但是,可行性研究、需求分析、系统设计、程序编码、程序调试是不可缺少的。
本次课程设计制作了一个简单的图书馆管理系统,实现了一些图书管理和借阅功能,但与实际系统还是有很大差别的。
首先是对应用情况做了简单的理想化处理,因而难以反映实际工作中可能遇到的实际问题;其次,未考虑用户操作中可能出现的错误的处理,而实际上这种错误的处理程序可能占应用系统的很大一部分。
如本系统在需求分析和程序健全性方面均存在一些问题,为了解决这些不完善之处,需要在今后的进一步学习中,逐步深入,不断积累经验,不但提高。
八.参考文献
1.《JSP课程设计》,电子工业出版社。
2.《JSP2.0大学教程》,2008年,机械工业出版社。
3.《JSP使用案例教程》,2004年,清华大学出版社。
4.《JSP程序设计教程》,人民邮电出版社。
5.《JSP程序设计》,人民大学出版社。