..西安科技大学软件工程课程设计报告题目:图书馆管理系统班级:软件工程**学号:**********姓名:*******2013年1月..目录1绪论…………………………………………………………………………12可行性研究报告……………………………………………………………13需求规格说明书……………………………………………………………44总体设计说明书……………………………………………………………75数据库设计说明书…………………………………………………………86详细设计说明书……………………………………………………………97系统实现……………………………………………………………………118测试分析报告………………………………………………………………23参考文献..1.绪论1.1选题目的及意义随着计算机技术的快速发展.人们对用计算机代替手工管理信息的需求越来越强烈.越来越多的计算机软件如雨后春笋般的应用于人们生产生活的各个领域.为人们提供各种各样的便利。本图书馆管理系统应用软件可以有效地解决高等院校、中小学图书馆由于藏书量增大而带来的管理问题.图书馆管理员可以更好地管理学校图书馆藏书信息.学生可以更方便地享受借书还书的服务.为更有效地学习知识提供有利的保证。对于我来说.选择这个题目作为课程设计的题目有以下两个原因:一是因为自从上大学以来.每当在图书馆借书的时候.我都会留心观察一下图书馆管理员的那台计算机上显示的内容.久而久之.就对本系统的基本流程越来越了解.做好一个软件的前提是必须对这个软件的功能和原理非常熟悉.相比别的题目.我对这个题目更加了解;二是本学期通过学习Java程序设计和Oracle数据库课程.我觉得这个题目虽然没有那么难(涉及算法的内容很少).但也不是轻而易举就能完成的.所以我想挑战一下自己.看看自己的实现能力到底怎么样.因此决定用面向对象方法学的思想.前台用Java程序设计语言编写界面.访问Oracle数据库中的数据.完成本系统。1.2系统概述本系统通过JDBC-ODBC桥实现前后台数据的联系.基本上实现了一个图书馆管理系统所具备的基本功能.本系统把使用者分为三类:超级管理员、普通管理员、读者.对三种用户分别设计了各自的主界面.以便更好的实现信息的隐藏性.超级管理员可以进行这个系统所有操作;管理员只能执行超级管理员的基本功能.查看自己的信息;读者只能查看自己的信息.对自己当前借书进行挂失和续借两种操作.查询图书馆的藏书。2.可行性研究报告2.1编写目的本报告编写目的在于研究图书馆管理系统应用软件是否可行.指出本软件开发所使用的方法和手段.并对该软件前景进行分析。本报告的预期读者是:高等院校、中小学图书馆管理人员、程序设计人员、以及对图书馆管理系统感兴趣的爱好者。2.2相关背景工程名称:图书馆管理应用软件工程产品名称:高校图书馆管理系统应用软件工程的组织者:西安科技大学计算机学院软件工程系产品用户:高校图书馆、中小学图书馆;产品的生产者:西安科技大学计算机学院软件工程062班袁震;产品设计者:西安科技大学计算机学院软件工程062班袁震;2.3可行性研究的前提本图书管理系统在功能上要求完成以下基本功能:a).读者、管理员登陆;b).借书;c).还书;d).续借;e).图书挂失;..f).历史记录查询;g).新书入库;h).读者登记及修改个人信息;本系统在性能上力争达到响应时间短.具有一定的容错能力.力争减少由用户直接输入数据.绝大多数据的输入都用可以选择的形式让用户进行选择。本系统预计有如下输出:a).登陆成功显示:成功则进入主界面;失败则重新输入;都要给出相应的提示;b).借书成功显示:显示借书是否成功.如成功.记录插入数据库.失败说明错误原因.返回借书界面;c).还书成功显示:显示还书是否成功.如成功.修改数据库多项记录.失败说明错误原因.返回主界面;d).续借成功显示:显示续借是否成功.如成功.修改数据库记录.失败则说明错误原因.返回主界面;e).图书挂失成功显示:成功则提示用户需要赔偿的价钱.并禁止该用户再借书.直到交了罚款为止;f).历史记录查询:管理员可以查询所有记录.用户只能查询自己的借还书记录;显示这些记录;g).新书入库成功显示:显示新书入库是否成功.成功则向数库插入数据.失败给出错误提示.返回主界面;h).读者登记成功显示:显示读者是否成功注册.成功则向数据库插入数据.失败给出提示.返回主界面;i).修改个人信息成功显示:显示个人信息是否成功修改.成功则修改数据库中的数据.失败则给出错误提示.返回主界面;本系统预计有如下数据输入:a).登陆系统时需要输入用户名和密码.选择用户类型;用户名、密码、和用户类型均为字符型;b).借书时需要选择用户编号和书的编号.均为字符型;c).还书时需要选择用户名和书的名字.均为字符型;d).续借时.需要选择书的编号.为字符型;e).挂失时.需要选择书的编号.为字符型;f).新书入库时.需要输入书的编号、名字、类别、价格、当前剩余藏书量、入库日期;其中入库时期为系统当前时间.价格为双精度浮点型.当前剩余藏书量为整型.其余均为字符型;g).读者登记时.需要输入读者的编号、名字、密码、当前最大可借书量.当前状态(0或1).0为未激活.1为激活;其中当前最大可借书量为整型.其余为字符型;h).修改个人密码时.需要提供一次原密码和两次新密码;均为字符型;本系统基本系统模型如图2-1所示:图书馆管理员读者图书管理系统读者事务事务处理结果图1-1图书管理系统基本系统模型通过图1-1..我们可以发现该系统的数据源是读者和图书馆管理员;读者处理的事务只有修改个人密码、续借、图书挂失.其余事务均由图书馆管理员来处理;数据终点是读者.意味着所有处理最后都要由读者确认.这种确认可以是某种操作.也可以是管理员的一句提示。本系统的完成期限为16天(即2008年12月22日到2009年1月7日)。2.4目标本图书管理系统的主要开发目标为:a).实现图书管理的便捷程度;..b).在完成数据库连接的基础上.适当提高查询速度和访问效率;c).在完成基本功能的基础上.减少代码量.提高工作效率;2.5进行可行性研究的方法本系统可行性研究是通过走访大学图书馆的方式进行的.通过走访西安科技大学图书馆和陕西航天职工大学图书馆.对两校现有图书管理系统进行调查、了解.分析得出本系统应实现的基本功能.本系统根据两校图书馆管理系统进行相应的模仿的基础上.添加了一些自己的功能。2.6评价尺度本系统在评价时应从以下几个方面进行分析:开发时间要尽量短;各个功能实现代码要尽量少;访问数据库的效率要尽量高;用户使用过程中容错能力要很强;2.7对现有系统的分析通过对西安科技大学图书馆管理系统的分析.由于该系统是专业软件公司所为.基本上没有什么太大的问题.就是有时候会出现响应时间过长的问题.原因可能是访问数据库效率过低.所以本系统着重提高访问数据库效率的问题.在功能上尽量模仿上述系统。因此有必要对现有系统进行修改。现有系统的主要工作为处理借还书.新书入库.读者登记.读者信息修改.读者挂失等业务。现有系统最大局限性就是响应时间过慢.数据存储能力不足.由于使用时间很长.源代码无法找到.所以需要对该系统进行重新设计.以适应社会的需要。2.8所建议使用的系统本图书管理系统采用面向对象的分析方法进行分析.然后用面向对象的设计方法进行设计.最后用面向对象语言Java进行实现.后台数据库使用Oracle.连接方式为JDBC-ODBC。Java中GUI程序设计本身就是界面程序设计.用它设计出来的界面不但美观.而且使用方便.使用者只需点几次鼠标.就能根据提示进行正确的操作.实现了图书管理的便捷程度;由于Java代码重用性非常好.加上本系统部分代码我可以用别的程序代码稍微做一些修改就可以实现功能.因此可以实现降低代码量的目的;Oracle数据库是目前市场上通用数据库之一.查询速度本身就非常多.再加上我会在代码中尽量避免多表连接查询和处理语句的使用.所以可以真正起到提高查询效率的目的。本系统局限性可能来自以下几个方面:a).界面不美观;b).部分功能无法实现;c).访问效率很低;d).容错性不够;对于a),我觉得我们应该注意力放在功能及代码的效率上.而不是去追求一个优秀的界面.对于界面.只要能看得过去就行;对于b),我尽量避免这个的发生.因为它是一个程序员水平的标尺.尽可能的用自己最大努力做出尽可能多的功能是我的目标;对于c),尽量减少多表连接操作的次数.应该就可以尽可能的提高访问效率了。对于d),这个是需要大量测试才能发现的.由于时间关系.不可能把所有的情况考虑完全.只能尽可能多地去考虑周全点.尽可能的把所有问题都考虑到。2.9技术条件方面的可行性按照目前的技术水平.本系统的功能目标是可以达到的.该系统的功能是可以实现的.在规定的期限内.本系统可以开发完成。2.10法律方面的可行性由于这个系统只供学习研究使用.不涉及任何商业行为.因此.该系统从法律方面是可行的。2.11使用方面的可行性本图书管理系统是为学校图书馆开发的.从学校图书馆日常流程的角度来看.是可以使用该软件系统..的;经过我们的调查.我们发现学校图书馆管理人员是有一定的计算机操作水平的.经过短期的培训.是可以熟练掌握本系统的使用细则的。2.12结论由上面的内容我们可以得到如下研究结论:本图书馆管理系统可以立即开始进行。3.需求规格说明书对软件需求完全理解对于软件开发工作的成功是至关重要的.需求说明的任务是发现、规范的过程.有益于提高软件开发过程中的能见度.便于对软件开发过程中的控制与管理.便于采用工程方法开发软件.提高软件的质量.便于开发人员、维护人员、管理人员之间的交流、协作.并作为工作成果的原始依据.并且在向潜在用户传递软件功能、性能需求.使其能够判断该软件是否与自己的需求相关。3.1编写目的为开发人员.维护人员.客户之间提供共同的协议而创立基础.对图书馆管理系统软件功能的实现做一全面的描述;本说明书预期读者为客户、业务或需求分析人员、测试人员、文档编写者、项目管理人员;3.2任务概述本图书管理系统仅供学习、研究之用.应用目标是让使用该软件的用户感觉轻松、愉快的完成本系统的各个功能模块.给以客观公正的评价。本软件的灵感来源于本人长期使用本校的图书馆管理系统.对其结构和功能有了一定的了解.所以就产生了自己模仿一个的想法。由于本软件是模仿其他类似软件开发的.所以只能供学习、研究之用。|本软件终端用户应该是图书馆管理人员.各个年龄层次的读者。对于图书馆管理人员来说.应该对这个软件的流程很熟悉.所以本软件在设计时尽量追求可操作性和简洁大方的人机界面的设计.力求尽量减少用户直接输入性东西.大量使用可选框。对于读者.本软件将为其设计更加方便的界面.尽量不使用直接输入性信息.追求操作的最简单化。由于本软件只供学习和研究之用.所以不存在预期使用周期。3.3需求规定通过对学校图书馆管理系统的使用和跟有关人员的访谈.我初步认为该系统应该有以下功能约定:1).每个读者最多在借数目为5;2).每种书只剩一本时.禁止外借;3).读者编号是10位数字.初始密码和编号相同.提示读者修改密码;4).管理员编号是5位数字.初始密码和编号相同.提示管理员修改密码;5).当读者挂失图书且未缴纳罚款时.禁止该读者借阅续借和挂失其他图书.直到罚款交齐为止;6).尽可能多的用可选项代替文本框.减少人为输入错误发生的概率;7).当可选项为编号时.为了方便查阅详细信息.设置按钮显示其详细信息;8).读者界面应该显示读者当前在借图书的详细信息;9).为了方便读者查询.应该提供多种查询图书的方式;10).图书挂失后.读者应该缴纳三倍书价的罚款作为赔偿;11).修改密码时.应提供原密码作为验证.两次输入新密码;12).用户登陆时.需根据用户身份.进入各自的主界面;通过对以上功能约定的分析.我将这个系统分为以下11个模块.它们分别是登陆模块、添加管理员、读者、书籍信息模块、借书模块、还书模块、续借模块、图书挂失模块、挂失处理模