图书馆数据库课程设计报告.docx
《图书馆数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《图书馆数据库课程设计报告.docx(42页珍藏版)》请在冰豆网上搜索。
图书馆数据库课程设计报告
河南理工大学
万方科技学院课程设计报告
2010—2011学年第一学期
课程名称数据库系统原理
设计题目图书馆管理系统
学生姓名
学号
专业班级08计算机一班
指导教师刘艳霞
2011年01月8日
摘要…………………………………………………………1
第一章需求分析…………………………………………..1
1.1VisualFoxPro简介………………………………………1
1.2系统要求………………………………………………….1
第二章概念结构设计……………………………………..2
2.1图书管理数据流图………………………………………………2
2.2由数据流图抽象出E-R图…………………………………2
第三章逻辑结构设计……………………………………..3
3.1数据库的设计……………………………………………3
3.2数据库表的设计…………………………………………3
第四章系统功能实现……………………………………..5
4.1身份验证模块…………………………………..................6
4.2系统界面模块…………………………………..…………9
4.3信息打印模块……………………………………………………………14
4.4系统维护模块…………………………………………………………....15
4.4.1进入系统维护功能界面的设计…………………………………………15
4.4.2典藏图书管理界面的设计………………………………………………..16
4.4.3读者信息管理界面的设计………………………………………………..18
4.4.4读者种类管理界面的设计…......................................................................19
4.4.5图书征订界面的设计……………………………………………………..19
4.4.6图书借阅管理界面的设计………………………………..........................20
4.5密码维护模块……………………………………………….29
4.6系统信息模块……………………………………………….30
4.7编写主程序………………………………………………31
4.8系统连编…………………………………………………31
第五章设计总结…………………………………………32
参考文献…………………………………………………..32
摘 要
系统采用VisualFoxPro6.0进行开发,具体功能包括:
权限设置、身份验证、图书信息查询、读者信息查询、密码修改、读者信息管理、典藏图书管理、图书借阅管理、征订图书管理、信息打印。
论文从需求分析、概念结构设计、逻辑结构设计、系统功能实现等方面对系统的开发及实现过程进行了详细的阐述。
第一章需求分析
1.1VisualFoxPro简介
VisualFoxPro6.0(简称VFP)是由Microsoft公司推出的。
VFP可以简化数据管理,而且使应用程序的开发流程更为合理。
它使组织数据、定义数据库规则和建立应用程序等工作变得简单易行。
利用可视化的设计工具和向导,可以快速创建表单、查询和报表。
在VFP中,可以使用数据库组织和建立表和视图间的关系,在使用数据库时,你可以在表一级进行功能扩展,如创建字段级规则、设置默认字段值和触发器等。
VFP提供了真正无模式操作,能够轻松的进行对多个表单的自动协调,而且很容易的运行一个表单的多个实例。
还有提供的丰富有事件处理机制,给用户提供一个更丰富的交互环境。
利用表单,可以让用户在熟悉的环境下查看数据或将数据输入数据库。
但表单提供的远不止一个界面:
它还提供丰富的对象集,这些对象能响应用户(或系统)事件,这样就能使用户尽可能方便和直观的完成信息管理工作。
VFP提供了一个功能强大的表单设计器,使得表单的设计变得又快又容易。
表单和表单集是拥有自己的属性、事件和方法程序的对象,在表单设计器中可以设置这些属性、事件和方法程序。
1.2系统要求
本系统是采用VisualFoxPro6.0开发的,设计的是图书管理系统。
系统满足以下几点要求:
(1)读者可随时查询书库中现有书籍的种类、数量与存放位置以及图书的信息。
(2)读者可以随时查询读者信息,修改登录密码。
以及打印各种表单信息。
(3)管理员可随时查询书籍借阅情况。
包括借书人单位、姓名、借书证号、借书日期和还书日期。
(4)管理员可以查阅修改读者信息及资料。
(5)管理员可以查阅修改典藏图书信息。
(6)管理员可以管理征订图书信息。
第二章概念结构设计
2.1图书管理数据流图
(1)第一层数据流图:
(2)第二层数据流图:
2.2图书管理E-R图
由数据流图抽象出图书管理系统的E-R图如下所示:
第三章逻辑结构设计
3.1数据库的设计
数据库是一种工作环境,它存储了一个“表”的集合,在表之间可以建立关系,对数据字段可以设置属性和触发规则,从而保证表之间数据的完整性。
本系统要实现图书资料和读者资料的管理,所以创建的图书管理数据库中应包含“读者信息”表(readerdata.dbf)、“图书信息”表(storebibli.dbf)、“读者类型”表(readertype.dbf)、“图书借阅记录”表(lenddata.dbf)和“征订新书(rebookdata.dbf)”表。
3.2数据库表的设计
本系统中要用到的表的字段的属性设置以及输入的数据分别如下:
表3-1“readerdata.dbf”
表3-2“storebibli.dbf”
表3-3“readertype.dbf“
表3-4“rebookdata.dbf“
并利用以上表建立视图“读者借阅记录”和“读者”如下“
第四章系统功能实现
系统功能结构图如下图所示:
4.1身份验证模块
身份验证模块对使用者的访问权限进行检查,登录用户的身份信息被存放在数据库的readerdata.daf中,当用户在表单中输入编号和密码时,将和readerdata.dbf中的信息进行比较,只有信息完全吻合的用户才有权使用本系统。
1.表单界面的设计
(1)打开项目管理器,选择文档选项卡,选择表单选项,然后单击新建按钮创建新的表单“身份验证.scx”,在弹出的对话框中单击新建按钮,打开表单设计器窗口进行表单设计。
(2)将“readerdata.dbf”数据表添加到该表单的数据环境中。
在表单中添加2个文本框、3个标签和2个按钮、1个容器、1个计时器并对其属性进行设置如下:
控件
表单属性
取值
Form1
Caption
AutoCenter
BorderStyle
ShowWindow
Controlbox
WindowState
身份验证
.T._真
2-固定对话框
2-作为顶层表单
.F.-假
1-模式
Label1
Caption
欢迎使用图书馆管理系统
Label2
Caption
编号
Label3
Caption
密码
Command1
Caption
登录
Timer1
Interval
100
Command2
Caption
退出
Text1
Name
txtname
Text2
Name
password
txtpassword
*
2.添加响应代码
(1)“确定”按钮控件的click事件:
SETEXACTON
nlogtimes=nlogtimes+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.
else
messagebox("密码输入错误!
",16,"用户登录验证")
thisform.txtpassword.value=""
thisform.txtpassword.setfocus
endif
endif
(2)退出按钮的click事件:
nr=messagebox("你选择了退出登录,是否退出?
",68,"用户登录")
ifnr=6
thisform.release
endif
(3)Timer1的timer事件:
IFthisform.label1.left<-8
thisform.label1.left=thisform.width
else
thisform.label1.left=thisform.label1.left-3
endif
(4)form1的load事件:
publicnMaxLogTimes
nMaxLogTimes=3
publicnLogTimes
nLogTimes=0
(5)form1的unload事件:
releasenmaxlogtimes,nlogtimes
clearevents
4.2系统界面模块
系统界面模块是用户调用系统各种功能的主界面,是用户与该系统的一个接口。
1.表单界面的设计
(1)打开项目管理器,选择文档选项卡,选择表单选项,然后单击新建按钮创建新的表单“系统界面.scx”,在弹出的对话框中单击新建按钮,打开表单设计器窗口进行表单设计。
(2)将“storebibli.dbf”数据表、“读者借阅记录”视图、“读者”视图添加到该表单的数据环境中。
在表单中添加1个shockwaveflashobject、1个标签、1个图像、1个命令按钮组、1个计时器并对其属性进行设置如下:
控件
属性
取值
Form1
Caption
图书管理系统
Timer1
Interval
Height
Width
1000
61
229
Label1
用来显示当前系统时间
ActiveX
Name
Visible
Movie1用来播放音乐
.F.
Commandgroup1
Buttoncount
6
Command1
Caption
Height
Width
信息查询
60
60
Command2
Caption
Height
Width
修改密码
60
60
Command3
Caption
Height
Width
打印
60
60
Command4
Caption
Height
Width
系统维护
60
60
Command5
Caption
Height
Width
关于
60
60
Command6
Caption
Height
Width
退出
60
60
Image1
Picture
Pageframe1
Pagecount
Visible
2
.F.
Page1
Caption
图书查询
Label1
Caption
请选择查询内容
Combo1
Rowsource
Rowsourcetype
Storebibli
8-结构
Command1
Caption
查询
Command2
Caption
刷新
Command3
Caption
退出
Grid1
Readonly
Recordmark
Rowsource
.T.
.T.
Storebibli
Page2
Caption
读者查询
Label1
Caption
请选择查询内容
Combo1
Rowsource
Rowsourcetype
“读者”视图
8-结构
Command1
Caption
查询
Command2
Caption
刷新
Command3
Caption
退出
Grid1
Readonly
Recordmark
Rowsource
.T.
.T.
“读者借阅记录”视图
2.添加响应代码
(1)Form1的init事件:
setbellon
setbellto"LoopyMusic.wav",0
?
CHR(7)&&使主表单播放音乐loopymusic.wav
(2)Commandgroup1中:
Command1按钮的click事件:
thisform.pageframe1.visible=.T.
Command2按钮的click事件:
doform修改密码
Command3按钮的click事件:
doform打印表单
Command4按钮的click事件:
ifcapp_currentpop="1"
mand4.enabled=.f.
else
doform系统维护
endif
Command5按钮的click事件代码:
doform关于
Command6按钮的click事件代码:
clearevents
thisform.release
quit
(3)Timer1控件的timer事件:
thisform.label1.caption=time()
(4)movie1的init事件:
this.movie=sys(5)+sys(2003)+"\LoopyMusic.wav"
this.playing=.t.
this.loop=.t.
(5)在Page1中(page1主要用于读者对图书资料的查询):
(a)Command1按钮的click事件:
SELECTstorebibli
DOCASE
caseThisform.pageframe1.page1.Combo1.displayValue="条码"
setfiltertoThisform.pageframe1.page1.Text1.value=storebibli.条码
Thisform.Refresh
caseThisform.pageframe1.page1.Combo1.displayValue="索书号"
setfiltertoThisform.pageframe1.page1.Text1.value=storebibli.索书号
Thisform.Refresh
caseThisform.pageframe1.page1.Combo1.displayValue="书名"
setfiltertoThisform.pageframe1.page1.Text1.value=storebibli.书名
Thisform.Refresh
caseThisform.pageframe1.page1.Combo1.displayValue="作者"
setfiltertoThisform.pageframe1.page1.Text1.value=storebibli.作者
Thisform.Refresh
caseThisform.pageframe1.page1.Combo1.displayValue="出版社"
setfiltertoThisform.pageframe1.page1.Text1.value=storebibli.出版社
Thisform.Refresh
ENDCASE
(b)Command2按钮的click事件代码:
thisform.pageframe1.page1.refresh
(c)Command3按钮的click事件代码:
thisform.pageframe1.visible=.F.
(6)在Page2中(page2主要用于读者对读者个人信息的查询):
(a)Command1按钮的click事件代码:
select读者借阅记录
docase
casebo1.displayvalue="证号"
setfiltertothisform.pageframe1.page2.text1.value=读者借阅记录.证号
thisform.refresh
casebo1.displayvalue="姓名"
setfiltertothisform.pageframe1.page2.text1.value=读者借阅记录.姓名
thisform.refresh
casebo1.displayvalue="类号"
setfiltertothisform.pageframe1.page2.text1.value=读者借阅记录.类号
thisform.refresh
casebo1.displayvalue="部门"
setfiltertothisform.pageframe1.page2.text1.value=读者借阅记录.部门
thisform.refresh
casebo1.displayvalue="时间"
setfiltertothisform.pageframe1.page2.text1.value=读者借阅记录.时间
thisform.refresh
endcase
(b)Command2按钮的click事件代码:
thisform.pageframe1.page2.refresh
(c)Command3按钮的click事件代码:
thisform.pageframe1.visible=.F.
4.3信息打印模块
信息打印模块主要用于各种信息资料报表的查看和打印。
1.表单界面的设计
(1)打开项目管理器,选择文档选项卡,选择表单选项,然后单击新建按钮创建新的表单“打印表单.scx”,在弹出的对话框中单击新建按钮,打开表单设计器窗口进行表单设计。
(2)在表单中添加5个命令按钮并对其属性进行设置如下:
控件
表单属性
取值
Form
Caption
打印信息
Command1
Caption
典藏图书信息
Command2
Caption
读者借阅信息
Command3
Caption
读者类型
Command4
Caption
新书征订数据
Command5
Caption
关闭
2.添加响应代码
(1)Command1按钮的click事件:
reportform典藏图书信息preview
(2)Command2按钮的click事件:
reportform读者借阅记录preview
(3)Command3按钮的click事件:
reportform读者类型preview
(4)Command4按钮的click事件:
reportform征订数据报表preview
(5)Command5按钮的click事件:
ifmessagebox("是否退出打印信息?
",36,"打印信息")=6
thisform.release
endif
4.4系统维护模块
系统维护模块主要功能是管理员对系统进行管理。
只有权限为0的管理员才有资格使用该功能,如果非管理员(即权限为1)则该功能不可使用。
从而维护了系统的稳定和安全。
该模块中管理员可以对读者用户的信息进行修改、增加、删除,以及找回用户密码等操作。
同时还可以对典藏图书信息进行修改,和征订新图书。
4.4.1进入系统维护功能界面的设计
通过该界面管理员可以选择所要进行的操作,并进入响应功能界面。
1.表单界面的设计
(1)打开项目管理器,选择文档选项卡,选择表单选项,然后单击新建按钮创建新的表单“系统维护.scx”,在弹出的对话框中单击新建按钮,打开表单设计器窗口进行表单设计。
(2)表单中添加5个按钮并对其属性进行设置如下:
2.添加响应代码
(1)Command1按钮的click事件代码:
doform读者信息管理
(2)Command2按钮的click事件代码:
doform图书借阅管理
(3)Command3按钮的click事件代码:
doform典藏图书管理
(4)Command4按钮的click事件代码:
doform图书征订
(5)Command5按钮的click事件代码:
ifmessagebox("是否退出系统管理?
",36,"系统管理")=6
thisform.release
endif
4.4.2典藏图书管理界面的设计
在该界面管理员可以对典藏图书信息进行修改、增加、删除操作。
1.表单界面的设计
(1)打开项目管理器,选择文档选项卡,选择表单选项,然后单击新建按钮创建新的表单“典藏图书管理.scx”,在弹出的对话框中单击表单向导按钮,打开向导选取窗口,选择表单向导来进行表单设计,如图:
(2)在向导的数据库和表中选择storebibli.dbf,让后在可用字段中选择所有字段,将它们添加到选定字段栏中,如下图所示:
(3)单击finish按钮,完成表单的创建,创建的表单如下图:
2.添加响应代码
(a)在表单Form的init事件中添加代码:
localformtitle,myvalue
formtitle=this.caption
this.caption=sys(2015)+[SetFormAttri]
hwnd=FindWindow(0,this.caption)
this.caption=formtitle
myvalue=int(rand(second())*10)
mytime=200
docase
casemyvalue=1
mytype=5
casemyvalue=2
mytype=9
casemyvalue=3
mytype=3
casemyvalue=4
mytype=12
casemyvalue=5
mytype=8
casemyvalue=6
mytype=1