图书管理系统毕业设计论文详细附录.docx
《图书管理系统毕业设计论文详细附录.docx》由会员分享,可在线阅读,更多相关《图书管理系统毕业设计论文详细附录.docx(72页珍藏版)》请在冰豆网上搜索。
![图书管理系统毕业设计论文详细附录.docx](https://file1.bdocx.com/fileroot1/2022-11/23/ddb90bf4-e3c2-48b2-894d-9bacdad83a10/ddb90bf4-e3c2-48b2-894d-9bacdad83a101.gif)
图书管理系统毕业设计论文详细附录
附录
1.系统用户登陆表单
定义保存允许用户最大登陆次数和当前登陆次数的变量
PROCEDUREload
publicnMaxLogTimes&&定义一个全局变量保存允许的最大登录次数
nMaxLogTimes=3&&设置最大允许的登录次数
publicnLogTimes&&定义一个全局变量保存当前登录次数
nLogTimes=0&&设置登录次数的初始值
ENDPROC
实现登录信息验证
PROCEDURECommand1.Click
*首先检查是否超过允许的最多登录次数
nLogTimes=nLogTimes+1&&当前登录次数加1
ifnLogTimes>nMaxLogTimes
*在超过允许的最多登录次数时显示提示信息,并关闭登录对话框
cstr="你已超过允许的最多登录次数,登录对话框将关闭"
messagebox(cstr,16,"用户登录验证")&&显示提示
thisform.release&&关闭登录对话框
else
*在允许的最多登录次数范围内,首先获得用户输入的登录信息
cName=alltrim(thisform.txtName.value)
cPassword=alltrim(thisform.txtPassword.value)
*检验用户名是否存在
locateforalltrim(编号)==cname
ifnotfound()
messagebox("用户名输入错误!
",16,"用户登录验证")
thisform.txtName.selstart=0
thisform.txtName.sellength=len(cName)
thisform.txtName.setfocus
return
endif
*在用户名正确时,检查口令是否正确
ifalltrim(口令)==cPassword
*显示登录信息通过验证的信息
messagebox("登录成功!
",64,"用户登录验证")
thisform.release&&关闭登录对话框
*保存当前用户信息,下列变量在系统主文件中定义
capp_currentuser=cname
capp_currentpwd=cpassword
capp_currentpop=权限
lapp_Logon=.T.&&lapp_Logon设置为.T.表示登录成功
else
messagebox("口令输入错误!
",16,"用户登录验证")
thisform.txtPassword.value=""
thisform.txtPassword.setfocus
endif
endif
ENDPROC
实现取消登录功能
PROCEDURECommand2.Click
nr=messagebox("你选择了退出登录,是否退出?
",68,"用户登录")
ifnr=6
thisform.release&&关闭登录对话框表单
endif
ENDPROC
在登录对话框关闭时执行清理操作
PROCEDUREUnload
*从内存释放保存允许的最大登录次数和当前登录次数的变量
RELEASEnMaxLogTimes,nLogTimes
clearevents&&清除事件循环
ENDPROC
表示当前日期的功能
PROCEDUREInit
thisform.txtdate.value=date()
ENDPROC
2.创建记录导航条类
首记录
PROCEDUREcmdTop.Click
*在当前表中有记录时才执行改变当前记录操作
ifreccount()>0
gotop&&使第一条记录成为当前记录
endif
thisform.refresh&&刷新表单,显示当前记录数据
ENDPROC
前一记录
PROCEDURECmdPre.Click
*在当前表中有记录时才执行改变当前记录操作
ifreccount()>0
skip-1&&使前一个记录成为当前记录
ifbof()
gotop&&如果记录指针指向文件开头,则使第一个记录成为当前记录
endif
endif
thisform.refresh&&刷新表单,显示当前记录数据
ENDPROC
后一记录
PROCEDUREcmdNext.Click
*在当前表中有记录时才执行改变当前记录操作
ifreccount()>0
skip&&使后一个记录成为当前记录
ifeof()
gobottom&&如果记录指针指向文件末尾,则使最后一个记录成为当前记录
endif
endif
thisform.refresh&&刷新表单,显示当前记录数据
ENDPROC
尾记录
PROCEDUREcmdBottom.Click
*在当前表中有记录时才执行改变当前记录操作
ifreccount()>0
gobottom&&使最后一个记录成为当前记录
endif
thisform.refresh&&刷新表单,显示当前记录数据
DENPROC
mynavigatorde的初始化事件过程
PROCEDUREInit
Thisform,mynavigator1.cmdTop.click
ENDPROC
3.实现系统用户数据管理功能
实现添加记录功能
PROCEDUREcmdAdd.Click
*取消各个文本框数据绑定属性,在保存后再恢复
thisform.txt编号.controlsource=""
thisform.txt编号.value=""
thisform.txt口令.controlsource=""
thisform.txt口令.value=""
thisform.txt权限.controlsource=""
thisform.txt权限.value=""
*取消文本框的只读属性
thisform.txt编号.readonly=.f.
thisform.txt口令.readonly=.f.
thisform.txt权限.readonly=.f.
thisform.isadding=.T.&&设置添加状态标志
thisform.caption="系统用户数据管理-[添加]"&&修改表单标题
thisform.mynavigator1.enabled=.f.&&禁用记录导航条
thisform.cmdadd.enabled=.f.&&禁用添加按钮
thisform.cmdedit.enabled=.f.&&禁用修改按钮
thisform.cmddelete.enabled=.f.&&禁用删除按钮
thisform.cmdexit.enabled=.f.&&禁用退出按钮
ENDPROC
实现修改记录功能
PROCEDUREcmdEdit.Click
ifreccount()<1
return&&在无记录时直接返回
endif
*取消各个文本框数据绑定属性,在保存后再恢复
thisform.txt编号.controlsource=""
thisform.txt口令.controlsource=""
thisform.txt权限.controlsource=""
thisform.iseditting=.T.&&设置修改状态标志
thisform.caption="系统用户数据管理-[修改]"&&修改表单标题
thisform.mynavigator1.enabled=.f.&&禁用记录导航条
thisform.cmdadd.enabled=.f.&&禁用添加按钮
thisform.cmdedit.enabled=.f.&&禁用修改按钮
thisform.cmddelete.enabled=.f.&&禁用删除按钮
thisform.cmdexit.enabled=.f.&&禁用退出按钮
*取消文本框的只读属性
thisform.txt编号.readonly=.f.
thisform.txt口令.readonly=.f.
thisform.txt权限.readonly=.f.
ENDPROC
实现退出添加或修改状态功能
PROCEDUREcmdEsc.Click
*退出当前修改或添加状态
ifthisform.isaddingorthisform.iseditting
nRecno=recno()&&记录当前记录编号
*恢复各个文本框数据绑定属性
thisform.txt编号.controlsource="sysuserdata.编号"
thisform.txt口令.controlsource="sysuserdata.口令"
thisform.txt权限.controlsource="sysuserdata.权限"
gonrecno
thisform.refresh
*清除编辑和添加状态标记
thisform.isadding=.f.
thisform.iseditting=.f.
*恢复文本框的只读属性
thisform.txt编号.readonly=.t.
thisform.txt口令.readonly=.t.
thisform.txt权限.readonly=.t.
thisform.caption="系统用户数据管理-[浏览]"&&修改表单标题
thisform.mynavigator1.enabled=.t.&&重新启用记录导航条
thisform.cmdexit.enabled=.t.&&重新启用退出按钮
thisform.cmdadd.enabled=.t.&&重新启用添加按钮
thisform.cmdedit.enabled=.t.&&重新启用修改按钮
thisform.cmddelete.enabled=.t.&&重新启用删除按钮
endif
ENDPROC
实现保存记录功能
PROCEDUREcmdSave.Click
*判断当前是否处于添加或编辑状态
ifnot(thisform.isaddingorthisform.iseditting)
return&&在不处于添加或编辑状态时不执行保存操作
endif
*执行保存记录操作,首先获得输入
cNum=alltrim(thisform.txt编号.value)
cPwd=alltrim(thisform.txt口令.value)
cPop=alltrim(thisform.txt权限.value)
ifempty(cNum)&&验证编号是否为空
messagebox("编号不能为空!
",16,"系统用户数据管理")
thisform.txt编号.value=""
thisform.txt编号.setfocus
return
endif
ifempty(cpwd)&&验证口令是否为空
messagebox("口令不能为空!
",16,"系统用户数据管理")
thisform.txt口令.value=""
thisform.txt口令.setfocus
return
endif
ifnot(cpop==chr(48)orcpop==chr(49))&&验证权限代码是否有效
messagebox("权限代码只能为0或1!
",16,"系统用户数据管理")
thisform.txt权限.setfocus
return
endif
*定义一个变量用于表示编号是否被使用
*检查添加的编号是否已被使用
nRecno=recno()&&记录当前记录编号
locatefor编号==cNum
iffound()
ifthisform.isadding
messagebox("编号:
"+cnum+"已被使用!
",16,"系统用户数据管理")
thisform.txt编号.setfocus
return
else
ifnrecno<>recno()
messagebox("编号:
"+cnum+"已被使用!
",16,"系统用户数据管理")
thisform.txt编号.setfocus
return
endif
endif
endif
*将通过验证的数据保存到sysuserdata表
ifthisform.isadding
insertintosysuserdata(编号,口令,权限)values(cnum,cpwd,cpop)
else
replace编号withcnum,口令withcpwd,权限withcpopRECORDnrecno
endif
*恢复各个文本框数据绑定属性
thisform.txt编号.controlsource="sysuserdata.编号"
thisform.txt口令.controlsource="sysuserdata.口令"
thisform.txt权限.controlsource="sysuserdata.权限"
*恢复文本框的只读属性
thisform.txt编号.readonly=.t.
thisform.txt口令.readonly=.t.
thisform.txt权限.readonly=.t.
*使新添加的记录或被修改记录成为当前记录
ifthisform.isadding
gobottom
else
gonrecno
endif
thisform.refresh
*清除编辑和添加状态标记
thisform.isadding=.f.
thisform.iseditting=.f.
thisform.caption="系统用户数据管理-[浏览]"&&修改表单标题
thisform.mynavigator1.enabled=.t.&&重新启用记录导航条
thisform.cmdexit.enabled=.t.&&重新启用退出按钮
thisform.cmdadd.enabled=.t.&&重新启用添加按钮
thisform.cmdedit.enabled=.t.&&重新启用修改按钮
thisform.cmddelete.enabled=.t.&&重新启用删除按钮
messagebox("数据保存成功",64,"系统用户数据管理")
ENDPROC
实现删除记录功能
PROCEDUREcmdDelete.Click
ifreccount()<1
return&&在无记录时直接返回
endif
ifmessagebox("是否删除当前记录",36,"系统用户数据管理")=6&&选择删除记录
nrecno=recno()&&记录当前记录编号
delete&&对记录作删除标记
pack&&彻底删除当前记录
*使被删除记录的下一条记录成为当前记录
ifreccount()<=1
gotop
else
ifnrecno=reccount()+1
gobottom
else
gonrecno
endif
endif
thisform.refresh
endif
ENDPROC
实现关闭表单功能
PROCEDUREcmdExit.Click
ifmessagebox("是否退出系统用户数据管理?
",36,"系统用户数据管理")=6
thisform.release&&关闭系统用户数据管理表单
endif
ENDPROC
4.实现当前用户口令修改功能
实现表单初始化
PROCEDUREIint
*显示用户编号
thisform.txtNum.value=capp_currentuser
*显示用户口令
selectsysuserdata
locateforalltrim(编号)=capp_currentuser
thisform.txtOldPwd.value=口令
ENDPROC
实现清除口令功能
PROCEDUREcmdClear.Click
*清除新口令
thisform.txtnewpwd1.value=""
thisform.txtnewpwd2.value=""
ENDPROC
实现保存新口令功能
PROCEDUREcmdSave.Click
*检查两次输入的口令是否相同
withthisform
IF.txtnewpwd1.value<>.txtnewpwd2.value
messagebox("两次输入的新口令不相同",16,"口令修改")
.txtnewpwd1.setfocus
return
endif
*获得输入的新口令
cpwd=alltrim(.txtnewpwd1.text)
*修改口令
selectsysuserdata
replace口令withcpwdwhile编号=capp_currentuser
capp_currentpwd=cpwd
messagebox("口令修改成功",64,"口令修改")
.txtoldpwd.value=cpwd
.txtnewpwd1.value=""
.txtnewpwd2.value=""
endwith
ENDPROC
实现关闭表单功能
PROCEDUREcmdExit.Click
ifmessagebox("是否退出口令修改?
",36,"口令修改")=6
thisform.release&&关闭口令修改表单
endif
ENDPROC
5.实现读者类型管理功能
初始化表单
PROCEDUREIint
*打开读者类型表readertype
usedata\readertype
*在表单中显示原来的读者类型数据
*显示特殊读者类型数据
gotop
thisform.text2.value=借书量
thisform.text3.value=借书期
thisform.text4.value=有效期
*显示馆员类型数据
skip
thisform.text6.value=借书量
thisform.text7.value=借书期
thisform.text8.value=有效期
*显示教师类型数据
skip
thisform.text10.value=借书量
thisform.text11.value=借书期
thisform.text12.value=有效期
*显示学生类型数据
skip
thisform.text14.value=借书量
thisform.text15.value=借书期
thisform.text16.value=有效期
ENDPROC
实现保存功能
PROCEDUREcommand1.Click
withthisform
ifreccount()=0
*保存特殊读者类型数据
insertintoreadertype(类号,借书量,借书期,有效期);
values("0",.text2.value,.text3.value,.text4.value)
*保存馆员类型数据
insertintoreadertype(类号,借书量,借书期,有效期);
values("1",.text6.value,.text7.value,.text8.value)
*保存教师类型数据
insertintoreadertype(类号,借书量,借书期,有效期);
values("2",.text10.value,.text11.value,.text12.value)
*保存学生类型数据
insertintoreadertype(类号,借书量,借书期,有效期);
values("3",.text14.value,.text15.value,.text16.value)
else
*保存特殊读者类型数据
replace借书量with.text2.value,借书期with.text3.value,有效期with.text4.value;
for类号=="0"
*保存馆员类型数据
replace借书量with.text6.value,借书期with.text7.value,有效期with.text8.value;
for类号=="1"
*保存教师类型数据
replace借书量with.text10.value,借书期with.text11.value,有效期with.text12.value;
for类号=="2"
*保存学生类型数据
replace借书量with.text14.value,借书期with.text15.value,有效期with.text16.value;
for类号=="3"
endif
endwith
messagebox("数据保存成功",64,"读者类型管理")
ENDPROC
实现关闭表单功能
PROCEDUREcommand1.Click
ifmessagebox("是否退出读者类型管理?
",36,"读者类型管理")=6
thisform.release&&关闭读者类型管理表单
endif
ENDPROC
6.实现读者数据管理功能
实现添加记录功能
PROCEDUREcommand1.Click
*取消各个文本框数据绑定属性,在保存后再恢复
thisform.txt证号.controlsource=""
thisform.txt证号.value=""
thisform.txt类号.controlsource=""
thisform.txt类号.value=""
thisform.txt姓名.controlsource=""
thisform.txt姓名.value=""
thisform.txt部门.controlsource=""
thisform.txt部门.value=""
thisform.txt时间.controlsource=""
thisform.txt时间.value=""
*取消文本框的只读属性
thisform.txt证号.readonly=.F.
thisform.txt类号.readonly=.F.
thisform.txt姓名.readonly=.F.
thisform.txt部门.readonly=.F.
thisform.txt时间.read