数据库系统原理课程设计报告-图书馆管理系统.doc_第1页
数据库系统原理课程设计报告-图书馆管理系统.doc_第2页
数据库系统原理课程设计报告-图书馆管理系统.doc_第3页
数据库系统原理课程设计报告-图书馆管理系统.doc_第4页
数据库系统原理课程设计报告-图书馆管理系统.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河南理工大学河南理工大学 万方科技学院课程设计报告万方科技学院课程设计报告 2010 2011 学年 第 一 学期 课程名称 数据库系统原理 设计题目 图书馆管理系统 学生姓名 学 号 专业班级 08 计算机一班 指导教师 2011 年 01 月 8 日 目目 录录 摘要1 第一章 需求分析1 1.11.1 visualfoxprovisualfoxpro 简介简介1 1 1. .2 2 系系统统要要求求.1 第二章 概念结构设计2 2.1 图书管理数据流图图书管理数据流图2 2.2 由数据流图抽象出由数据流图抽象出 e-r 图图2 第三章 逻辑结构设计3 3.13.1 数据库的设计数据库的设计3 3.23.2 数据库表的设计数据库表的设计3 第四章 系统功能实现5 4.1 身份验证模块身份验证模块6 4.2 系统界面模块系统界面模块9 4.3 信息打印模块信息打印模块14 4.4 系统维护模块系统维护模块15 4.4.14.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.74.7 编写主程序编写主程序31 4.84.8 系统连编系统连编31 第五章 设计总结32 参考文献32 河南理工大学万方科技学院 1 摘摘 要要 系统采用 visual foxpro6.0 进行开发,具体功能包括:权限设置、身份验证、 图书信息查询、读者信息查询、密码修改、读者信息管理、典藏图书管理、图 书借阅管理、征订图书管理、信息打印。 论文从需求分析、概念结构设计、逻辑结构设计、系统功能实现等方面对 系统的开发及实现过程进行了详细的阐述。 第一章第一章 需求分析需求分析 1.11.1 visualfoxprovisualfoxpro 简介简介 visual foxpro 6.0(简称 vfp) 是由 microsoft 公司推出的。vfp 可以简 化数据管理,而且使应用程序的开发流程更为合理。它使组织数据、定义数据 库规则和建立应用程序等工作变得简单易行。利用可视化的设计工具和向导, 可以快速创建表单、查询和报表。在 vfp 中,可以使用数据库组织和建立表和 视图间的关系,在使用数据库时,你可以在表一级进行功能扩展,如创建字段 级规则、设置默认字段值和触发器等。vfp 提供了真正无模式操作,能够轻松 的进行对多个表单的自动协调,而且很容易的运行一个表单的多个实例。还有 提供的丰富有事件处理机制,给用户提供一个更丰富的交互环境。利用表单, 可以让用户在熟悉的环境下查看数据或将数据输入数据库。但表单提供的远不 止一个界面:它还提供丰富的对象集,这些对象能响应用户(或系统)事件, 这样就能使用户尽可能方便和直观的完成信息管理工作。v fp 提供了一个功能 强大的表单设计器,使得表单的设计变得又快又容易。表单和表单集是拥有自 己的属性、事件和方法程序的对象,在表单设计器中可以设置这些属性、事件 和方法程序。 1 1. .2 2 系系统统要要求求 本系统是采用visual foxpro6.0 开发的,设计的是图书管理系统。系统满足以 下几点要求: (1)读者可随时查询书库中现有书籍的种类、数量与存放位置以及图书的信息。 河南理工大学万方科技学院 2 (2)读者可以随时查询读者信息,修改登录密码。以及打印各种表单信息。 (3)管理员可随时查询书籍借阅情况。包括借书人单位、姓名、借书证号、借 书日期和还书日期。 (4)管理员可以查阅修改读者信息及资料。 (5)管理员可以查阅修改典藏图书信息。 (6)管理员可以管理征订图书信息。 第二章第二章 概念结构设计概念结构设计 2.1 图书管理数据流图图书管理数据流图 (1)第一层数据流图: 借阅信息 出版社信息 图书信息 读者信息 管理员 图书管理数据库 (2)第二层数据流图: 借还书 查询结果信息 查询信息 新出版 社信息 新图书 信息 新读者 信息 管理员 更新读者信息 更新图书信息 更新出版社信息 读者信息表 图书信息表 出版社信息表 借阅信息表 查询 2.2 图书管理图书管理 e-r 图图 由数据流图抽象出图书管理系统的 e-r 图如下所示: 河南理工大学万方科技学院 3 第三章第三章 逻辑结构设计逻辑结构设计 3.13.1 数据库的设计数据库的设计 数据库是一种工作环境,它存储了一个“表”的集合,在表之间可以建立 关系,对数据字段可以设置属性和触发规则,从而保证表之间数据的完整性。 本系统要实现图书资料和读者资料的管理 , 所以创建 的图书管理数据库 中应包含“读者信息”表(readerdata.dbf)、“图书信息 ”表 (storebibli.dbf)、“读者类型”表(readertype.dbf)、“图书借阅记录 ”表(lenddata.dbf)和“征订新书(rebookdata.dbf)”表。 3.23.2 数据库表的设计数据库表的设计 本系统中要用到的表的字段的属性设置以及输入的数据分别如下: 表3-1 “readerdata.dbf” 河南理工大学万方科技学院 4 表3-2“storebibli.dbf” 表3-3“readertype.dbf“ 河南理工大学万方科技学院 5 表3-4“rebookdata.dbf“ 并利用以上表建立视图“读者借阅记录”和“读者”如下“ 第四章第四章 系统功能实现系统功能实现 系统功能结构图如下图所示:系统功能结构图如下图所示: 河南理工大学万方科技学院 6 4.1 身份验证模块身份验证模块 身份验证模块对使用者的访问权限进行检查,登录用户的身份信息被存放在数 据库的 readerdata.daf 中,当用户在表单中输入编号和密码时,将和 readerdata.dbf 中的信息进行比较,只有信息完全吻合的用户才有权使用本系统。 1.表单界面的设计 (1)打开项目管理器,选择文档选项卡,选择表单选项,然后单击新建按钮创 建新的表单“身份验证.scx”,在弹出的对话框中单击新建按钮,打开表单设计 器窗口进行表单设计。 (2)将“readerdata.dbf”数据表添加到该表单的数据环境中。在表单中添加 2 个文本框、3 个标签和 2 个按钮、1 个容器、1 个计时器并对其属性进行设置如 下: 控件表单属性取值 身份验证 打印 信息 查 询 修改 密码 图 书 信 息 读 者 信 息 图 书 信 息 读 者 借 阅 征 订 信 息 读 者 类 型 系 统 维 护 读 者 信 息 管 理 图书管理系统 图 书 管 理 借阅 信息 管理 征订 信息 管理 退 出 河南理工大学万方科技学院 7 form1caption autocenter borderstyle showwindow controlbox windowstate 身份验证 .t._真 2-固定对话框 2-作为顶层表单 .f.-假 1-模式 label1caption欢迎使用图书馆 管理系统 label2caption编号 label3caption密码 command1caption登录 timer1interval100 command2caption退出 text1nametxtname text2name password txtpassword * 2.添加响应代码 (1)“确定”按钮控件的 click 事件:set exact on nlogtimes=nlogtimes+1 if nlogtimesnmaxlogtimes 河南理工大学万方科技学院 8 cstr=“你已超过允许的最多登录次数,登录对话框将关闭“ messagebox(cstr,16,“用户登录验证“) thisform.release else cname=alltrim(thisform.txtname.value) cpassword=alltrim(thisform.txtpassword.value) locate for alltrim(编号)=cname if not found() messagebox(“用户名输入错误!“,16,“用户登录验证“) thisform.txtname.selstart=0 thisform.txtname.sellength=len(cname) thisform.txtname.setfocus return endif if alltrim(密码)=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,“用户登录“) if nr=6 河南理工大学万方科技学院 9 thisform.release endif (3)timer1 的 timer 事件: if thisform.label1.left0 cmsg=“共“+alltrim(str(n)+“本图书过期,条形码如下:“+; chr(13)+chr(10)+cmsg messagebox(cmsg,16,“图书借阅管理“) thisform.cmdlend.enabled=.f. thisform.cmdrelend.enabled=.f. else thisform.cmdlend.enabled=.t. thisform.cmdrelend.enabled=.t. endif endif endif (3)command1 按钮的 click 事件代码:if empty(thisform.txtcode.text) messagebox(“请输入书目条码“,16,“图书借阅管理“) thisform.txtcode.setfocus return endif ccode=alltrim(thisform.txtcode.text) croom=thisform.cmbroom.value select storebibli 河南理工大学万方科技学院 25 locate for alltrim(条码)=ccode and alltrim(库室名)=croom if not found() messagebox(“+croom+“”“+“无条码图书“,16,“图书借阅管理“) thisform.txtcode.setfocus return endif select tempcursor locate for alltrim(条码)=ccode if found() messagebox(“读者已经借阅该条码图书“,16,“图书借阅管理“) thisform.txtcode.setfocus return endif ndate=val(thisform.txtlenddate.text) if ndate=0 insert into lenddata(条码,证号,库室,借期); values(ccode,alltrim(thisform.txtnum.text),croom,date() else nyear=year(date() nmonth=month(date() nday=day(date() nmonth=nmonth+ndate if nmonth12 nyear=nyear+1 nmonth=nmonth-12 endif ddate=date(nyear,nmonth,nday) insert into lenddata(条码,证号,库室,借期,还期); values(ccode,alltrim(thisform.txtnum.text),croom,date(),ddate) 河南理工大学万方科技学院 26 endif cnum=alltrim(thisform.txtnum.text) select lenddata.条码,书名,索书号,库室,借期,还期 from lenddata,storebibli; where lenddata.条码=storebibli.条码 and alltrim(lenddata.证号)=cnum and ; lenddata.库室=storebibli.库室名; into cursor tempcursor thisform.txtlended.value=reccount() thisform.grid1.recordsourcetype=1 thisform.grid1.recordsource=tempcursor if thisform.txtsum.value=thisform.txtlended.value thisform.cmdlend.enabled=.f. else thisform.cmdlend.enabled=.t. endif update storebibli set 可借数=可借数-1; where alltrim(条码)=ccode and alltrim(库室名)=croom (4)command2 按钮的 click 事件代码:if empty(thisform.txtcode.text) messagebox(“请输入图书条码“,16,“图书借阅管理“) thisform.txtcode.setfocus return endif ccode=alltrim(thisform.txtcode.text) select tempcursor locate for alltrim(条码)=ccode if not found() messagebox(“读者没有借阅条形码图书“,16,“图书借阅管理“) thisform.txtcode.setfocus return endif ndate=val(thisform.txtlenddate.text) 河南理工大学万方科技学院 27 if ndate=0 update lenddata set 借期=date(); where alltrim(条码)=ccode else nyear=year(date() nmonth=month(date() nday=day(date() nmonth=nmonth+ndate if nmonth12 nyear=nyear+1 nmonth=nmonth-12 endif ddate=date(nyear,nmonth,nday) update lenddata set 借期=date(),还期=ddate; where alltrim(条码)=ccode endif cnum=alltrim(thisform.txtnum.text) select lenddata.条码,书名,索书号,库室,借期,还期 from lenddata,storebibli; where lenddata.条码=storebibli.条码 and alltrim(lenddata.证号)=cnum and ; lenddata.库室=storebibli.库室名; into cursor tempcursor thisform.txtlended.value=reccount() thisform.grid1.recordsourcetype=1 thisform.grid1.recordsource=tempcursor if thisform.txtsum.value=thisform.txtlended.value thisform.cmdlend.enabled=.f. else thisform.cmdlend.enabled=.t. endif 河南理工大学万方科技学院 28 (5)command3 按钮的 click 事件代码:if empty(thisform.txtcode.text) messagebox(“请输入图书条码“,16,“图书借阅管理“) thisform.txtcode.setfocus return endif cnum=alltrim(thisform.txtnum.text) ccode=alltrim(thisform.txtcode.text) select tempcursor locate for alltrim(条码)=ccode if not found() messagebox(“读者没有借阅条形码图书“,16,“图书借阅管理“) thisform.txtcode.setfocus return endif select lenddata delete all for alltrim(条码)=ccode and alltrim(证号)=cnum pack select lenddata.条码,书名,索书号,库室,借期,还期 from lenddata,storebibli; where lenddata.条码=storebibli.条码 and alltrim(lenddata.证号)=cnum and ; lenddata.库室=storebibli.库室名; into cursor tempcursor thisform.txtlended.value=reccount() thisform.grid1.recordsourcetype=1 thisform.grid1.recordsource=tempcursor thisform.cmdlend.enabled=.t. croom=thisform.cmbroom.value update storebibli set 可借数=可借数+1; where alltrim(条码)=ccode and alltrim(库室名)=croom (6)command4 按钮的 click 事件代码:thisform.txtnum.value=“ thisform.txtname.value=“ 河南理工大学万方科技学院 29 thisform.txtdept.value=“ thisform.txtoutdate.value=“ thisform.txtcode.value=“ thisform.txtlenddate.value=“ thisform.txttype.value=“ thisform.txtsum.value=“ thisform.txtlended.value=“ thisform.grid1.recordsource=“ (7)command5 按钮的 click 事件代码: if messagebox(“是否退出图书借阅管理?“,36,“图书借阅管理“)=6 thisform.release endif 4.5 密码维护模块密码维护模块 该模块读者可以修改自己的密码。 1.表单界面的设计 (1)打开项目管理器,选择文档选项卡,选择表单选项,然后单击新建按钮创 建新的表单“修改密码.scx”,在弹出的对话框中单击新建按钮,打开表单设计 器窗口进行表单设计。 (2)将“readerdata.dbf”数据表添加到该表单的数据环境中。在表单中添加 4 个标签和 3 个按钮、1 个图像并对其属性进行设置如下: 河南理工大学万方科技学院 30 2.添加响应代码 (1)同“典藏图书管理.scx”表单一样添加代码实现表单的动态闪现效果。 (2)command1 按钮的 click 事件:with thisform if .txtnewpwd1.value.txtnewpwd2.value messagebox(“两次输入的新密码不相同“,16,“密码修改“) .txtnewpwd1.setfocus return endif cpwd=alltrim(.txtnewpwd1.text) select readerdata replace 密码 with cpwd while 编号=capp_currentuser capp_currentpwd=cpwd messagebox(“密码修改成功“,64,“密码修改“) .txtoldpwd.value=cpwd .txtnewpwd1.value=“ .txtnewpwd2.value=“ endwith (3)command2 按钮的 click 事件: if messagebox(“是否退出密码修改?“,36,“密码修改“)=6 thisform.release endif (4)command3 按钮的 click 事件:thisform.txtnewpwd1.value=“

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论