数据库系统原理课程设计报告图书馆管理系统.doc

上传人:仙人指路1688 文档编号:2395506 上传时间:2023-02-17 格式:DOC 页数:35 大小:1.12MB
返回 下载 相关 举报
数据库系统原理课程设计报告图书馆管理系统.doc_第1页
第1页 / 共35页
数据库系统原理课程设计报告图书馆管理系统.doc_第2页
第2页 / 共35页
数据库系统原理课程设计报告图书馆管理系统.doc_第3页
第3页 / 共35页
数据库系统原理课程设计报告图书馆管理系统.doc_第4页
第4页 / 共35页
数据库系统原理课程设计报告图书馆管理系统.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《数据库系统原理课程设计报告图书馆管理系统.doc》由会员分享,可在线阅读,更多相关《数据库系统原理课程设计报告图书馆管理系统.doc(35页珍藏版)》请在三一办公上搜索。

1、河南理工大学万方科技学院课程设计报告2010 2011学年 第 一 学期课程名称 数据库系统原理 设计题目 图书馆管理系统 学生姓名 学 号 专业班级 08计算机一班 指导教师 2011年01月8日目 录摘要1第一章 需求分析.11.1 VisualFoxPro简介11.2系统要求.1第二章 概念结构设计.22.1图书管理数据流图22.2由数据流图抽象出E-R图2第三章 逻辑结构设计.33.1 数据库的设计33.2 数据库表的设计3第四章 系统功能实现.54.1身份验证模块.64.2系统界面模块.94.3信息打印模块144.4系统维护模块.154.4.1进入系统维护功能界面的设计154.4.2

2、典藏图书管理界面的设计.164.4.3读者信息管理界面的设计.184.4.4读者种类管理界面的设计.194.4.5图书征订界面的设计.194.4.6图书借阅管理界面的设计.204.5密码维护模块.294.6系统信息模块.304.7编写主程序314.8系统连编31第五章 设计总结32参考文献.32摘要系统采用Visual FoxPro6.0进行开发,具体功能包括:权限设置、身份验证、图书信息查询、读者信息查询、密码修改、读者信息管理、典藏图书管理、图书借阅管理、征订图书管理、信息打印。论文从需求分析、概念结构设计、逻辑结构设计、系统功能实现等方面对系统的开发及实现过程进行了详细的阐述。第一章 需

3、求分析1.1 VisualFoxPro简介Visual FoxPro 6.0(简称VFP) 是由Microsoft公司推出的。VFP 可以简化数据管理,而且使应用程序的开发流程更为合理。它使组织数据、定义数据库规则和建立应用程序等工作变得简单易行。利用可视化的设计工具和向导,可以快速创建表单、查询和报表。在VFP中,可以使用数据库组织和建立表和视图间的关系,在使用数据库时,你可以在表一级进行功能扩展,如创建字段级规则、设置默认字段值和触发器等。VFP 提供了真正无模式操作,能够轻松的进行对多个表单的自动协调,而且很容易的运行一个表单的多个实例。还有提供的丰富有事件处理机制,给用户提供一个更丰富

4、的交互环境。利用表单,可以让用户在熟悉的环境下查看数据或将数据输入数据库。但表单提供的远不止一个界面:它还提供丰富的对象集,这些对象能响应用户(或系统)事件,这样就能使用户尽可能方便和直观的完成信息管理工作。V FP提供了一个功能强大的表单设计器,使得表单的设计变得又快又容易。表单和表单集是拥有自己的属性、事件和方法程序的对象,在表单设计器中可以设置这些属性、事件和方法程序。1.2系统要求本系统是采用Visual FoxPro6.0开发的,设计的是图书管理系统。系统满足以下几点要求:(1)读者可随时查询书库中现有书籍的种类、数量与存放位置以及图书的信息。(2)读者可以随时查询读者信息,修改登录

5、密码。以及打印各种表单信息。(3)管理员可随时查询书籍借阅情况。包括借书人单位、姓名、借书证号、借书日期和还书日期。(4)管理员可以查阅修改读者信息及资料。(5)管理员可以查阅修改典藏图书信息。(6)管理员可以管理征订图书信息。第二章 概念结构设计2.1图书管理数据流图(1)第一层数据流图:借阅信息出版社信息图书信息读者信息管理员图书管理数据库(2)第二层数据流图:借还书查询结果信息查询信息新出版社信息新图书信息新读者信息管理员更新读者信息更新图书信息更新出版社信息读者信息表图书信息表出版社信息表借阅信息表查询2.2图书管理E-R图由数据流图抽象出图书管理系统的E-R图如下所示:第三章 逻辑结

6、构设计3.1 数据库的设计数据库是一种工作环境,它存储了一个“表”的集合,在表之间可以建立关系,对数据字段可以设置属性和触发规则,从而保证表之间数据的完整性。本系统要实现图书资料和读者资料的管理 , 所以创建 的图书管理数据库中应包含“读者信息”表(readerdata.dbf)、“图书信息 ”表(storebibli.dbf)、“读者类型”表(readertype.dbf)、“图书借阅记录 ”表(lenddata.dbf)和“征订新书(rebookdata.dbf)”表。3.2 数据库表的设计本系统中要用到的表的字段的属性设置以及输入的数据分别如下:表3-1 “readerdata.dbf”

7、表3-2“storebibli.dbf”表3-3“readertype.dbf“表3-4“rebookdata.dbf“并利用以上表建立视图“读者借阅记录”和“读者”如下“第四章 系统功能实现系统功能结构图如下图所示: 身份验证图书管理系统修改密码打印信息系统维护查询退出 征订信息管理借阅信息管理图书管理读者信息管理读者借阅图书信息征订信息读者信息读者类型图书信息4.1身份验证模块身份验证模块对使用者的访问权限进行检查,登录用户的身份信息被存放在数据库的readerdata.daf中,当用户在表单中输入编号和密码时,将和readerdata.dbf中的信息进行比较,只有信息完全吻合的用户才有权

8、使用本系统。1.表单界面的设计(1)打开项目管理器,选择文档选项卡,选择表单选项,然后单击新建按钮创建新的表单“身份验证.SCX”,在弹出的对话框中单击新建按钮,打开表单设计器窗口进行表单设计。(2)将“readerdata.dbf”数据表添加到该表单的数据环境中。在表单中添加2个文本框、3个标签和2个按钮、1个容器、1个计时器并对其属性进行设置如下:控件表单属性取值Form1CaptionAutoCenterBorderStyleShowWindowControlboxWindowState身份验证.T._真2-固定对话框2-作为顶层表单.F.-假1-模式Label1Caption欢迎使用图

9、书馆管理系统Label2Caption编号Label3Caption密码Command1Caption登录Timer1Interval100Command2Caption退出Text1NametxtnameText2Namepasswordtxtpassword*2.添加响应代码(1)“确定”按钮控件的click事件:SET EXACT ONnlogtimes=nlogtimes+1if nlogtimesnmaxlogtimescstr=你已超过允许的最多登录次数,登录对话框将关闭messagebox(cstr,16,用户登录验证)thisform.releaseelsecname=allt

10、rim(thisform.txtname.value)cpassword=alltrim(thisform.txtpassword.value)locate for alltrim(编号)=cnameif not found()messagebox(用户名输入错误!,16,用户登录验证)thisform.txtname.selstart=0thisform.txtname.sellength=len(cname)thisform.txtname.setfocusreturnendifif alltrim(密码)=cpasswordmessagebox(登录成功!,64,用户登录验证)thisf

11、orm.releasecapp_currentuser=cnamecapp_currentpwd=cpasswordcapp_currentpop=权限lapp_logon=.t.elsemessagebox(密码输入错误!,16,用户登录验证)thisform.txtpassword.value=thisform.txtpassword.setfocusendifendif(2)退出按钮的click事件:nr=messagebox(你选择了退出登录,是否退出?,68,用户登录)if nr=6thisform.releaseendif(3)Timer1的timer事件: IF thisform

12、.label1.left-8thisform.label1.left=thisform.widthelsethisform.label1.left=thisform.label1.left-3endif(4)form1的load事件:public nMaxLogTimesnMaxLogTimes=3public nLogTimesnLogTimes=0(5)form1的unload事件:release nmaxlogtimes,nlogtimesclear events4.2系统界面模块系统界面模块是用户调用系统各种功能的主界面,是用户与该系统的一个接口。1.表单界面的设计(1)打开项目管理器

13、,选择文档选项卡,选择表单选项,然后单击新建按钮创建新的表单“系统界面.SCX”,在弹出的对话框中单击新建按钮,打开表单设计器窗口进行表单设计。(2)将“storebibli.dbf”数据表、“读者借阅记录”视图、“读者”视图添加到该表单的数据环境中。在表单中添加1个shockwave flash object、1个标签、1个图像、1个命令按钮组、1个计时器并对其属性进行设置如下: 控件属性取值Form1Caption图书管理系统Timer1IntervalHeightWidth100061229Label1用来显示当前系统时间ActiveXNameVisibleMovie1 用来播放音乐.F

14、.Commandgroup1Buttoncount6Command1CaptionHeightWidth信息查询6060Command2CaptionHeightWidth修改密码6060Command3CaptionHeightWidth打印6060Command4CaptionHeightWidth系统维护6060Command5CaptionHeightWidth关于6060Command6CaptionHeightWidth退出6060Image1PicturePageframe1PagecountVisible2.F.Page1Caption图书查询Label1Caption请选择查

15、询内容Combo1RowsourceRowsourcetypeStorebibli8-结构Command1Caption查询Command2Caption刷新Command3Caption退出Grid1ReadonlyRecordmarkRowsource.T.T.StorebibliPage2Caption读者查询Label1Caption请选择查询内容Combo1RowsourceRowsourcetype“读者”视图8-结构Command1Caption查询Command2Caption刷新Command3Caption退出Grid1ReadonlyRecordmarkRowsource

16、.T.T.“读者借阅记录”视图2.添加响应代码(1)Form1的init事件:set bell onset bell to LoopyMusic.wav,0?CHR(7) &使主表单播放音乐loopymusic.wav(2)Commandgroup1中:Command1按钮的click事件:thisform.pageframe1.visible=.T.Command2按钮的click事件:do form 修改密码Command3按钮的click事件:do form 打印表单Command4按钮的click事件:if capp_currentpop=1mand4.enabled=.f.elsed

17、o form 系统维护endifCommand5按钮的click事件代码:do form 关于Command6按钮的click事件代码:clear eventsthisform.releasequit(3)Timer1控件的timer事件:thisform.label1.caption=time()(4)movie1的init事件:this.movie=sys(5)+sys(2003)+LoopyMusic.wavthis.playing=.t.this.loop=.t.(5)在Page1中(page1主要用于读者对图书资料的查询):(a)Command1按钮的click事件:SELECT s

18、torebibli DO CASE case Thisform.pageframe1.page1.Combo1.displayValue=条码 set filter to Thisform.pageframe1.page1.Text1.value=storebibli.条码 Thisform.Refresh case Thisform.pageframe1.page1.Combo1.displayValue=索书号 set filter to Thisform.pageframe1.page1.Text1.value=storebibli.索书号 Thisform.Refresh case T

19、hisform.pageframe1.page1.Combo1.displayValue=书名 set filter to Thisform.pageframe1.page1.Text1.value=storebibli.书名 Thisform.Refresh case Thisform.pageframe1.page1.Combo1.displayValue=作者 set filter to Thisform.pageframe1.page1.Text1.value=storebibli.作者 Thisform.Refresh case Thisform.pageframe1.page1.C

20、ombo1.displayValue=出版社 set filter to Thisform.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 读者借阅记录do

21、case case bo1.displayvalue=证号set filter to thisform.pageframe1.page2.text1.value=读者借阅记录.证号thisform.refreshcase bo1.displayvalue=姓名set filter to thisform.pageframe1.page2.text1.value=读者借阅记录.姓名thisform.refreshcase bo1.displayvalue=类号set filter to thisform.pageframe1.page2.text1.value=读者借阅记录.类号thisform

22、.refreshcase bo1.displayvalue=部门set filter to thisform.pageframe1.page2.text1.value=读者借阅记录.部门thisform.refreshcase bo1.displayvalue=时间set filter to thisform.pageframe1.page2.text1.value=读者借阅记录.时间thisform.refreshendcase(b)Command2按钮的click事件代码:thisform.pageframe1.page2.refresh(c)Command3按钮的click事件代码:th

23、isform.pageframe1.visible=.F.4.3信息打印模块信息打印模块主要用于各种信息资料报表的查看和打印。1.表单界面的设计(1)打开项目管理器,选择文档选项卡,选择表单选项,然后单击新建按钮创建新的表单“打印表单.SCX”,在弹出的对话框中单击新建按钮,打开表单设计器窗口进行表单设计。(2)在表单中添加5个命令按钮并对其属性进行设置如下:控件表单属性取值FormCaption打印信息Command1Caption典藏图书信息Command2Caption读者借阅信息Command3Caption读者类型Command4Caption新书征订数据Command5Captio

24、n关闭2.添加响应代码(1)Command1按钮的click事件:report form 典藏图书信息 preview(2)Command2按钮的click事件:report form 读者借阅记录 preview(3)Command3按钮的click事件:report form 读者类型 preview(4)Command4按钮的click事件:report form 征订数据报表 preview(5)Command5按钮的click事件:if messagebox(是否退出打印信息?,36,打印信息)=6thisform.releaseendif4.4系统维护模块系统维护模块主要功能是管理

25、员对系统进行管理。只有权限为0的管理员才有资格使用该功能,如果非管理员(即权限为1)则该功能不可使用。从而维护了系统的稳定和安全。该模块中管理员可以对读者用户的信息进行修改、增加、删除,以及找回用户密码等操作。同时还可以对典藏图书信息进行修改,和征订新图书。4.4.1进入系统维护功能界面的设计通过该界面管理员可以选择所要进行的操作,并进入响应功能界面。1.表单界面的设计(1)打开项目管理器,选择文档选项卡,选择表单选项,然后单击新建按钮创建新的表单“系统维护.SCX”,在弹出的对话框中单击新建按钮,打开表单设计器窗口进行表单设计。(2)表单中添加5个按钮并对其属性进行设置如下:2.添加响应代码

26、(1)Command1按钮的click事件代码:do form 读者信息管理(2)Command2按钮的click事件代码:do form 图书借阅管理(3)Command3按钮的click事件代码:do form 典藏图书管理(4)Command4按钮的click事件代码:do form 图书征订(5)Command5按钮的click事件代码:if messagebox(是否退出系统管理?,36,系统管理)=6thisform.releaseendif4.4.2典藏图书管理界面的设计在该界面管理员可以对典藏图书信息进行修改、增加、删除操作。1.表单界面的设计(1)打开项目管理器,选择文档选项

27、卡,选择表单选项,然后单击新建按钮创建新的表单“典藏图书管理.SCX”,在弹出的对话框中单击表单向导按钮,打开向导选取窗口,选择表单向导来进行表单设计,如图:(2)在向导的数据库和表中选择storebibli.dbf,让后在可用字段中选择所有字段,将它们添加到选定字段栏中,如下图所示:(3)单击finish按钮,完成表单的创建,创建的表单如下图:2.添加响应代码(a)在表单Form的init事件中添加代码:local formtitle,myvalueformtitle=this.captionthis.caption=sys(2015)+SetFormAttrihwnd=FindWindow

28、(0,this.caption)this.caption=formtitlemyvalue=int(rand(second()*10)mytime=200do casecase myvalue=1mytype=5case myvalue=2mytype=9case myvalue=3mytype=3case myvalue=4mytype=12case myvalue=5mytype=8case myvalue=6mytype=10case myvalue=7mytype=6case myvalue=7mytype=8case myvalue=8mytype=2otherwisemytype=

29、16endcaseAnimateWindow(hwnd,mytime,mytype)clear dlls(b)在form的load事件中添加代码:declare integer FindWindow in win32API string lpClassName,string lpWindowNamedeclare integer AnimateWindow in win32API integer hwnd,integer dwTime,integer dwFlags(a)和(b)实现表单的动态闪现效果。4.4.3读者信息管理界面的设计在该界面管理员可以对读者信息进行修改、增加、删除、查找等操作

30、。1.表单界面的设计同4.2.4.2一样利用表单向导,选择readerdata.dbf建立”读者信息管理.scx”.如下图所示:4.4.4读者种类管理界面的设计在该界面管理员可以对读者种类信息进行修改、查阅等操作。1.表单界面的设计同4.2.4.2一样利用表单向导,选择readertype.dbf建立”读者种类.scx”.如下图所示:4.4.5图书征订界面的设计在该界面管理员可以对征订图书的信息进行修改、增加、删除、查找等操作。1.表单界面的设计同4.2.4.2一样利用表单向导,选择rebookdata.dbf建立”图书征订.scx”.如下图所示:4.4.6图书借阅管理界面的设计该界面管理员可

31、以对读者的借阅信息进行修改,可以进行借书、还书、续借等功能。输入读者的证号,按enter键,下面表格中即可显示该读者的借阅信息。在表格中点击某行,相应的图书条码会自动填充在图书条码框中,点击相应的按钮即可进行各种操作。1.表单界面的设计(1)打开项目管理器,选择文档选项卡,选择表单选项,然后单击新建按钮创建新的表单“图书借阅管理.SCX”,在弹出的对话框中单击新建按钮,打开表单设计器窗口进行表单设计。(2)将“readerdata.dbf”、 “storebibli.dbf” 、“readertype.dbf”、 “lenddata.dbf”数据表添加到该表单的数据环境中。在表单中添加10个标

32、签、9个文本框、5个按钮、1个表格、2个容器并对其属性进行设置如下:2.添加响应代码(1)Form1的init事件:thisform.cmbroom.additem(电子阅览室)thisform.cmbroom.additem(工程技术书库)thisform.cmbroom.additem(工程技术阅览室)thisform.cmbroom.additem(工具书库)thisform.cmbroom.additem(新书阅览室)thisform.cmbroom.additem(文理书库)thisform.cmbroom.additem(文理书阅览室)thisform.cmbroom.listin

33、dex=1thisform.grid1.column1.header1.caption=条码thisform.grid1.column2.header1.caption=书名thisform.grid1.column3.header1.caption=索书号thisform.grid1.column4.header1.caption=库室thisform.grid1.column5.header1.caption=借期thisform.grid1.column6.header1.caption=还期thisform.grid1.column1.width=50thisform.grid1.co

34、lumn2.width=200thisform.grid1.column3.width=150thisform.grid1.column4.width=80thisform.grid1.column5.width=60thisform.grid1.column6.width=60(2)txtnum的keypress事件:LPARAMETERS nKeyCode, nShiftAltCtrlif nkeycode=13ccode=alltrim(this.text)if not empty(ccode)select readerdata.*,借书量,借书期,有效期;from readerdata

35、,readertype;where readerdata.类号=readertype.类号 and alltrim(证号)=ccode;into cursor tempcursorselect tempcursorif reccount()=0messagebox(借阅证号输入错误,16,图书借阅管理)returnelsego topthisform.txtname.value=姓名thisform.txtdept.value=部门if 有效期=0thisform.txtoutdate.value=无时间限制elsenyear=year(时间)nmonth=month(时间)nday=day(

36、时间)thisform.txtoutdate.value=date(nyear+有效期,nmonth,nday)endifif 借书期=0thisform.txtlenddate.value=无限制elsethisform.txtlenddate.value=alltrim(str(借书期)+个月endifdo casecase 类号=0thisform.txttype.value=特殊读者thisform.txtsum.value=50case 类号=1thisform.txttype.value=馆员thisform.txtsum.value=30case 类号=2thisform.txt

37、type.value=教师thisform.txtsum.value=20case 类号=3thisform.txttype.value=学生thisform.txtsum.value=15endcaseendifuseselect lenddata.条码,书名,索书号,库室,借期,还期 from lenddata,storebibli;where lenddata.条码=storebibli.条码 and;alltrim(lenddata.证号)=alltrim(this.text)and;lenddata.库室=storebibli.库室名;into cursor tempcursorth

38、isform.txtlended.value=reccount()thisform.grid1.recordsourcetype=1thisform.grid1.recordsource=tempcursorselect tempcursorgo topcmsg=n=0if 还期date() and (not empty(还期)cmsg=cmsg+ +条码+chr(13)+chr(10)n=n+1endifif val(thisform.txtsum.text)=val(thisform.txtlended.text)thisform.cmdlend.enabled=.f.elsethisfo

39、rm.cmdlend.enabled=.t.endifthisform.cmdreturn.enabled=.t.if n0cmsg=共+alltrim(str(n)+本图书过期,条形码如下:+;chr(13)+chr(10)+cmsgmessagebox(cmsg,16,图书借阅管理)thisform.cmdlend.enabled=.f.thisform.cmdrelend.enabled=.f.elsethisform.cmdlend.enabled=.t.thisform.cmdrelend.enabled=.t.endifendifendif(3)Command1按钮的click事件

40、代码:if empty(thisform.txtcode.text)messagebox(请输入书目条码,16,图书借阅管理)thisform.txtcode.setfocusreturnendifccode=alltrim(thisform.txtcode.text)croom=thisform.cmbroom.valueselect storebiblilocate for alltrim(条码)=ccode and alltrim(库室名)=croomif not found()messagebox(“+croom+”+无条码图书,16,图书借阅管理)thisform.txtcode.s

41、etfocusreturnendifselect tempcursorlocate for alltrim(条码)=ccodeif found()messagebox(读者已经借阅该条码图书,16,图书借阅管理)thisform.txtcode.setfocusreturnendifndate=val(thisform.txtlenddate.text)if ndate=0insert into lenddata(条码,证号,库室,借期);values(ccode,alltrim(thisform.txtnum.text),croom,date()elsenyear=year(date()nmonth=month(date()nday=day(date()nmonth=nmonth+ndateif nmonth12nyear=nyear+1nmonth=nmonth-12endifddate=date(nyear,nmonth,nday)insert into lenddat

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号