1、图书管理系统java课设报告-邹刚组 作者: 日期:3 个人收集整理 勿做商业用途沈 阳 工 程 学 院课 程 设 计课程设计题目: Java程序设计课程设计 -图书管理系统 系 别 信息工程系 班级 软件072 学生姓名 邹刚、罗姗姗、李呈呈、刘兰兰 学 号 31 01 04 05 指导教师 衣云龙、李波 职称 助 教、讲师 起止日期:2009年6月15日起至2009年6月26日止沈 阳 工 程 学 院课程设计任务书课程设计题目: Java程序设计课程设计 -图书管理系统 系 别 信息工程系 班级 软件072 学生姓名 邹刚、罗姗姗、李呈呈、刘兰兰 学 号 31 01 04 05 指导教师
2、衣云龙、李波 职称 助 教、讲师 课程设计进行地点: 实训F 任 务 下 达 时 间: 2009 年 6 月 15 日起止日期: 2009年6月15日起-至2009年6月26日止教研室主任 费雅洁 2009年 6月 12 日批准I1. 设计的原始资料及依据查阅有关数据库设计、java程序设计、面向对象程序设计等资料,进一步加深对课程内容的理解,利用程序设计的基本思想进行程序的开发,进一步掌握编程方法和技巧,提高学生用程序的思想来解决实际问题的能力.本课程设计主要涉及到需求分析、总体设计、详细设计以及底层数据库设计几个主要环节.2设计的主要内容及要求(1)写出系统的需求分析。(2)写出数据库设计
3、.(3)写出系统的详细设计及各模块的功能。(4)编写代码,开发系统.3。 对设计说明书撰写内容、格式、字数的要求(1)学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等.课程设计说明书(论文)的结构及各部分内容要求参照沈阳工程学院毕业设计(论文)撰写规范执行.应做到文理通顺,内容正确完整,书写工整,装订整齐。(2)装订格式:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、结论、致谢、参考文献.(3)课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字.4. 设计完成后应提交成果的种类、数量、质量等方面的要求(1)每组提交一份课程设计报告。(2)每组
4、提交一份课程设计成品。5. 时间进度安排顺序阶段日期计 划 完 成 内 容备注16。15查阅资料,充分解读题目内容,小组分工.26。16进行系统的需求分析及.数据库概念结构设计,逻辑结构设计。36.17进行系统的详细设计,确定各功能模块及模块间接口数据。46。18单元模块编程及调试。56。19单元模块编程及调试.66。22单元模块集成。76。23单元模块集成。86。24系统功能测试。96.25检查成品。106.26撰写课程设计报告。6。 主要参考资料(文献)1 耿祥义.JAVA2 实用教程.北京:清华大学出版社,20062 朱仲杰.JAVA2 全方位学习。北京:机械工业出版社,2006 3 张
5、思民。JAVA程序设计实践教程.北京:清华大学出版社,20064 汤一平。Java 语言程序设计。北京:科学出版社,20065 刘艺。Java 程序设计大学教程. 北京:机械工业出版社,20066 耿祥义。Java课程设计.北京:清华大学出版社,20037 Sharon Zakhour. Java教程。 北京:人民邮电出版社,2007沈 阳 工 程 学 院java程序设计课程设计成绩评定表系(部):信息工程系 班级: 软件072 学生姓名:邹刚、罗姗姗、李呈呈、刘兰兰 指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程
6、安排。0。15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0。25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0。55432指导教师评审成绩(加权分合计乘以8) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0。25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正
7、确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0。35432评阅教师评审成绩(加权分合计乘以4)分加权分合计评 阅 教 师 签 名: 年 月 日答 辩 小 组 评 审 意 见评价内容具 体 要 求权重评 分加权分学生汇报汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求.0。55432答 辩思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。0.55432答辩小组评审成绩(加权分合计乘以8)分加权分合计答辩小组教师签名: 年 月 日课 程 设 计 总
8、 评 成 绩分摘 要随着信息技术的发展,计算机已被广泛的应用于社会的各个领域,成为推动社会发展的技术动力。而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓.软件产业已成为社会信息化进程中的一个战略性产业.在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品.尤其是在校园里,各种软件的应用无处不在,为我们的学习和生活提供了方便。学校的图书馆不仅给我们提供看书学习的地方,还给我们提供了一套功能齐全的图书馆系统,方便我们搜索书籍、借阅图书。我们本次的Java课程设
9、计的最终目标是实现一个图书馆管理系统,使其具有一般图书管理系统所具有的功能,可以实现管理员日志、管理员添加、管理员退出、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、书籍借阅与归还等功能.因为Java是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,所以用Java编程为我们本次程序的编写提供了方便。在设计中我们主要进行了数据库及类的设计,把整系统分成了15个类和5个表。通过应用awt、swing、sql、util等包,合理的添加了按钮、菜单、文本框、文本区、表格等组件类,还包含窗口、面板等容器类,经过设计者合理的布局,完成了窗体的设计,并通过建立JDBC
10、-ODBC桥接器连接到Access数据库后,向数据库发送SQL语句实现程序与数据库中表间的消息通信,从而实现了相应的图书馆管理系统的功能。本文主要分为绪论、系统功能介绍、数据库需求分析、系统功能实现、结论、致谢、参考文献7大块。在绪论中介绍了本次课设选题的缘由及思想。系统功能介绍中详细介绍了本图书管理系统的整体思想及其具体功能。在数据库需求分析中详细说明了数据库的需求分析、概念设计及表的设计.在系统功能实现中主要通过抓图来体现设计的结果。总之,我们的整体设计思想均在报告中体现。关键词: 图书馆管理系统,Java程序设计语言,Access数据库I目 录摘 要I第1章 绪 论1第2章 系统功能介绍
11、22.1系统功能总框图22。2 模块功能介绍22.2.1 管理员模块功能介绍22。2.2 读者管理32.2。3书籍管理模块功能介绍32。2。4 书籍借阅与归还功能介绍42.2.5 借阅超时功能介绍42。3 组内任务分工4第3章 数据库设计53。1 数据库需求分析53。2 数据库概念结构设计53.3 数据库表的设计6第4章 系统功能实现84.1 管理员模块功能实现84。1.1 管理员登陆84。1.2 管理日志104.1.3 管理员添加功能实现114。1.4 管理员切换134.2 读者管理模块功能实现144。2。1 读者添加144。2.2 读者修改154.2。3 读者查询174。2。4 读者删除1
12、84。3 书籍管理模块功能实现194。3.1 新书入库实现194。3。2查询功能实现214。4 书籍借阅与归还功能实现234.4.1 借阅书籍功能实现234。4。2 归还书籍功能实现254。5 借阅超时功能实现28结 论30致 谢31参考文献32第1章 绪 论随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。书籍做为人类的精神食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种各样不同的选择。与此同时,为了管理大量的图书,图书管理系统也
13、大量的出现,随着图书的大量增加,其管理难度也越来越大,如何优化管理也就成为了一个大众化的问题。现已有的图书管理系统,其功能已十分强大,为了便于管理员对图书管理系统进行妥善的管理和读者的查询,图书管理系统为管理员提供了管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库等功能,为读者提供了书籍查询、读者借阅信息查询、图书网上续借等很多功能。大学为我们提供了自由的学习环境,使我们有更多的时间到图书馆借阅书籍,让我们可以随时掌握各方面的知识,不断提高自我、充实自我,但由于图书馆藏书成千上万,我们很难一本一本的去查找自己感兴趣的书籍,因此我们会经常用到学校为我们提供的图书
14、管理系统,用时间长了便对此产生了兴趣,正好本次课程设计为我们提供了良好的机会,让我们亲自设计并实现了图书管理系统的部分功能。设计一个图书管理系统必不可少的必须对全管书籍进行分类汇总。而这就是我们所说的数据库设计的第一阶段:需求分析.在这一阶段除了对具体情况诸如实行对管理员的管理、对读者的管理、书籍管理、书籍的借阅与归还、借阅超时等功能的实现,还需要对用户的需求进行调查和分析,否则就失去了设计这个系统的意义了。对于界面的设计我们应该追求的是:美观、易读性强、清晰度高;原则是:不能因为刻意追求美观而以整个界面的清晰度的牺牲作为代价,不能为了清晰度而抛弃对易读性的追求。再设计的过程中我们应该根据实际
15、的情况进行设计,做到具体问题具体分析,不刻意追求原则。在对应的界面与Access数据库建立连接,并实现对应的SQL语句进行实现将产生的结果显示出来。并运用捕捉异常的方法,将异常信息显示出来。实现SQL语句的时候借助前台开发工具中关于数据处理的控件来完成.对于读者而言他们的需求是了解图书的基本情况,自己的借阅情况.总而言之就是实现对各个信息表的查询。对于图书管理员而言要实现的功能相对而言比较多,例如实现新书入库、Access数据库表的创建、系统的维护等等,这些都需要设计和实现的。1第2章 系统功能介绍2.1系统功能总框图 图书馆管理系统功能总框图,如图2-1所示。图书馆管理系统管理员读者管理书籍
16、管理书籍借阅归还管理员管理日志管理员添加管理员切换读者添加读者信息修改读者删除新书入库书籍查询借阅书籍归还书籍借阅超时读者信息查询图2-1 系统功能框架图2。2 模块功能介绍2.2.1 管理员模块功能介绍1. 管理员登陆此模块主要是利用MenuBar添加菜单条,利用Menu和MenuItem添加菜单和菜单的各个参数,通过事件ActionEvent 可以实现进入各个模块如管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、借阅书籍、归还书籍、借阅超时及退出的功能。2。 管理日志此模块可以清楚的显示出书籍借阅与归还的信息,包括书号、书名、图书证号、借/还、
17、操作日期、已付款额。读者可以通过此模块实现的功能清楚的了解图书被借阅和归还的详细信息,从而给读者带来了很多方便。3. 管理员添加功能介绍此模块功能是增加新管理员的登陆帐户。在图书馆管理系统中必须有每一个管理者的帐户让其可以正常进行新图书证的办理、借阅书籍和归还书籍等系统管理.所以在管理员功能模块中增加了管理员添加这个功能。4. 管理员切换此模块的主要功能是进行管理员之间的切换,即单击管理员菜单下的管理员切换,就会退出当前管理员界面,从而出现管理员切换窗口,而另一管理员就可以在管理员切换窗口中的用户名和密码两栏中通过输入自己的用户名和密码直接进入该系统。2。2.2 读者管理1. 读者添加此模块主
18、要的实现功能是添加新的读者信息,即当有新的读者要看查看本图书馆中的书藉,可以通过此功能实现,当数据库中存在其新信息,即成为本图书馆的新一位读者。其中信息分别包括图书证号、学生姓名、性别、系别、班级,同时可有三项功能在此处实现,即添加、重置以及返回.2。读者修改此模块主要的实现功能对有信息更新的读者进行即时修改,以随时更新读者在数据库中的信息.本模块通过图书证号确定读者,可对读者信息的新图书证号、学短姓名、性别、系别、班级.此处可分别实现对该功能的修改、重置、返回。3. 读者查询此模块主要可对所要了解的读者信息。即把读者的信息从数据库调出来,显示在该窗口中的文字区域.查询方式分别有按图书证查询、
19、按姓名查询、按班级查询、按年级查询,并可通过办理入相应的关键字,更加缩小查询范围。此处可实现查询和返回功能。4. 读者删除此模块可以删除一些不再使用本系统的读者资料,从而达到对数据库中的清理,即清除一些不必要资料,此处有四种删除途径,分别为按图书证号删除、按姓名删除、按班级删除、安年级删除,并可通过所输入的关键字尽快找到所要删除的资料。此处可分别实现对该功能的修改、重置、返回.2。2。3书籍管理模块功能介绍1。 新书入库功能介绍此模块主要的实现功能是将新来的图书输入到图书馆管理系统的书库当中,其中主要按如下信息往书库中输入,这部分的操作主要是便于书库合理的管理,有利于读者能够对新书有一个更详细
20、的了解。其中包括如下信息:新书书号、新书名称、新书出版日期、新书出版社、入库数量、编写作者、新书单价。2。 书籍查询功能介绍在图书馆管理系统中书籍查询是最基本的功能,读者可以根据自己的需求来查询想要借阅的书籍.本系统是用Java应用程序和Access数据库一起开发的其中利用Java来编程实现功能的代码和布置运行界面。界面是由检索项、检索词和显示文本区三个部分组成的用户根据自己的需要在检索项中选择自己所要按什么字段进行查询,其中书籍查询功能的检索项中可以按书号查询、按书名查询、按作者名查询、按出版社查询、按入库时间查询等基础查询。选择检索项后用户只要在检索词中添写自己所要查询的内容并确定键确认后
21、用户要查询的内容就可以在显示文本区中显示出来.用户可以根据显示的信息得知自己所要借阅书籍的情况。2。2.4 书籍借阅与归还功能介绍1. 借阅书籍功能介绍此模块主要实现读者可凭有效的图书证号,借阅图书馆内未借出的图书。输入图书证号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数),供读者确认信息。通过输入有效的图书编号,查询该图书的全部信息(包括书号、书名、作者、出版社、是否借出、价格)。借阅成功后,将该图书证号、书号、借阅日期、应还日期信息插入到数据库的表中进行记录。2。 归还书籍功能介绍此模块主要实现读者凭所要归还图书的图书证号归还图书。
22、输入所要归还的图书编号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数),供读者确认信息。还书成功后,从数据库中删除该书的借出记录,并修改数据库中的相应信息。2.2.5 借阅超时功能介绍此模块主要实现显示过期图书的信息(包括图书证号、书号、借阅日期、应还日期)提醒读者还书。2.3 组内任务分工组内分工情况如下表21所示。表2-1 组内分工情况表组长邹刚读者添加、查询、修改、删除。8组员罗姗姗书籍借阅与归还模块、借书超期限子系统。李呈呈管理员添加、新书入库、按指定条件进行图书查询。刘兰兰数据库创建、登陆界面设计、管理员模块.第3章 数据库设计
23、在此图书馆管理系统中,使用到了一个重要的连接,即与数据库Accesss相连。数据库中存有图书馆中所信息,包括读者信息、管理员资料、借阅与退还记录。所有与管理有关的数据皆在其中,是保证系统能够正常实现各种功能的一架桥。3。1 数据库需求分析 Admi表,即管理员表,记录了用户名和密码。 Admirz表,即管理日志表,记录了书号、书名、图书证号、借/还、操作日期、已付款额. book表,即图书表,记录了书号、书名、作者、出版社、入库时间、是否借出、价格。 borrowbook表,即借阅表,记录了图书证号、书号、借阅日期、应还日期。 person表,即读者表,记录了图书证号、姓名、性别、系别、班级。
24、3.2 数据库概念结构设计图书馆管理系统ER图,如图3-1。mn读者图书管理员性别系别班级姓名图书证号书号书名作者出版社会化密码用户名管理管理mnm借阅1入库时间是否借出价格图31 图书馆管理系统ER图3。3 数据库表的设计Admi表表中记录了可以使管理员进入该系统的用户名及密码,如表3-1所示.表31 管理员信息表字段名称数据类型长 度备 注用户名文 本10密 码文 本15Admirz表表中记录借还书日志,用于存下所有对图书操作的记录,以便以后可以翻阅和查找,如表3-2所示。表32 管理日志表字段名称数据类型长 度备 注书号文 本10书名文 本15作者文 本15出版社文 本15入库时间DAT
25、E15已付款额文 本10book表表中记录了库内所有图书的所有资料,如表33。表33 图书表字段名称数据类型长 度备 注书号文 本10书名文 本15作者文 本15出版社文 本15入库时间DATE15是否借出文 本10价格文 本10person表表中记录库中所有读者的相关信息,如表34所示。表3-4 读者表字段名称数据类型长 度备 注图书证号文 本10姓名文 本15性别文 本15系别文 本15班级文 本15borrowbook表表内记录了此时图书的借阅情况,如表35所示。表35 借阅表字段名称数据类型长 度备 注图书证号文 本10书号文 本15借阅日期DATE15应还日期DATE15第4章 系统
26、功能实现4。1 管理员模块功能实现4.1.1 管理员登陆此模块是整个系统最主要的部分,管理员可以通过此模块实现进入其余各个模块如管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、借阅书籍、归还书籍、借阅超时及退出的功能。图书管理系统管理员界面如图4-1所示。图41 图书管理系统管理员主要程序代码如下:public void actionPerformed(ActionEvent e) if(e。getSource()=itemAdmiqh)this。dispose();In winin=new In(”系统登陆”);if(e。getSource()=
27、itemtc)System。exit(0);if(e.getSource()=itemAdmixj)CreatAdmi creatAdmi=new CreatAdmi(”管理员添加”);if(e.getSource()=itemAdmirz)WinTable wintable=new WinTable(”管理日志”);if(e.getSource()=itemBookrk)AddInfy addInfy=new AddInfy();if(e.getSource()=itemPersonlr)Winpersonadd winperson=new Winpersonadd(”读者添加);if(e.
28、getSource()=itemPersoncx)Winpersonsearch winperson=new Winpersonsearch(读者信息查询”);if(e.getSource()=itemPersonxg)Winpersonmodify winperson=new Winpersonmodify(读者信息修改);if(e。getSource()=itemPersonsc)Winpersondelete winperson=new Winpersondelete(读者删除”);if(e.getSource()=itemBookcx)Windowjj ok=new Windowjj(
29、);if(e。getSource()=itemchaoshi)day win=new day(); if(e。getSource()=itemBorrowjs)Borrowbook win=new Borrowbook(); if(e。getSource()=itemBorrowhs)Returnbook win=new Returnbook(); 4。1.2 管理日志此模块通过定义类WinTable继承顶层容器JFrame,再添加普通容器 JScrollPane、Jpanel,然后通过BorderLayout布局创建界面,最后主要通过数组利用while循环在连接好的数据库中查找表Admirz
30、中的内容,从而实现了可以清楚的显示出书籍借阅与归还信息的功能。管理日志界面如图42所示。图4-2 管理日志主要程序代码如下:WinTable(String s)super(s);try Class。forName(”sun.jdbc.odbc.JdbcOdbcDriver”);catch(ClassNotFoundException e)System.out.println(”+e);try con=DriverManager。getConnection(”jdbc:odbc:sun”,”123,123);sql=con。createStatement();rs=sql。executeQuer
31、y(SELECT * FROM Admirz”);while(rs.next())k+;catch(SQLException e)System。out。println(”+e);try con=DriverManager.getConnection(jdbc:odbc:sun”,123,”123);sql=con.createStatement();rs=sql.executeQuery(”SELECT FROM Admirz);a=new Objectk6;while(rs。next())for(int j=0;j6;j+)if(j5)aij=rs.getString(j+1);elseai
32、j=rs.getDouble(j+1);i+;con。close();catch(SQLException e)System.out.println(+e);table=new JTable(a,name);Container con=getContentPane();getContentPane()。add(new JScrollPane(table),BorderLayout.CENTER);setBounds(120,125,700,500);setVisible(true);validate();addWindowListener(new DisposeListener());4.1。
33、3 管理员添加功能实现功能介绍:该程序主要实现管理员的添加,以便于让实行对图书管理员的管理。按照标签提示输入信息,然后点击确定按钮.首先判断管理员名文本框中输入的文本信息是否符合大于3个字符并小于10个字符的规则,如果不符合规则,则提示错误,如果符合规则,再到Admi表中进行查询,如果相同则用提示框提示错误。若无相同则可注册。但还需要保证前后两次的密码相同,才能成功注册,管理员登陆窗口如图43所示。图4-3 管理员添加成功界面主要程序代码如下: public void actionPerformed(ActionEvent c)String b=textUser。getText();Strin
34、g d=textPassword1。getText();String g=textPassword2.getText();if(c。getSource()=buttonqk)textUser。setText(null);textPassword1。setText(null);textPassword2。setText(null);if(c。getSource()=buttonEnter|c。getSource()=textPassword2)if(b.length()3|b。length()10)JOptionPane.showMessageDialog(null,”用户名应在310个字符之间
35、”);textUser.setText(null);elsetry Class。forName(”sun.jdbc。odbc。JdbcOdbcDriver”);catch(ClassNotFoundException e)System.out.println(”+e);try con=DriverManager.getConnection(jdbc:odbc:sun”,123”,123);sql=con.createStatement();rs=sql。executeQuery(SELECT FROM Admi WHERE 用户名=+”+b+);if(rs。next()String user=
36、rs。getString(1);if(b。equals(user) JOptionPane.showMessageDialog(null,”此管理员已被注册”,”警告”,JOptionPane.WARNING_MESSAGE);elseif(d。equals(g) sql.executeUpdate(INSERTINTOAdmi VALUES+(”+”+b+”+”,”+”+d+”)”);this。dispose();JOptionPane。showMessageDialog(null,管理员注册成功); else JOptionPane。showMessageDialog(null,两次输入密
37、码不一致”,警告,JOptionPane.ERROR_MESSAGE); con.close(); catch(SQLException e)System。out.println(”+e);4.1.4 管理员切换此模块功能是退出当前管理员界面,进入管理员切换窗口,另一用户可以通过输入自己的用户名和密码直接进入该系统。但此用户名和密码都必须与已经连接好的数据库中表Admi中的用户名和密码相吻合。管理员切换界面如图44所示。图44 管理员切换主要程序代码如下:public void windowClosing(WindowEvent e)e。getWindow()。dispose();4.2 读者
38、管理模块功能实现4.2.1 读者添加功能介绍:添加新的读者,使其能够进入图书系统阅览图书,读者添加如图4-5所示. 图45 读者添加主要程序代码如下: public void actionPerformed(ActionEvent e)if(e.getSource()=button1) / 添加String ch=text1.getText();if(ch。length()!=5)JOptionPane.showMessageDialog(null,请输入5位图书证号!);text1.setText(null);else/连接数据库String number,name,sex,dept,cla
39、sses,record,insertStr;number=text1。getText();name=text2.getText();if(box1.getState()=true)sex=box1。getLabel();elsesex=box2。getLabel();dept=text3。getText();classes=text4。getText();rs=sql.executeQuery(SELECT FROM person WHERE 图书证号=+”+number+”);if(rs。next()JOptionPane。showMessageDialog(null,”此图书证号已存在”,警告,JOptionPane.WA