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

下载本文档

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

文档简介

18-图书管理系统数据库课程设计报告书河南理工大学图书管理系统一、背景资料:图书馆有各种图书若干万册。每种图书都有书名、图书编号、作者(译者)、出版社、定价和内容简介。借书证记录有借阅者的姓名、工作单位、住址、联系电话等。凭借书证借书,每次最多能借5本书,借书期限最长为60天。二、系统功能需求:1)图书馆借阅书籍于归还书籍的登记。也就是为读者建立一个台账,应用该台账,工作人员能方便地掌握某位读者借了哪些书,借了多长时间。2)编著催还图书通知单。图书馆对所借书籍的最长借阅时间限制为60天,对逾期未还的读者下达催还图书通知单,促其尽快还书,以加快图书的流通。3)提供快速的图书查询功能,方便读者尽快插大所需要的书。4)系统提供的全部功能要简单、直观、实用。三、系统数据库关系的E—R图:系统所涉及到的实体及关联关系比较简单,主要的实体只有读者和图书两个,他们通过读者的借阅活动而发生联系,其E—R图如下:读者姓名联系电话工作单位内容提要号在库数量库存数量读者姓名联系电话工作单位内容提要号在库数量库存数量读者图书图书类别作者出版社图书名称图书编号价格借阅住址读者编号四、系统设计:1、功能设计:1)图书借阅。为有借书证的读者办理借阅登记,登记的内容包括借书证编号、图书编号、借阅日期。2)图书归还。在适当位置登记,这个适当位置应该由借书证编号和图书编号决定。3)编制催还图书通知单。对借阅图书超过60天者打印催还图书通知单,其内容包括借书证编号、读者姓名、电话号码、图书编号、名称、作者、出版社、借阅日期等信息。4)借书证办理与退还。本系统只提供对借书证发放(办理)和回收(退还)两个过程的支持。5)图书入库预报废。新采购书的入库登记和废旧图书的报废登记。对于新书入库有两种不同的情况:其一是新采购的图书在以前登记过,这次属于补充库存;其二是图书馆以前没有登记过。2、数据库设计:根据E—R图,将其转化为如下数据实体,数据库:book.dbc,包括如下的表和视图:借书证发放登记表——reader.dbf。借书证编号C(8)读者姓名C(8)工作单位C(30)电话号码C(11)家庭住址C(20)办证日期D退证日期D图书登记表——booker.dbf。图书编号C(8)图书名称C(30)作者C(8)出版社C(30)图书类别C(8)图书价格N(5,1)内容提要M库存数量I在库数量I图书类型表——typer.dbf图书类别C(8)借书登记表——brower.dbf借书证编号C(8)图书编号C(8)借阅日期D归还日期D借书视图——brower为了打印催还通知书单的需要,设计了一个借书视图文件,该视图从reader.dbf等3个表中提取了7个字段的数据:reader.借书证编号reader.姓名reader.电话号码brower.图书编号brower.借阅日期booker.图书名称booker.作者其视图关系可由以下SQL语句定义:Selectreader.借书证编号,reader.姓名,reader.电话号码,brower.图书编号,;brower.借阅日期,booker.图书名称,booker.作者;frombook!readerinnerjoinbook!brower;innerjoinbook!booker;onbrower.图书编号=booker.图书编号onreader.借书证编号=brower.借书证编号;wherebrower.借阅日期<data()-60;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事件代码:ReleasethisformCloseallQuit2、其他表单的设计:1)借书证管理表单设计:此表单的数据源是reader.dbf表,在其支持下完成用户要进行的图书证的发放和退回工作。用户从“借书证编号”文本框中输入一个借书证编号,如果该借书证在reader.dbf表中已存在,系统会在下面的表格对象中显示与之对应的读者情况,否则显示为空。当单击“办理借书证”按钮后,系统会在表格中添加一行空记录,等待用户输入新读者的资料,并自动把办证日期赋值为系统当前日期,用户退出表单时系统将新数据存入与表单对应的reader.dbf表中;当用户单击“退还借书证”按钮后,系统把当前日期赋值给换证日期字段,表述该读者已归还借书证。与表单对应的各种对象的属性值和事件代码说明如下:(1)“借书证编号”文本框的属性值和事件代码:Name属性——text1Format属性——‘XXXXXXXXXX’Interactivechange事件代码:thisform.dataenvironment.cursor1.filter='借书证编号='+""+trim(this.value)+""thisform.refreshreturnLostfocus事件代码:thisform.dataenvironment.cursor1.filter='借书证编号='+""+trim(this.value)+""thisform.refreshreturn(2)“办理借书证”按钮的click事件代码:appendblankreplace借书证编号withthisform.text1.value,办证日期withdate()thisform.dataenvironment.cursor1.filter=’借书证编号=’+""+trim(thisform.text1.value)+""thisform.refreshreturn(3)“退还借书证”按钮的click事件代码:thisform.gird1.column6.text1.value=data()return(4)“退出”按钮的click事件代码:CLOSEALLThisform.release其他表单的“退出”按钮的代码完全相同,以后不再进行说明。2)借书证登记表单的设计:此表单是整个系统的一个主要菜单,共涉及到reader.dbf,booker.dbf,brower.dbf,typer.dbf等四个表。用户在左上角的组合框对象中选择“借书证编号”,文本框中的“读者姓名”与“电话号码”是系统自动显示的。在“选择图类型”组合框中选择要借阅的图类型,表格中显示图书的库存信息,在单击“借阅”按钮后,系统自动进行借阅登记,表单下半部分显示该读者现在未归还的图书及借阅日期。下面对有关对象的属性及代码进行说明:数据环境。数据环境中包含了四个表,其中的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.refreshlostfocus代码: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.在库数量-1endififused("brower")selectbrowergobottomappendblankendififbooker.图书编号=trim(bo2.value)replacebrower.图书编号withbooker.图书编号replacebrower.借阅日期withdata()endififused("reader")selectreaderreplacebrower.借书证编号withreader.借书证编号endifthisform.refreshreturn3)还书登记表单的设计:该表单共涉及reader.dbf,brower.dbf和booker.dbf等三个数据表,当用户在借书证编号的组合框内选择一个借书证编号后,系统会自动在后面的文本框中现实与该编号对应的读者姓名和联系电话,并在表格对象中显示该读者尚未归还的书,然后由用户在表格中用鼠标选择其要归还的书,选中后单击“还书”按钮。有关对象的属性及代码说明如下:(1)数据环境。该数据环境包含三个表,数据环境中cursor对象与表的对应关系是:Cursor1——reader.dbfCursor2——brower.dbfCursor3——booker.dbf(2)“借书证编号”组合框的属性和事件代码:Rowsource属性——reader.借书证编号Gotfocus事件代码:Thisform.dataenvironment.cursor1.filter=""thisform.refreshInteractivechange代码:thisform.dataenvironment.cursor1.filter='借书证编号='+""+this.value+""thisform.dataenvironment.cursor2.filter='借书证编号='+""+this.value+""+'anddata()-归还日期=0'thisform.refresh(3)读者姓名文本框属性。Control属性——reader.读者姓名Enable属性——.F.

4)读者电话文本框属性。Control属性——reader.电话号码Enable属性——.F.(5)表格对象。表格对象由表格生成器生成,数据源为brower.Dbf表,并在生成后表格的列对象的enabled属性设为.F.

(6)“还书”按钮的click事件代码:tdbf=alias()select(thisform.dataenvironment.cursor2.alias)replace归还日期withdata()select(thisform.dataenvironment.cursor3.alias)replace在库数量with在库数量+1select&tdbfthisform.refreshreturn4)“图书入库与报废”表单的设计:该表单左上角的“图书编号”文本框供用户输入要登记入库和要报废的图书编号,后面的册数文本框输入对应的或报废的图书册数,如果所输入的图书编号是一个booker.dbf表中已存在的编号(这表示是进行图书报废登记),下面的表格对象中会显示该图书的其他信息,反之,表示一种新书要入库登记,实质是要将这种图书信息添加到booker.dbf数据表中。对表单中有关对象的属性与代码说明如下:数据环境。表单中只包含一个booker.dbf表。“图书编号”与“册数”文本框。Name属性分别为text1和text2。表格对象,由表格生成器生成。(4)“新书入库登记”按钮click事件代码:thisform.dataenvironment.cursor1.filter='图书编号='+""+trim(thisform.text1.value)+""ifeof()appendblankreplace图书编号withthisform.text.valuethisform.refreshthisform.grid1.column1.enable=.t.thisform.grid1.column2.enable=.t.thisform.grid1.column3.enable=.t.thisform.grid1.column4.enable=.t.thisform.grid1.column5.enable=.t.endifthisform.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.refreshreturn(5)“图书报废登记”按钮的click事件代码:thisform.grid1.column8.text1.value=thisform.grid1.column8.text1.valu

温馨提示

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

评论

0/150

提交评论