1、图书管理系统数据库课程设计报告书-刘娜 作者: 日期:2 个人收集整理 勿做商业用途课程设计报告课程设计名称: PHP图书管理系统 系部名称: 软件学院 学生姓名: 刘娜 班 级: 11软1 学 号: 201101080011 成 绩: 指导教师: 董晓刚 开课时间: 2013。6.32013。6.28 课程设计任务书院系:中印计算机软件 专业:软件技术 班级:11软1 学号:201101080011目录1引言1.1 课程设计目的1.2 课程设计背景2系统功能需求:3总体设计3。1系统体系结构设计3。2系统功能模块设计3.3系统主要JSP页面设计3.4数据库设计4系统实现4。1系统运行界面4。
2、2主要代码5课设总结6参考文献一、背景资料:1) 图书馆有各种图书若干万册.2) 每种图书都有书名、图书编号、作者(译者)、出版社、定价和内容简介。3) 借书证记录有借阅者的姓名、工作单位、住址、联系电话等.4) 凭借书证借书,每次最多能借5本书,借书期限最长为60天。二、系统功能需求:1)图书馆借阅书籍于归还书籍的登记。也就是为读者建立一个台账,应用该台账,工作人员能方便地掌握某位读者借了哪些书,借了多长时间。2)编著催还图书通知单.图书馆对所借书籍的最长借阅时间限制为60天,对逾期未还的读者下达催还图书通知单,促其尽快还书,以加快图书的流通.3)提供快速的图书查询功能,方便读者尽快插大所需
3、要的书.4)系统提供的全部功能要简单、直观、实用。三、系统数据库关系的ER图:系统所涉及到的实体及关联关系比较简单,主要的实体只有读者和图书两个,他们通过读者的借阅活动而发生联系,其E-R图如下:读者姓名联系电话工作单位内容提要号在库数量库存数量读者图书图书类别作者出版社图书名称图书编号价格借阅住址读者编号四、系统设计: 1、功能设计: 1) 图书借阅。为有借书证的读者办理借阅登记,登记的内容包括借书证编号、图书编号、借阅日期. 2)图书归还。在适当位置登记,这个适当位置应该由借书证编号和图书编号决定。 3)编制催还图书通知单。对借阅图书超过60天者打印催还图书通知单,其内容包括借书证编号、读
4、者姓名、电话号码、图书编号、名称、作者、出版社、借阅日期等信息。 4)借书证办理与退还.本系统只提供对借书证发放(办理)和回收(退还)两个过程的支持. 5)图书入库预报废.新采购书的入库登记和废旧图书的报废登记。对于新书入库有两种不同的情况:其一是新采购的图书在以前登记过,这次属于补充库存;其二是图书馆以前没有登记过。2、数据库设计:根据ER图,将其转化为如下数据实体,数据库:book.dbc,包括如下的表和视图:1) 借书证发放登记表reader.dbf。借书证编号 C(8)读者姓名 C(8)工作单位 C(30)电话号码 C(11)家庭住址 C(20)办证日期 D退证日期 D2) 图书类型表
5、-typer。dbf 图书类别 C(8)3) 借书登记表-brower。dbf 借书证编号 C(8)图书编号 C(8)借阅日期 D归还日期 D其视图关系可由以下SQL语句定义:Select reader.借书证编号, reader.姓名, reader。电话号码, brower。图书编号,;brower。借阅日期,booker.图书名称,booker。作者;from book!reader inner join book!brower;inner join book!booker;on brower.图书编号=booker.图书编号on reader。 借书证编号= brower. 借书证编号
6、;where brower。借阅日期data()60;and data()-brower。归还日期=0;order by reader。借书证编号3、总体模块设计: 该系统的全部功能由一个主控界面(两个表单)、一个报表以及相关的四个表单组成,其总体模块框图如下:五、模块设计:1、欢迎界面和主控界面表单的设计:图书馆信息管理系统的主界面由“欢迎表单”和“主控表单”组成,主控表单上安排六个命令按钮,分别实现总体框图中的五部分功能和退出系统模块.每个命令按钮触发的结果均执行一条命令,运行一个表单,或启动一个报表文件的运行,或者退回到visual foxpro系统状态.欢迎表单标签的caption属性
7、为“欢迎使用河南理工大学图书管理系统!”,并设置“进入和“退出”两个按钮,通过“进入”按钮(设计代码为:do form 主控表单.scx)进入主控界面,通过“退出按钮退出系统.主控表单的设计代码如下:“借书证管理按钮的click事件代码:do form 借书证管理.scx“借书登记按钮的click事件代码:do form借书登记.scx“还书登记” 按钮的click事件代码:do form还书登记。scx“图书入库与报废” 按钮的click事件代码:do form图书入库与报废。scx“催还书通知” 按钮的click事件代码:report form催还书通知.frx“退出系统”按钮的click
8、事件代码: Release thisform Close all Quit2、其他表单的设计: 1)借书证管理表单设计:此表单的数据源是reader.dbf表,在其支持下完成用户要进行的图书证的发放和退回工作。用户从“借书证编号”文本框中输入一个借书证编号,如果该借书证在reader.dbf表中已存在,系统会在下面的表格对象中显示与之对应的读者情况,否则显示为空。当单击“办理借书证按钮后,系统会在表格中添加一行空记录,等待用户输入新读者的资料,并自动把办证日期赋值为系统当前日期,用户退出表单时系统将新数据存入与表单对应的reader.dbf表中;当用户单击“退还借书证”按钮后,系统把当前日期赋
9、值给换证日期字段,表述该读者已归还借书证。与表单对应的各种对象的属性值和事件代码说明如下:(1)“借书证编号”文本框的属性值和事件代码: Name属性text1 Format属性XXXXXXXXXXInteractivechange事件代码:thisform.dataenvironment.cursor1.filter=借书证编号=+”+trim(this.value)+thisform.refreshreturnLostfocus事件代码: thisform。dataenvironment。cursor1。filter=借书证编号=+”+trim(this.value)+”thisform。
10、refreshreturn(2)“办理借书证”按钮的click事件代码:append blankreplace 借书证编号 with thisform.text1.value,办证日期 with date()thisform。dataenvironment.cursor1。filter=借书证编号=+trim(thisform。text1。value)+”thisform。refreshreturn (3)“退还借书证”按钮的click事件代码: thisform.gird1.column6。text1。value=data()return(4)“退出”按钮的click事件代码:CLOSE A
11、LLThisform。release 其他表单的“退出”按钮的代码完全相同,以后不再进行说明。2) 借书证登记表单的设计:此表单是整个系统的一个主要菜单,共涉及到reader。dbf,booker。dbf,brower.dbf,typer.dbf等四个表。用户在左上角的组合框对象中选择“借书证编号”,文本框中的“读者姓名”与“电话号码”是系统自动显示的。在“选择图类型”组合框中选择要借阅的图类型,表格中显示图书的库存信息,在单击“借阅按钮后,系统自动进行借阅登记,表单下半部分显示该读者现在未归还的图书及借阅日期。下面对有关对象的属性及代码进行说明:(1) 数据环境。数据环境中包含了四个表,其中
12、的cuosor对象与表的对应关系如下:Cuosor1typer。dbf 图书类型表Cuosor2booker.dbf 图书登记表Cuosor3reader.dbf 借书证登记表Cuosor4brower.dbf 借书登记表(2)“借书证编号”组合框的属性和事件代码:Constrolsource属性reader.借书证编号Interactivechange代码: thisform.dataenvironment.cursor3.filter=借书证编号=+”+this。value+”thisform.dataenvironment。cursor4.filter=借书证编号=+”+;this.va
13、lue+”+and data()brower.归还日期=0thisform。refresh lostfocus代码: thisform。dataenvironment。cursor3.filter=借书证编号=+”+this.value+”thisform。dataenvironment。cursor4。filter=借书证编号=+”+;this.value+”+and data()brower.归还日期=0thisform。refresh(3)“图书类型选择”组合的属性: Rowsource属性typer。图书类别(4)显示姓名的文本框: Controlsourcereader.读者姓名(5
14、)显示电话号码的文本:Controlsourcereader。电话号码(6)表单上半部分的表格对象,由表格对象生成器生成即可,该表格对象以booker。dbf表为数据源.(7) 表单下半部分的表格对象,由表格对象生成器生成即可,该表格对象以brower。dbf表为数据源.(8)“借书”按钮的click事件代码如下:if booker.图书编号=trim(thisform。combo2。value) replace booker.在库数量 with booker。在库数量-1endifif used(”brower)select browergo bottomappend blankendifi
15、f booker.图书编号=trim(bo2。value)replace brower。图书编号 with booker。图书编号replace brower。借阅日期 with data()endifif used(”reader”)select readerreplace brower.借书证编号 with reader。借书证编号endifthisform。refreshreturn“图书入库与报废”表单的设计:该表单左上角的“图书编号”文本框供用户输入要登记入库和要报废的图书编号,后面的册数文本框输入对应的或报废的图书册数,如果所输入的图书编号是一个booker.dbf表中已存在的编号
16、(这表示是进行图书报废登记),下面的表格对象中会显示该图书的其他信息,反之,表示一种新书要入库登记,实质是要将这种图书信息添加到booker.dbf数据表中。 对表单中有关对象的属性与代码说明如下:(1) 数据环境。表单中只包含一个booker.dbf表。(2) “图书编号”与“册数”文本框。Name属性分别为text1和text2。(3) 表格对象,由表格生成器生成。(4)“新书入库登记”按钮click事件代码: thisform。dataenvironment。cursor1.filter=图书编号=+trim(thisform。text1.value)+”if eof()append b
17、lankreplace 图书编号 with thisform.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。endif thisform。grid1.column8。text1.value=thisform。grid1。column8.text1.value+va
18、l(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.valueval(thisform.text2.value) thisform。grid1。column9。text1.value=this
19、form.grid1.column9.text1。value-val(thisform.text2.value) thisform。refresh return3、“催还图书通知”报表设计: “催还图书通知”报表的设计过程说明如下:报表数据源 brower.vue视图,该视图已在前面做了说明.报表分组条件 reader.读者姓名报表排序条件 reader。借书证编号该报表由向导程序生成,其后进行了一些格式美化的调整修改工作,关键问题是要先定义好作为数据源的试图文件。六、效果截图七、总结:任何一个社会组织和企业公司在发展过程中都会产生大量的数据,这些数据的组织存储、分析统计有利于提高企业的发展,
20、有利于提高企业的效率.这些数据的组织和存储就是数据模型,就是数据库应用系统开发的任务。数据库应用系统开发的过程一般包括可行性研究、需求分析、系统设计、程序编码、程序调试和系统维护六个阶段.根据数据库应用系统的复杂程度,不一定完全刻板地遵守上述步骤,但是,可行性研究、需求分析、系统设计、程序编码、程序调试是不可缺少的。本次课程设计制作了一个简单的图书馆管理系统,实现了一些图书管理和借阅功能,但与实际系统还是有很大差别的。首先是对应用情况做了简单的理想化处理,因而难以反映实际工作中可能遇到的实际问题;其次,未考虑用户操作中可能出现的错误的处理,而实际上这种错误的处理程序可能占应用系统的很大一部分。如本系统在需求分析和程序健全性方面均存在一些问题,为了解决这些不完善之处,需要在今后的进一步学习中,逐步深入,不断积累经验,不但提高。八参考文献1。JSP课程设计,电子工业出版社.2。JSP 2。0大学教程,2008年,机械工业出版社。3.JSP使用案例教程,2004年,清华大学出版社。4。 JSP程序设计教程,人民邮电出版社。5. JSP程序设计,人民大学出版社。- 14 -