数据库课程设计报告图书管理和查询系统.doc
《数据库课程设计报告图书管理和查询系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计报告图书管理和查询系统.doc(35页珍藏版)》请在沃文网上搜索。
1、 目录一、实验目的2二、实验工具2三、实验内容和要求.2四、数据库设计21、ER模型.42、流程图.5五、应用程序设计.91、系统结构设计.92、功能模块设计10六、总结17附录.18图书管理和查询系统一、实验目的(1)培养综合应用PowerBuilder进行应用程序设计和解决实际问题的能力;(2)加深对PowerBuilder编程环境和编程方法的理解;(3)发挥各人的想像能力和分析能力,拓展思维空间;(4)掌握应用程序设计的基本方法;(5)巩固已经学到的编程技术,学会在编程中学习编程。二、实验工具SQL Server 2005和PowerBuilder三、实验内容和要求题目:图书管理和查询系
2、统功能:(1)图书信息的录入和删除,出版社信息管理等;(2)图书的检索(包括按作者姓名、出版时间、出版社名称、图书类别、书名、关键宇等);(3)图书的租借(包括借书登记、限借数量控制、还书登记、过期罚款计算等);(4)借书证件的管理(包括办新证件,挂失、注销等)(5)系统设置(主要是不同类型证件的可借书的总量和借书时间等)要求:(1)按照应用程序设计的4个阶段进行,熟悉每个阶段需要解决的问题以及解决的方法;(2)使用SQL Server设计数据库和数据表,注意把握数据库的设计原则;(3)要求应用程序有菜单栏,操作方便;(4)必须完成功能1-5。强调一点:在借书输入证件ID时,首先检索是否在“黑
3、名单”和“挂失表”中,后再校验证件的真伪。在借、还书时要显示本证件已借书的量和图书信息;证件注销时数据的参照完整性问题。在系统设置中可随机设置不同借书书证件(如教师和学生)的可借书数量和借书的时间。(5)应用程序界面和风格不作具体要求,各人按照自己的思路去做,发挥自己的创造。四、数据库设计 本数据库名称为Book,数据库中包括:图书信息表(BookInfo)借书信息表(Loan)证件信息表(CertificateInfo)系统设置信息表(System_setup)。各表的数据结构如下:表一:图书信息表(BookInfo)字段名意义数据类型宽度NullPrimaryKeyBookID图书编号Nu
4、mberic8NoISBNISBN书号Char30YseTitle书名Char40YsePublish出版日期DatetimeYseAuthor作者Char30YseWords字数(千字)IntegerYsePublisherID出版社IDNumberic4YseNumber印刷册数IntegerYsePrice定价MoneyYseKeyword关键字Char30YseAbstract摘要Varchar400YseFlag标记TinyintYes表二:借书信息表(Loan)字段名意义数据类型宽度NullPrimaryKeyBookID图书编号Numric18NoCert_ID借书证书IDNum
5、ric18NoLoandates借书日期DateYesReturn还书日期DateYesFlag标记(还、没还)TinyintYesNum标识IntYes 表三:证件信息表(CertificateInfo)字段名意义数据类型宽度NullPrimaryKeyCert_ID借书证IDNumric5NoCert_name证件名称Char10YesCert_value证件号码Numric18YesName姓名Char8YesDepart所在部门Char20YesFlag标记TinyintYesFlag1标记TinyintYes表四:系统设置信息表(System_setup)字段名意义数据类型宽度Nul
6、lPrimaryKeyCert_type借书证类型Char20NoNumber_limit书本限制Numric18NoDate_limit借书期限Char10NoFlag标记TinyintNo1、ER模型 根据实验目的,我们设计规划出的实体有如下:书籍信息实体、证件信息实体、借书表信息实体、系统表信息实体,各实体的E-R图描述如下:书籍信息实体 图书编号ISBN编号书名出版日期出版社ID作者字数印刷次数定价关键字摘要标记(有没有借出)借书证信息实体标记(有效,挂失)借书证ID证件名称姓名所在部门证件号码标记(学生,教职工借书证)借书表信息实体借书证ID图书编号借书时间还书时间标记(借书,还书)
7、标记种子系统表信息实体证件类型书本限制借书期限标记(证件类型)2、流程图(1)图书管理模块新书入库模块给变量赋值开始判断部分控件是否缺少数据判断出版社格式正确否判断图书编号重复否将新书信息录入数据库结束yesyesyesnonono旧书注销模块注销开始判断图书编号缺少否该图书存在否结束开始yesnoyesno按图书编号注销注销开始判断书名缺少否该图书存在否结束开始yesnoyesno按书名注销(2)图书检索模块查询开始判断图书编号缺少否该图书存在否结束开始yesnoyesno按图书编号查询查询开始判断书名缺少否该图书存在否结束开始yesnoyesno按书名查询(3)证件管理模块办理新证模块 挂
8、失模块给变量赋值开始判断该借书证ID是否已存在办理新证件结束yesno挂失开始判断借书证号缺少否判断该借书证ID存在否结束开始yesnoyesno挂失判断该证件是否已处于挂失状态yesno注销模块取消挂失开始判断借书证号缺少否判断该借书证ID存在否结束开始yesnoyesno取消挂失判断该证件是否不处于挂失状态yesno注销开始判断该借书证存在不判断该证件是否还有书未还结束开始yesnoyesno(4)系统设置模块开始判断数据库中有无该类型的设置结束开始yesno直接录入数据库修改原有的设置(5)图书租借模块借书模块开始判断信息填写完整否判断该借书证存在不判断该借书证有效否判断图书馆中有这本书
9、没该借书证有借书记录没判断有书超期没判断借书数量是否已满借书将借书信息录入数据库中的Loan表中,并且修改BookInfo表中的标记位Flag.结束nononononoyesyesnonoyesyesyesyesyes还书模块开始判断图书编号是否缺少判断该图书编号存在不判断是否超期还书将还书时间录入Loan表,修改BookInfo、Loan表的Flag的值结束罚款yesnonoyesyesno五、应用程序设计1、系统结构设计 本图书管理和查询系统主要实现6大功能:图书管理、图书检索、图书租借、证件管理、系统设置、帮助。每个模块又分成多个详细的功能子模块。详情如下图所示:功能表图书管理图书检索图
10、书租借证件管理系统设置帮助新书入库旧书销毁按图书编号查询按图名查询借书还书办理新证证件挂失证件注销学生系统设置教职工系统设置系统功能介绍2、功能模块设计主菜单(功能表) 图书管理主界面新书入库模块 录入数据库BookInfo表中的新书信息旧书销毁模块数据库中BookInfo表中的信息变化图书查询模块 办理新证件模块数据库中CertificateInfo表中录入的新借书证信息挂失证件模块数据库中相应的变化挂失状态(Flah=0)取消挂失后,有效状态(Flag=1)注销证件模块注销证件实例(注销失败有未还的书)数据库CertificateInfo中的数据变化系统设置模块数据库中System_set
11、up表中的信息图书租借模块借书数据库中Loan表中的信息还书数据库中Loan表中的信息改变 帮助 六、总结这次课设,可以说是我最喜欢的一次,因为我本身对数据库这门课很感兴趣,考试时取得了不错的成绩,这给了我更大的动力去好好做课设。我们这次做的是图书管理和查询系统。之前,我们只是去图书馆借书还书,但都没有注意图书馆的管理系统。这是我觉得作为一个计算机科学与技术(软件方向)的学生很惭愧。我对于本专业不够敏感,不能从生活的点点滴滴中去发现有关专业的东西。这是我最大感触之一。我想通过这次教训后,以后,我会都加留心。其次,我们之前有做过数据库的实验,所用的工具都是一样的,只是这次的项目更庞大一些,也带有
12、一点点的难度,很多情况都是我们要考虑的。当然,这次课设让我复习了窗口控件中关于选项卡控件的有关内容,有关数据窗口对象的内容,以及有关数据窗口控件的内容,进一步加深对数据窗口的了解,熟悉数据窗口画板的使用和数据窗口对象属性的调整方法,加深对数据窗口类型、各种类型数据窗口的特点以及使用方法的认识。同时掌握选项卡控件的使用和编程方法,也掌握数据窗口各种类型数据检索程序的设计方法。其实,一开始课设时,我并没有及早下手去做。我初步构思了一下,自己要走什么风格,做的界面是什么样子,都有什么功能。之后,我每天都给自己一个小任务。我很赞同老师的看法,他提的这个方法和我所想的一样。经过这三周的时间,证明,我们俩
13、是对的。我没有把自己弄得手忙脚乱,可以说我很轻松的完成了。但我有一点小遗憾,我的界面是黑白的,看其他同学做的界面很漂亮,让人看得很舒服。这次课设,有时候也很让人头疼。第一,说实话,我并不是什么非常细心的人,尽管很多人都认为挺细心的,但他们不知道,那是我曾经犯过的错,所以,帮他们处理起来很容易。有时候,我因为插入语句中少了一个逗号,在那检查、调试,可就是录入不到数据库中,真的很让人崩溃。然后经过一段想抓破脑子的痛苦后,忽然间,发现自己少了一个逗号,真的很想去疯掉。想想一个这么大的人啦,却拜倒在一个小小的逗号身上。无奈啊第二,这里面又很情况要考虑。有时候觉得自己考虑的挺周全的,没问题的,心里还带着
14、点小得瑟。可是吧,跟别人一交流,就发现自己有多么的傻。也发现大家都是半斤八两,在将自己的思路时,却都是很拽的样子。想想很傻。再有就是,自己在运行时,一不小心输错了,然后就发现,即使错了,他依旧执行,瞬间感觉这系统很强悍。然后就开始拼命的修改。直到,所有的情况都考虑全了。虽然,有点考脑子,但我很喜欢,因为,我们已经长大了,在现实生活中,我们做任何事都得尽可能的考虑周全,不能再像小孩子一样我行我素。这是我这次课设的又一重要收获。第三,课设,使我们更加学会与人沟通。特别是在他(她)写了好几个小时的代码,修改一个错误好几个小时后,该怎么与他沟通,给他建议。千万不能吼,很可能一触即发,一场惊天动地的谈论
15、就此上演。第四,我认为计划真的很重要。我知道大家都在暗中比拼,有的同学上午在机房做一上午,中午不睡觉,继续奋战,下午继续,直到深夜,我们都睡觉了他还在奋战。我很佩服这样的同学,但是我并不喜欢。人的大脑会疲惫的,而且一天到晚都面对一堆奇形怪状的字符。我每天按自己的小计划走,只要我今天完成了我给自己制定的任务,我就可以休息、玩。如果,我还有精力,我会提前做一些东西,来减轻明天的任务。这个习惯,让我很顺利的按期做完了我的系统。第五,心态、战略也很重要。遇到问题,特别是那种大家都看不出的错误,千万不要叨叨个不停,去干点其他事,过会再来看他。有时候就是我们潜意识的作用,过会再来处理,可能一下就修改好了。
16、其实,我不怕他出错,因为,很多知识都是在有错之后尽心去处理时学会的。总结一下,做课设一定要细心,有计划,有自己的想法,要沉下心来一步一步做,不要以完实验为目的,遇到问题错误,试着去研究它错的根源在哪里,我感觉这样做实验才更有价值。附录(1)新书入库的代码Long ll_BookID,ll_ISBN,ll_PublisherID,ll_i=0,ll_jdate ld_Publishstring ls_Title,ls_Author,ls_Keyword,ls_Abstractinteger li_Words,li_Number,li_Price,li_Flag=1/图书编号检验if sle_bo
17、okid.text= OR isNull(sle_bookid.text) thenmessagebox(缺少数据,请输入图书编号!)sle_bookid.setfocus()returnend if/书名检验if sle_title.text= OR isNull(sle_title.text) thenmessagebox(缺少数据,请输入书名!)sle_title.setfocus()return end if/出版日期检验if sle_publish.text AND not isNull(sle_publish) thenif isDate(sle_publish.text)then
18、ld_publish=date(sle_publish.text)elsemessagebox(输入数据错误,请输入“年-月-日”的日期格式!)sle_publish.setfocus()return end ifend if/作者检验if sle_author.text= OR isNull(sle_author.text) thenmessagebox(缺少数据,请输入作者姓名!)sle_author.setfocus()return end if/关键字检验if mle_keyword.text= OR isNull(mle_keyword.text) thenmessagebox(缺少
19、数据,请输入关键字!)mle_keyword.setfocus()return end ifll_BookID=long(trim(sle_bookid.text)/检查图书编号有无重号select BookInfo.BookIDinto:ll_ifrom BookInfowhere BookInfo.BookID=: ll_BookID;if ll_i0 thenmessageBox(错误信息,图书编号+string(ll_i)+号重号!请改正。)sle_bookid.setfocus()returnend if/SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾。最常见的用途是
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告 图书 管理 查询 系统
