资源描述
西安科技大学
软件工程课程设计汇报
题目: 图书馆管理系统
班级: 软件工程**
学号: **********
姓名: *******
1月
目 录
1 绪论…………………………………………………………………………1
2 可行性研究汇报……………………………………………………………1
3 需求规格阐明书……………………………………………………………4
4 总体设计阐明书……………………………………………………………7
5 数据库设计阐明书…………………………………………………………8
6 详细设计阐明书……………………………………………………………9
7 系统实现……………………………………………………………………11
8测试分析汇报………………………………………………………………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天(即12月22日到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个模块,它们分别是登陆模块、添加管理员、读者、书籍信息模块、借书模块、还书模块、续借模块、图书挂失模块、挂失处理模块、修改个人密码模块、删除操作记录、读者信息模块,查询图书模块等等。
下面用IPO表分别写出对上述模块功能规定进行定性和定量论述:
1、登陆模块:
模块名称
登陆模块
输入数据
顾客编号,密码,级别
处理过程
调用数据库数据进行验证
输出数据
无
表3-1 登陆模块IPO表
2、添加管理员与读者模块
模块名称
添加管理员和读者模块
输入数据
新管理员编号和姓名
处理过程
编号唯一性验证,向数据库添加数据
输出数据
无
表3-2 添加管理员和读者模块IPO表
3、添加书籍信息模块
模块名称
添加书籍信息模块
输入数据
书条形码号,书名,作者,分类,价格,数目
处理过程
编号唯一性验证,向数据库添加数据
输出数据
无
表3-3 添加书籍信息模块IPO表
4、借书模块
模块名称
借书模块
输入数据
读者编号、书条形码号
处理过程
验证编号,向数据库添加数据
输出数据
无
表3-4 借书模块IPO表
5、还书模块
模块名称
借书模块
输入数据
读者编号、书条形码号
处理过程
验证编号,修改数据库数据
输出数据
无
表3-5 还书模块IPO表
6、续借模块
模块名称
续借模块
输入数据
读者编号、书条形码号
处理过程
验证编号,修改数据库数据
输出数据
无
表3-6 续借模块IPO表
7、图书挂失模块
模块名称
图书挂失模块
输入数据
读者编号、书条形码号
处理过程
验证编号,修改数据库数据
输出数据
书名、应缴纳罚款数额
表3-7 图书挂失模块IPO表
8、图书挂失处理模块
模块名称
图书挂失处理模块
输入数据
读者编号
处理过程
查询挂失信息
输出数据
书名,罚款数额
表3-8 图书挂失处理模块IPO表
9、修改个人密码模块
模块名称
修改个人密码模块
输入数据
读者编号,旧密码,新密码
处理过程
验证旧密码对性,修改数据库数据
输出数据
无
表3-9 修改个人密码模块IPO表
10、删除操作记录模块
模块名称
删除操作记录模块
输入数据
无
处理过程
删除数据库中操作登记表信息
输出数据
无
表3-10 删除操作记录模块IPO表
11、删除读者信息模块
模块名称
删除读者信息模块
输入数据
读者编号
处理过程
验证能否删除,删除数据库数据
输出数据
无
表3-11 删除读者信息模块IPO表
12、查询图书信息模块
模块名称
查询图书信息模块
输入数据
图书编号或分类信息或书名关键字
处理过程
查询图书表
输出数据
有关图书信息
表3-12 删除读者信息模块IPO表
3.4 性能需求
该软件对输入数据、输出数据精度规定如下表所示:
数据类型
方向
格式
字符型
输入输出
avcAaaa
浮点型
输入输出
123.65
日期型
输出
YYYY-MM-DD
时间型
输出
HH24:MM:SS
表3-13 数据精度规定表
本图书管理系统规定响应时间低于1秒,更新处理时间、数据转换和传送时间短,顾客等待时间尽量为0.
本系统重要任务是访问后台数据库数据,并做出对应处理,因此对数据库容量规定很高,因此提议设置变长表空间,这样就可以防止出现分派空间不够而给顾客管理带来麻烦状况。初始化表空间容量为5M,每次增长空间为5M。
本系统运行过程中也许出现问题是数据库故障,处理措施是提议顾客每天对数据库中做一次备份,这样假如数据库出现问题,可以立即还原数据,而不导致大损失
3.5 事件跟踪图
由于这个系统模块诸多,假如画出每个模块事件跟踪图,会占用很大篇幅,何况诸多模块事件跟踪图大同小异,因此我决定画出正常状况下读者挂失图书模块、管理员新增图书信息模块、超级管理员查看操作记录模块事件跟踪图。
读者挂失图书模块事件跟踪图如图3-1所示:
图3-1 读者挂失模块事件跟踪图
管理员新增图书信息模块事件跟踪图如图3-2所示:
图3-2管理员新增图书信息模块事件跟踪图
超级管理员查看操作记录模块事件跟踪图如图3-3所示:
图3-3超级管理管理员新增图书信息模块事件跟踪图
4.总体设计阐明书
4.1 编写目
总体设计目就是回答“概括地说,系统应当怎样实现?”这个问题。也就是说这个阐明书编写目也就是告诉程序员和软件设计人员本图书馆管理系统系统系统构造和软件构造。
本汇报预期读者是:编写该软件程序员、其他软件设计人员、系统分析员。
4.2 图书管理系统系统层次构造图
图4-1 是该图书管理系统系统层次构造图。
4.3 图书管理系统软件构造图
图4-2 是图书管理系统软件构造图
5.数据库设计阐明书
5.1 概念构造设计
本课程设计连接数据库是Oracle9i,用方式是JDBC桥,因此数据库设计尤为重要;本系统E-R图如
图3-4 图书管理系统系统层次构造图
图3-5 图书管理系统软件构造图
下:
图5-1读者表和书表E-R图
图5-2 管理员表和操作登记表E-R图
5.2逻辑构造设计
根据上述E-R模型,我们可以得到该系统数据库应当包括五个表,分别是:读者信息表、书籍信息表、借阅信息表、管理员表、操作登记表;下面是这五个表详细属性信息(下划线是该表主键):
读者信息表:读者编号、姓名、密码、目前可借书册数、目前状态
书籍信息表:书编号、书名、出版社、类别、单价、既有藏书量
借阅信息表:借阅编号、读者编号、书编号、借书时间、估计还书时间、标识位、还书时间
管理员表:管理员编号、姓名、密码、级别
操作登记表:操作时间、发生事件
5.3 物理构造设计
一般数据库物理构造设计包括两个方面:为关系模式选择存取措施和设计关系、索引等数据库文献物理存储构造。本系统没有建立任何索引。
6.详细设计阐明书
6.1 编写目
详细设计阶段主线目是确定应当怎样详细地实现所规定系统,也就是说,通过这个阶段设计工作,应当得出对目系统精确描述,从而在编码阶段可以把这个描述直接翻译成用某种设计语言书写程序。本阐明书是为了给程序员提供出一种程序“蓝图”,指导他们更好地完毕编码任务。
本阐明书目读者是:软件设计师、所有参与这个项目编码人员和测试人员。
6.2 界面设计
从需求规格阐明书中,我们已经懂得本系统将使用者分为三类:超级管理员、一般管理员和读者。并且他们权限各不相似,故需要为他们各自设计主界面,本节将用三个参照模型详细阐明三个主界面应怎样设计。
图6-1是超级管理员主界面设计参照模型。
图6-2是一般管理员主界面设计参照模型。
图6-3是读者主界面设计参照模型。
图6-1 超级管理员主界面设计模型
图6-2 一般管理员主界面设计模型
图6-3 读者主界面设计模型
6.3 一点阐明
由于本系统模块过多,假如把所有模块详细设计过程所有写出,试验汇报篇幅将会很长,因此我只写出“添加书信息”模块详细设计过程,其他模块类似。
6.4 “添加书信息”模块界面设计
从需求规格阐明书和数据库设计中,我们可以看出,书表属性有:编号、书名、类别、目前在馆册数、价格和出版社;而为了节省字段,我把书名定义为书名和作者;目前在馆册数初始状态下就是藏书量,一般图书馆一种书籍藏书量不会超过5本,因此该项可设计为可选项;由于管理员工作是很忙,不也许不出现错误,尤其长时间做同一工作,因此出版社那一栏中我提议初始化为“出版社”,按钮设置方面,“提交”和“取消”是不可缺乏,但考虑到管理员工作需要,我又设置了一种“重置”按钮,单击这个按钮后,所有输入栏都将会回到刚打开窗口时状态;因此,其界面设计参照模型如图6-4所示。
图6-4 “添加书信息”模块界面设计参照模型
6.5 “添加书信息”模块参照措施设计
表6-1和表6-2是“添加图书信息”模块参照措施设计
措施名称
checkID
措施返回类型
boolean
措施形参名称
String id
前置条件
单击“提交”
SQL语句
select * from book where b_no=id
处理成果
假如没有这个号码,返回false,反之返回true
表6-1 “添加图书信息”模块参照措施1
措施名称
insertBook
措施返回类型
boolean
措施形参名称
Book b
前置条件
所有验证都已完毕,且没有异常
SQL语句
insert into book values(id ,name,puname,leibie,price,lsnum )
处理成果
假如插入成功,返回true,失败,返回false
表6-2 “添加图书信息”模块参照措施2
7.系统实现
7.1 开发环境
中央处理器:Core(TM)2 CPU T5600;
内存:512MB;
主频:1.83GHz;
开发平台:JBuider;
数据库:Oracle 9i;
运行平台:Windows XP
7.2 关键技术
本图书管理系统所使用关键技术有:JDBC-ODBC桥,JavaGUI程序设计基本技术,数据库增删改查技术,面向对象程序设计技术(类继承和派生技术)。
7.3 运行成果
7.3.1访问数据库模块
该系统访问数据库使用是JDBC-ODBC桥方式,为了节省工作量,需要编写一种类专门顾客访问Oracle数据库,这个类代码如下:
package librarysystem.tools;
import java.sql.ResultSet;
import java.sql.*;
public class DBClass implements DBinterface {
public DBClass() {
}
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
protected static final String DRIVER="oracle.jdbc.driver.OracleDriver";
protected static final String URL="jdbc:oracle:thin:@localhost:1521:ora9i";
public boolean createConnect(){
try{
Class.forName(DRIVER);
conn=DriverManager.getConnection(URL,"lmsm","1234");
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}
}
public int getExecuteUpdate(String sql){
try{
stmt=conn.createStatement();
int n=stmt.executeUpdate(sql);
return n;
}catch(Exception e){
e.printStackTrace();
return -1;
}
}
public ResultSet getExecuteQuery(String sql){
try{
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
return rs;
}catch(Exception e){
e.printStackTrace();
return null;
}
}
public void closeConnect1(){
try{
if(rs!=null)
rs.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
public void closeConnect2()
{
try{
if(stmt!=null){
stmt.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
public void closeConnect3(){
try{
if(conn!=null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
有了这个类,再访问数据库时,只需创立该类对象,调用措施就可以了,不必在每次访问数据时都要设置诸多参数变量。
7.3.2 登陆模块
由于这个系统是用JBuider开发,界面设计代码不用自己写,只需要将所需控件拖到合适位置就大功告成了,因此本省去那些系统生成代码,假如代码是自己写,就把代码写在试验汇报中吧!图7-1是登陆模块界面。
在这个系统实现中,重要代码是消息响应措施,对于每个模块我都把它消息响应代码写在试验汇报中,反复就不再写了。
public void actionPerformed(ActionEvent e) {
//读取界面输入数据….
if (e.getActionCommand().equals("登陆")) {
//验证信息,详见源代码
//…
//验证成功
if (flag) {//判断顾客类型
if (jibie.equals("管理员")) {
//控制信息详见源代码
//….
lc = new LoginControl();//验证顾客名和密码与数据库中与否一致
if (lc.checkManager(manager)) {
//控制信息...详见源代码
if (grade == 1) {
//显示超级管理员登陆成功
this.showInformation("超级管理员登陆成功");
//操作登记表中添加记录
record = "超级管理员" + manager.getName() + "登陆成功!";
//控制信息…
//详见源代码
//进入超级管理员界面
this.setVisible(false);
new SuperManagerWindow();
} else {
//…
this.showInformation("管理员登陆成功");
record = "一般管理员" + manager.getName() + "登陆成功!";
//提醒改密码
if (manager.getId().equals(manager.getPwd())) {
this.showInformation("为了您信息安全,请尽快修改密码!");
}//进入管理员界面
new ManagerWindow();
}
} else {//显示登陆失败信息
this.showError("顾客名或密码错误,请查验!");
record = "某管理员登陆失败!";}
} else {//读者登陆验证代码省略 }
//向操作登记表中添加信息
rc = new RecordControl();
rc.InsertRecord(record);
}
} else {//响应退出按钮
this.setVisible(false);}
}
}
7.3.3 添加管理员、读者、书籍信息模块
这三个模块在设计思绪上大同小异,故放在一起分析,以添加书籍模块为例,设计界面如图7-2所示,其他两个详见系统测试部分,下面是消息响应措施思绪及关键代码;
图7-1登陆界面
图7-2 添加图书信息
public void actionPerformed(ActionEvent e) {
//得到文本框中输入内容
if (e.getActionCommand().equals("提交")) {
//控制验证…详见源代码
//进行主键唯一性验证
if(ibc.checkID(id)){
flag=false;
this.showError("条形码已经被使用,请更换!");
}
if(flag){
//设置Book对象中内容….
//插入数据库
if(ibc.InsertBook(book)){
//向操作登记表中添加信息
}
else{
this.showError("价格出现问题,请核算!");
}}
}else if(e.getActionCommand().equals("重置")){
//将五个文本框恢复到初始状态下 }
else{//响应取消按钮
this.dispose();}
}
7.3.4 借书模块
借书模块设计充足体现了减少键盘输入思想,顾客只需选择就可以完毕操作,但假如书诸多,或读者诸多时,选择速度会很慢,目前大部分都用模式识别技术,直接去扫描条形码,因此这个设计有点落伍。图7-3是借书模块界面图。
图7-3 添加借阅记录(借书模块)界面
消息响应措施思绪如下:
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("显示读者信息")) {
String id = (String) cbx1.getSelectedItem();
Reader r = imco.showReader(id);
ShowReaderView srv = new ShowReaderView(r);
} else if (e.getActionCommand().equals("有关该书")) {
//显示书信息,和读者信息一致,省去
} else if (e.getActionCommand().equals("提交")) {
//得到文本框内容
//获得该编号所有信息
Reader r=imco.showReader(r_id);
Book b=imco.showBook(b_id);
//假如读者不能借书
if(r.getBooknum()==0){
flag=false;
this.showError("读者已不能再借书,已经借满了!");
}
//假如读者挂失图书未缴纳罚款
if(r.getIsUse()==0){
flag=false;
this.showError("该读者未交挂失书罚款,已不能再借书了!");
}
//假如书只剩一本
if(b.getL
展开阅读全文