还剩43页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课程设计任务书
一、设计题目图书管理系统的设计
二、设计概述通过对典型的图书系统的订购、借阅、维护等业务流程进行分析,完成具有图书管理、用户管理等相关功能的数据库管理应用系统
三、设计要求
1、完成图书信息的维护
2、完成按名称或__条件的图书查找
3、完成图书订购、入库功能
4、实现借阅功能
5、完成读者、操作员的管理
四、进度安排目录TOC\o1-3\h\z\u
1、设计概述
31.1设计目的
31.2设计内容
31.3设计方法与步骤
32.系统需求分析
42.1系统需求
42.
1.1文字描述
42.
1.2图形描述
42.2数据流图
42.3数据字典
72.
3.1数据项
72.4数据结构
92.5数据流
102.6数据存储
112.7处理过程
123.概念模型设计
143.1E-R图
143.
1.1分E-R图
143.
1.2总E-R图174.逻辑结构设计
184.1E-R图转换为关系模式
184.2关系模式的优化
184.3设计用户子模式
215.数据库的物理设计
225.1确定数据的存储结构
225.2确定数据的存放位置
225.3确定系统配置
226.数据库的实施与维护236.1数据的载入和应用程序的调试236.1.1数据表的建立语句23
(1)图书信息表的建立23
(2)图书类型表的建立23
(3)图书借阅表的建立23
(4)图书操作表的建立24
(5)订购单表的建立24
(6)读者信息表的建立24
(7)图书库存表的建立
256.
1.2数据库关系图
256.
1.3应用程序的调试
256.2数据库的试运行
486.3数据库的运行与维护487.总结
491、设计概述
1.1设计目的目前社会上信息管理系统发展飞速为了使书店管理更加规范化、程序化、科学化,我们设计了图书管理系统本系统为管理者提供方便的管理,主要子模块有图书管理、读者管理、用户管理等,可实现日常图书进货、借阅流程,最终达到提高工作效率的目的读者可以进入图书查询界面通过图书名称、图书__等方式查询图书,查到满意的图书后可__借阅管理者可以通过登录管理界面实现对图书的添加、修改操作以及验收和查看顾客信息,___可以维护用户注册信息、维护图书信息、系统等
1.2设计内容1图书信息维护维护图书基本信息,如增、查、改、验收、借阅、归还;2借阅信息管理读者借阅图书时,将读者信息及所借阅图书、借阅时间等记录下来,以及读者归还图书时的信息录入,同时可以搜索图书;3读者管理主要处理读者的注册及读者信息的修改和删除等;4用户管理对用户信息进行处理,如添加、修改与删除5数据备份与还原
1.3设计方法与步骤__软件SQLServer
2008、Eclipse__语言J__a在Eclipse中创建项目,根据设计内容编程,主要有1公共类Dao连接数据库,实现executeQuery和executeUpdate;MenuActions实现内部菜单的动作;CreatedIcon实现背景__的填充2主窗体设计3___登录模块设计4图书信息管理模块设计5图书借阅、归还模块设计6图书查询模块设计
2.系统需求分析
2.1系统需求
2.
1.1文字描述书店管理系统需要满足来自三个方面需求第一,书店工作人员通过计算机来管理各类图书,进行图书分类编号,调整图书结构,增加图书库存,适应读者的需求第二,工作人员对读者借阅请求做出响应借出图书第三,用户的添加修改和删除操作
2.
1.2图形描述
2.2数据流图顶层图订购子系统合并后的数据流程图
2.3数据字典
2.
3.1数据项图书信息表数据项数据项含义数据项名类型存储长度备注图书条形码I__Nvarchar13图书类别编码typeIdint4图书__writervarchar21图书名称booknamevarchar40译者translatorvarchar30出版社publishervarchar50出版日期date__alldatetime__pri__money操作员编码operatorIdint4图书类别数据项数据项含义数据项名类型存储长度与其他数据项的逻辑关系类别编码idint类别名称typeNamevarchar20借书天数daysint4罚款fkfloat与超出借书天数(days)的多少有关操作员编码operatorIdint4图书借阅数据项数据项含义数据项名类型存储长度取值范围取值含义与其他数据项的逻辑关系借阅号idint图书条形码bookI__Nvarchar13操作员编码operatorIdint4读者条形码readerI__Nvarchar13是否归还i__ackint41,21为不是,2为是借阅时间borrowDatedatetime比归还时间早归还时间backDatedatetime比借阅时间晚图书订购表数据项数据项含义数据项名类型存储长度取值范围取值含义图书条形码I__Nvarchar13订购日期datedatetime10订购数量numberint10数量越大可能使折扣更低是否验收checkAndAc__ptInt40,10代表是,1代表不是折扣zkfloat0-9的整数数字代表相应的折扣操作员编码operatorIdint4图书库存数据项数据项含义数据项名类型存储长度备注图书条形码I__Nvarchar13库存数量Amountint4操作员编码operatorIdint4操作员数据项数据项含义数据项名类型存储长度取值范围取值含义操作员编码idint4操作员姓名namevarchar12操作员性别___varchar21,21为男性,2为女性操作员年龄ageint40—100的整数正常年龄范围证件号码identityCardvarchar30数字13位工作日期workdatedatetime操作员__telvarchar50数字,11位是否为___adminbit0,10代表不是,1代表是__passwordvarchar10读者数据项数据项含义数据项名类型存储长度取值范围取值含义读者姓名nameVarchar10读者性别___varchar21,21为男性,2为女性读者年龄ageint40-100的整数正常年龄范围证件号码identityCardvarchar30数字13位证件有效日期datedatetime最大借书量__xNumint4读者__telvarchar50数字,11位办证时交纳的押金keepMoneymoney证件zjint101,2,31为军人证,2为学生证,3为工作证读者职业zyvarchar50读者条形码I__Nvarchar13办证时间bztimedatetime操作员编码operatorIdint
42.4数据结构数据结构名组成含义说明图书信息图书条形码、图书类别编码、图书__、图书名称、译者、出版社、出版日期、__、操作员编码是图书管理信息系统中图书维护模块的主体数据结构,定义了图书的有关信息图书类别类别编码、类别名称、借书天数、罚款、操作员编码定义了各类图书的有关信息图书借阅借阅号、图书条形码、操作员编码、读者条形码、是否归还、借阅时间、归还时间定义了图书借阅的有关信息图书订购图书条形码、订购日期、订购数量、操作员编码、是否验收、折扣定义了图书订购的有关信息图书库存图书条形码、库存数量、操作员编码定义了图书库存的有关信息操作员信息操作员编码、操作员姓名、操作员性别、操作员年龄、证件号码、工作日期、操作员__、是否为___、__是图书管理信息系统中用户维护模块的主体数据结构,定义了操作员的有关信息读者信息读者姓名、读者性别、读者年龄、证件号码、证件有效日期、最大借书量、读者__、办证时交纳的押金、证件、读者职业、读者条形码、办证时间、操作员编码定义了读者的有关信息
2.5数据流数据流图书信息结果说明图书信息的最终结果数据流来源___添加信息数据流去向图书订购或入库组成{图书信息图书条形码、图书类别编码、图书__、图书名称、译者、出版社、出版日期、__、操作员编码}数据流图书订购结果说明图书订购的最终结果数据流来源图书订购数据流去向验收组成{图书订购图书条形码、订购日期、订购数量、操作员编码、是否验收、折扣}数据流图书借阅结果说明图书借阅的最终结果数据流来源借阅数据流去向阅读组成{图书借阅借阅号、图书条形码、操作员编码、读者条形码、是否归还、借阅时间、归还时间、操作员编码}数据流图书库存结果说明图书库存的最终结果数据流来源操作员验收数据流去向图书借阅组成{图书库存图书条形码、库存数量、操作员编码}数据流读者信息结果说明读者信息的最终结果数据流来源操作员维护数据流去向登录或借阅组成{读者信息读者姓名、读者性别、读者年龄、证件号码、证件有效日期、最大借书量、读者__、办证时交纳的押金、证件、读者职业、读者条形码、办证时间、操作员编码}数据流操作员信息结果说明操作员信息的最终结果数据流来源用户添加数据流去向管理组成{操作员信息操作员编码、操作员姓名、操作员性别、操作员年龄、证件号码、工作日期、操作员__、是否为___、__}
2.6数据存储数据存储图书信息表说明记录图书的基本情况流入数据流图书信息结果流出数据流图书借阅结果组成{图书信息图书条形码、图书类别编码、图书__、图书名称、译者、出版社、出版日期、__}数据量每年3000张存取方式随机存取数据存储图书借阅表说明记录图书的借阅情况流入数据流图书信息结果流出数据流图书借阅结果组成{图书借阅借阅号、图书条形码、操作员编码、读者条形码、是否归还、借阅时间、归还时间}数据量每年3000张存取方式随机存取数据存储图书订购表说明记录图书的订购情况流入数据流图书信息结果流出数据流图书借阅结果组成{图书订购图书条形码、订购日期、订购数量、操作员、是否验收、折扣}数据量每年3000张存取方式随机存取数据存储图书库存表说明记录图书的库存情况流入数据流图书信息结果流出数据流图书借阅结果组成{图书库存图书条形码、库存数量}数据量每年3000张存取方式随机存取数据存储操作员信息表说明记录操作员的基本情况流入数据流图书信息结果流出数据流图书借阅结果组成{操作员信息操作员编码、操作员姓名、操作员性别、操作员年龄、证件号码、工作日数据量每年3000张存取方式随机存取数据存储读者信息表说明记录读者的基本情况流入数据流图书信息结果流出数据流图书借阅结果组成{读者信息读者姓名、读者性别、读者年龄、证件号码、证件有效日期、最大借书量、数据量每年3000张存取方式随机存取
2.7处理过程处理过程新书订购说明 为新书下一个订单输入 新书,订单输出 新书购入处理 当需要__新书的时候,为新书下一个订单,一个订单可以有多种类的图书和数量众多的数量处理过程用户信息维护说明 操作员为用户维护用户信息输入 用户信息,操作员输出 系统用户信息表增加信息或者修改信息处理 当一个新用户加入到系统时,或者一个用户的信息有了变化之后,由操作员把信息增加或修改至系统处理过程图书借阅说明 用户借阅图书输入 用户,图书输出 图书借出到用户处理 用户到达图书馆借阅图书时要求每个用户只能借阅相应的最大数量,同样的书只能借一本处理过程新书验收说明 把订购的新书验收,放入仓库输入 新书,仓库输出 新书入库处理 当新书到达后,为所有来的新书做一个验收工作要求把同一个种类的图书放在一个仓库的一个货架处理过程归还图书说明 用户归还图书输入 用户,图书输出 图书归还处理 用户到达图书馆归还图书时要求每个用户必须归还所有已到期的图书,要求超出借期的书要交罚款处理过程图书搜索说明 用户搜索图书输入 图书输出 图书信息处理 用户到达图书馆后,可以搜索图书信息,方便借阅图书
3.概念模型设计
3.1E-R图
3.
1.1分E-R图根据对书店管理系统的需求分析,总结出如下需求信息
(1)每种图书类别下可以有多种图书
(2)每个书店用户可以借阅多本图书
(3)每种图书可以同时借给多个读者
(4)一个仓库可以存放多类图书
(5)一个___可以订购多类图书图
3.1图书信息ER图图
3.2图书类别ER图图
3.3图书借阅ER图图
3.4图书订购ER图图
3.5图书库存E-R图图
3.6读者信息E-R图图
3.7操作员信息E-R图对每个实体定义的属性如下图书信息{图书条形码,图书类别编码,操作员编码,图书__,图书名称,译者,出版社,出版日期,__}图书类别{类别编码,操作员编码,类别名称,借书天数,罚款}图书订购{图书条形码,操作员编码,订购日期,订购数量,是否验收,折扣}图书借阅{借阅号,图书条形码,操作员编码,读者条形码,是否归还,借阅时间,归还时间}图书库存{图书条形码,操作员编码,库存数量}操作员信息{操作员编码,操作员姓名,操作员性别,操作员年龄,证件号码,工作日期,操作员__,是否为___,__}读者信息{读者条形码,操作员编码,读者姓名,读者性别,读者年龄,证件号码,证件有效日期,最大借书量,读者__,办证时交纳的押金,证件,读者职业,办证时间}
3.
1.2总E-R图4.逻辑结构设计
4.1E-R图转换为关系模式
(1)图书信息{图书条形码、图书类别编码、操作员编码、图书__、图书名称、译者、出版社、出版日期、__}
(2)图书类别{类别编码、操作员编码、类别名称、借书天数、罚款}
(3)图书借阅{借阅号、图书条形码、操作员编码、读者条形码、是否归还、借阅时间、归还时间}
(4)图书订购{图书条形码、操作员编码、订购日期、订购数量、是否验收、折扣}
(5)图书库存{图书条形码、操作员编码、库存数量}
(6)操作员信息{操作员编码、操作员姓名、操作员性别、操作员年龄、证件号码、工作日期、操作员__、是否为___、__}
(7)读者信息{读者条形码、操作员编码、读者姓名、读者性别、读者年龄、证件号码、证件有效日期、最大借书量、读者__、办证时交纳的押金、证件、读者职业、办证时间}
(8)__“借还”对应的关系模式如下借还(图书条形码,读者条形码)9__“管理”是一个多元__,可将它转化为如下关系模式管理(图书条形码,图书类别编码,操作员编码,读者条形码,借阅号)
(10)“图书订购”和“图书库存”是具有相同码的关系模式,可合并为如下关系模式图书库存(图书条形码,库存数量,订购日期,订购数量,操作员,是否验收,折扣)11__“分类”对应的关系模式如下分类(操作员编码,图书类别编码)
4.2关系模式的优化在关系模式图书信息{图书条形码、图书类别编码、操作员编码、图书__、图书名称、译者、出版社、出版日期、__}中存在如下函数依赖:图书条形码图书类别编码图书条形码图书__图书条形码图书名称图书条形码译者图书条形码出版社图书条形码出版日期图书条形码__图书条形码操作员编码为了满足2nf,我们把这个表中的操作员编码去掉,此时也满足了3nf,不存在传递函数依赖关系在关系模式图书类别{类别编码、操作员编码、类别名称、借书天数、罚款}中存在如下函数依赖:类别编码类别名称类别编码借书天数类别编码罚款类别编码操作员编码为了满足2nf,我们把这个表中的操作员编码去掉,此时也满足了3nf,不存在传递函数依赖关系在关系模式图书借阅{借阅号、图书条形码、操作员编码、读者条形码、是否归还、借阅时间、归还时间}中存在如下函数依赖:借阅号图书条形码借阅号读者条形码借阅号是否归还借阅号借阅时间借阅号归还时间借阅号操作员编码满足2nf也满足了3nf,不存在传递函数依赖关系在关系模式图书订购{图书条形码、操作员编码、订购日期、订购数量、是否验收、折扣}中存在如下函数依赖:图书条形码订购日期图书条形码订购数量图书条形码是否验收图书条形码折扣图书条形码操作员编码为了满足2nf,我们把这个表中的操作员编码去掉,此时也满足了3nf,不存在传递函数依赖关系在关系模式图书库存{图书条形码、操作员编码、库存数量}中存在如下函数依赖:图书条形码库存数量图书条形码操作员编码为了满足2nf,我们把这个表中的操作员编码去掉,此时也满足了3nf,不存在传递函数依赖关系在关系模式操作员信息{操作员编码、操作员姓名、操作员性别、操作员年龄、证件号码、工作日期、操作员__、是否为___、__}中存在如下函数依赖:操作员编码操作员姓名操作员编码操作员性别操作员编码操作员年龄操作员编码证件号码操作员编码工作日期操作员编码操作员__操作员编码是否为___操作员编码__满足2nf,此时也满足了3nf,不存在传递函数依赖关系在关系模式读者信息{读者条形码、操作员编码、读者姓名、读者性别、读者年龄、证件号码、证件有效日期、最大借书量、读者__、办证时交纳的押金、证件、读者职业、办证时间}中存在如下函数依赖:读者条形码读者姓名读者条形码读者性别读者条形码读者年龄读者条形码证件号码读者条形码证件有效时期读者条形码最大借书量读者条形码读者__读者条形码办证时交纳的押金读者条形码证件读者条形码读者职业读者条形码办证时间读者条形码操作员编码为了满足2nf,我们把这个表中的操作员编码去掉,此时也满足了3nf,不存在传递函数依赖关系
(8)关系模式借还(图书条形码,图书类别编码,读者条形码)是由实体间的__转换的关系模式,读者条形码、图书条形码和图书类别编码为关系的组合码,该关系模式与图书借阅模式具有相同的码,可合并,合并后即图书借阅模式该模式由两个实体的码和外码组成,没有__本身的属性,因此没有非主属性之说,是3NF模式9关系模式管理(操作员编码,图书条形码,图书类别编码,读者条形码)是六个实体间的__,其核心实体是操作员,但操作员编码与其它的关系码并不具有函数依赖关系,根据系统的需求,只有___凭借___的__登陆才能进入系统对各种实体信息进行管理该关系模式均由各实体的码组成,且各个实体的关系都符合3NF模式,因此,它属于3NF模式
(10)对于合并后的模式图书库存(图书条形码,库存数量,订购日期,订购数量,操作员,是否验收,折扣)由于此次设计的应用系统就是___进入系统主界面对“基础数据维护”、“图书借阅管理”、“新书订购管理”、“系统维护”四个子系统对各关系模式下的信息进行管理根据系统需要,合并后的关系模式不能满足“新书订购管理”子系统的需求,因此关系模式“图书订购”和“库存管理不能合并”11__“分类”对应的关系模式如下分类(操作员编码,图书类别编码)
4.3设计用户子模式为仓库部门建立视图图书订购{图书条形码、操作员编码、订购数量、是否验收}订购部门看不到图书的折扣和订购日期,只要知道自己需要知道的数量和订购部门有没有验收这批货物即可
5.数据库的物理设计
5.1确定数据的存储结构 确定数据库的物理结构主要指确定数据的存放位置和存储结构包括:确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等
5.2确定数据的存放位置 将表和索引放在不同的磁盘上,在查询时,由于磁盘驱动器并行工作,可以提高物理I/O读写的效率,也可以将比较大的表分放在两个磁盘上,以加快存取速度,这在多用户环境下特别有效;还可以将日志文件与数据库对象(表、索引等)放在不同的磁盘上,以改进系统的性能
5.3确定系统配置内存分配参数,缓冲区分配参数,存储分配参数,物理块的大小,物理块的装填因子,时间片大小,数据库的大小,锁的数目等这些参数值都可以影响存取时间和存储空间的分配,在物理设计时就要根据应用环境确定这些参数值,以使系统性能最佳
6.数据库的实施与维护6.1数据的载入和应用程序的调试6.1.1数据表的建立语句
(1)图书信息表的建立CREATETABLEtb_bookInfoI__Nvarchar13PRI__RYKEYNOTNULLtypeIdintNOTNULLbooknamevarchar40NOTNULLwritervarchar21NOTNULLtranslatorvarchar30publishervarchar50NOTNULLdate__alldatetimeNOTNULLpri__moneyNOTNULL
(2)图书类型表的建立CREATETABLEtb_bookTypeidintPRI__RYKEYNOTNULLtypeNamevarchar20NOTNULLdaysintfkfloat
(3)图书借阅表的建立CREATETABLEtb_borrowidintPRI__RYKEYNOTNULLbookI__Nvarchar13operatorIdintreaderI__Nvarchar13i__ackintNOTNULLborrowDatedatetimebackDatedatetime
(4)图书操作表的建立CREATETABLEtb_operatoridintPRI__RYKEYNOTNULLnamevarchar12NOTNULL___varchar2NOTNULLageintNOTNULLidentityCardvarchar30NOTNULLworkdatedatetimeNOTNULLtelvarchar50NOTNULLadminbitNOTNULLpasswordvarchar10NOTNULL
(5)订购单表的建立CREATETABLEtb_orderI__Nvarchar13PRI__RYKEYNOTNULLdatedatetimeNOTNULLnumberintNOTNULLoperatorvarchar6NOTNULLcheckAndAc__ptintNOTNULLzkfloatNOTNULL
(6)读者信息表的建立CREATETABLEtb_readernamevarchar10NOTNULL___varchar2NOTNULLageintNOTNULLidentityCardvarchar30NOTNULLdatedatetimeNOTNULL__xNumintNOTNULLtelvarchar50NOTNULLkeepMoneyNOTmoneyNULLzjintNOTNULLzyvarchar50NOTNULLreaderI__Nvarchar13PRI__RYKEYNOTNULLbztimedatetimeNOTNULL
(7)图书库存表的建立CREATETABLEtb_stockpileI__Nvarchar13PRI__RYKEYNOTNULLamountint
6.
1.2数据库关系图
6.
1.3应用程序的调试为提高数据输入工作的效率和质量,针对具体的应用环境设计一个数据录入子系统,由计算机来完成数据入库的任务,与此同时,还要调试应用程序
(1)登录类BookLoginIFramepublicclassBookLoginIFrameextendsJFrame{privateclassBookResetActionimplementsActionListener{publicvoidactionPerformedfinalActionEvente{username.setText;password.setText;}}publicstaticintm=0;//静态变量控制内部窗体权限,0的权限最低,1为普通用户权限,2为___权限classBookLoginActionimplementsActionListener{publicvoidactionPerformedfinalActionEvente{user=Dao.check2username.getTextpassword.getText;//验证身份ifuser.getName!=null{//存在该用户user=Dao.checkusername.getTextpassword.getText;//判断是否为___ifuser.getName!=null{m=2;}user=Dao.check1username.getTextpassword.getText;//判断是否为普通用户ifuser.getName!=null{m=1;}try{Libraryframe=newLibrary;frame.setVisibletrue;BookLoginIFrame.this.setVisiblefalse;}catchEx__ptionex{ex.printStackTra__;}}else{JOptionPane.showMessageDialognull该用户不存在或__错误!;//username.setText;password.setText;}}}privateJPasswordFieldpassword;privateJTextFieldusername;privateJButtonlogin;privateJButtonreset;privatestaticOperateruser;publicBookLoginIFrame{super;finalBorderLayoutborderLayout=newBorderLayout;setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;borderLayout.setVgap10;getContentPane.setLayoutborderLayout;setTitle图书馆管理系统登录;setBounds100100285194;finalJPanelpanel=newJPanel;panel.setLayoutnewBorderLayout;panel.setBordernewEmptyBorder0000;getContentPane.addpanel;finalJPanelpanel_2=newJPanel;finalGridLayoutgridLayout=newGridLayout02;gridLayout.setHgap5;gridLayout.setVgap20;panel_
2.setLayoutgridLayout;panel.addpanel_2;finalJLabellabel=newJLabel;label.setHorizontalAlig__entSwin__onstants.__NTER;label.setPreferredSizenewDimension00;label.setMinimumSizenewDimension00;panel_
2.addlabel;label.setText用户名;username=newJTextField20;username.setPreferredSizenewDimension00;panel_
2.addusername;finalJLabellabel_1=newJLabel;label_
1.setHorizontalAlig__entSwin__onstants.__NTER;panel_
2.addlabel_1;label_
1.setText密码;password=newJPasswordField20;password.setDocumentnewMyDocument6;password.setEchoChar*;//设置__框的回显字符password.addKeyListenernewKeyAdapter{publicvoidkeyPressedfinalKeyEvente{ife.getKeyCode==10login.doClick;}};panel_
2.addpassword;finalJPanelpanel_1=newJPanel;panel.addpanel_1BorderLayout.SOUTH;login=newJButton;login.addActionListenernewBookLoginAction;login.setText登录;panel_
1.addlogin;reset=newJButton;reset.addActionListenernewBookResetAction;reset.setText重置;panel_
1.addreset;finalJLabeltupianLabel=newJLabel;I__geIconloginIcon=CreatecdIcon.addlogin.jpg;tupianLabel.setIconloginIcon;tupianLabel.setOpaquetrue;tupianLabel.setBackgroundColor.GREEN;tupianLabel.setPreferredSizenewDimension26060;panel.addtupianLabelBorderLayout.NORTH;setVisibletrue;setResizablefalse;}publicstaticOperatergetUser{returnuser;}publicstaticvoidsetUserOperateruser{BookLoginIFrame.user=user;}}
(2)主菜单Library/***主窗体**/publicclassLibraryextendsJFrameimplementsActionListener{privatestaticfinalJDesktopPaneDESKTOP_PANE=newJDesktopPane;publicstaticvoid__inString[]args{try{UI__nager.setLookAndFeelUI__nager.getSystemLookAndFeelClassName;//设置窗体风格newBookLoginIFrame;//登录窗口}catchEx__ptionex{ex.printStackTra__;}}publicstaticvoidaddIFame___ternalFrameiframe{//添加子窗体的方法DESKTOP_PANE.addiframe;}publicLibrary{super;setDefaultCloseOperationWindowConstants.EXIT_ON_CLOSE;setLocationByPlatformtrue;setSize800600;setTitle图书馆管理系统;JMenuBarmenuBar=createMenu;//调用创建菜单栏的方法setJMenuBarmenuBar;JToolBartoolBar=createToolBar;//调用创建工具栏的方法getContentPane.addtoolBarBorderLayout.NORTH;finalJLabellabel=newJLabel;label.setBounds0000;label.setIconnull;//窗体背景DESKTOP_PANE.addComponentListenernewComponentAdapter{publicvoidcomponentResizedfinalComponentEvente{Dimensionsize=e.getComponent.getSize;label.setSizee.getComponent.getSize;label.setTexthtmlimgwidth=+size.width+height=+size.height+src=+this.getClass.getResour__/backImg.jpg+/html;}};DESKTOP_PANE.addlabelnewIntegerInteger.MIN_VALUE;getContentPane.addDESKTOP_PANE;}/***创建工具栏**@returnJToolBar*/privateJToolBarcreateToolBar{//创建工具栏的方法JToolBartoolBar=newJToolBar;toolBar.setFloatablefalse;toolBar.setBordernewBevelBorderBevelBorder.RAISED;JButtonbookAddButton=newJButtonMenuActions.BOOK_ADD;//I__geIconicon=CreatecdIcon.addbookAdd.bmp;//创建图标方法I__geIconicon=newI__geIconLibrary.class.getResour__/bookAddtb.jpg;//添加菜单栏图标bookAddButton.setIconicon;bookAddButton.setHideActionTexttrue;toolBar.addbookAddButton;//在工具栏中添加图书修改与删除图标JButtonbookModiAndDelButton=newJButtonMenuActions.BOOK_MODIFY;I__geIconbookmodiicon=CreatecdIcon.addbookModiAndDeltb.jpg;//创建图标方法bookModiAndDelButton.setIconbookmodiicon;bookModiAndDelButton.setHideActionTexttrue;toolBar.addbookModiAndDelButton;JButtonbookTypeAddButton=newJButtonMenuActions.BOOKTYPE_ADD;I__geIconbookTypeAddicon=CreatecdIcon.addbookTypeAddtb.jpg;//创建图标方法bookTypeAddButton.setIconbookTypeAddicon;bookTypeAddButton.setHideActionTexttrue;toolBar.addbookTypeAddButton;JButtonbookBorrowButton=newJButtonMenuActions.BORROW;I__geIconbookBorrowicon=CreatecdIcon.addbookBorrowtb.jpg;//创建图标方法bookBorrowButton.setIconbookBorrowicon;bookBorrowButton.setHideActionTexttrue;toolBar.addbookBorrowButton;JButtonbookOrderButton=newJButtonMenuActions.NEWBOOK_ORDER;I__geIconbookOrdericon=CreatecdIcon.addbookOrdertb.jpg;//创建图标方法bookOrderButton.setIconbookOrdericon;bookOrderButton.setHideActionTexttrue;toolBar.addbookOrderButton;JButtonbookCheckButton=newJButtonMenuActions.NEWBOOK_CHECK_AC__PT;I__geIconbookCheckicon=CreatecdIcon.addnewbookChecktb.jpg;//创建图标方法bookCheckButton.setIconbookCheckicon;bookCheckButton.setHideActionTexttrue;toolBar.addbookCheckButton;JButtonreaderAddButton=newJButtonMenuActions.READER_ADD;I__geIconreaderAddicon=CreatecdIcon.addreaderAddtb.jpg;//创建图标方法readerAddButton.setIconreaderAddicon;readerAddButton.setHideActionTexttrue;toolBar.addreaderAddButton;JButtonreaderModiAndDelButton=newJButtonMenuActions.READER_MODIFY;I__geIconreaderModiAndDelicon=CreatecdIcon.addreaderModiAndDeltb.jpg;//创建图标方法readerModiAndDelButton.setIconreaderModiAndDelicon;readerModiAndDelButton.setHideActionTexttrue;toolBar.addreaderModiAndDelButton;JButtonExitButton=newJButtonMenuActions.EXIT;I__geIconExiticon=CreatecdIcon.addexittb.jpg;//创建图标方法ExitButton.setIconExiticon;ExitButton.setHideActionTexttrue;toolBar.addExitButton;returntoolBar;}/***创建菜单栏*/privateJMenuBarcreateMenu{//创建菜单栏的方法JMenuBarmenuBar=newJMenuBar;JMenubookOrderMenu=newJMenu;//初始化新书订购管理菜单bookOrderMenu.setIconCreatecdIcon.addxsd__d.jpg;bookOrderMenu.addMenuActions.NEWBOOK_ORDER;bookOrderMenu.addMenuActions.NEWBOOK_CHECK_AC__PT;ifBookLoginIFrame.m==2{//最高权限时可用bookOrderMenu.setEnabledtrue;}elsebookOrderMenu.setEnabledfalse;JMenubaseMenu=newJMenu;//初始化基础数据维护菜单baseMenu.setIconCreatecdIcon.addjcsjcd.jpg;{JMenureader__nagerMItem=newJMenu读者信息管理;reader__nagerMItem.addMenuActions.READER_ADD;reader__nagerMItem.addMenuActions.READER_MODIFY;JMenubookType__nageMItem=newJMenu图书类别管理;bookType__nageMItem.addMenuActions.BOOKTYPE_ADD;bookType__nageMItem.addMenuActions.BOOKTYPE_MODIFY;JMenumenu=newJMenu图书信息管理;menu.addMenuActions.BOOK_ADD;menu.addMenuActions.BOOK_MODIFY;baseMenu.addreader__nagerMItem;baseMenu.addbookType__nageMItem;baseMenu.addmenu;baseMenu.addSeparator;baseMenu.addMenuActions.EXIT;ifBookLoginIFrame.m==2{//最高权限时可用baseMenu.setEnabledtrue;}elsebaseMenu.setEnabledfalse;}JMenuborrow__nageMenu=newJMenu;//借阅管理borrow__nageMenu.setIconCreatecdIcon.addjyglcd.jpg;borrow__nageMenu.addMenuActions.BORROW;//借阅borrow__nageMenu.addMenuActions.GIVE_BACK;//归还borrow__nageMenu.addMenuActions.BOOK_SEARCH;//搜索JMenusy__anageMenu=newJMenu;//系统维护sy__anageMenu.setIconCreatecdIcon.addj__hcd.jpg;JMenuuser__nageMItem=newJMenu用户管理;//用户管理JMenuItembackupAndrestore=newJMenuItem备份与还原;//备份与还原user__nageMItem.addMenuActions.USER_ADD;user__nageMItem.addMenuActions.USER_MODIFY;sy__anageMenu.addMenuActions.MODIFY_PASSWORD;sy__anageMenu.adduser__nageMItem;sy__anageMenu.addbackupAndrestore;backupAndrestore.addActionListenerthis;ifBookLoginIFrame.m==2{//最高权限时可用sy__anageMenu.setEnabledtrue;}elsesy__anageMenu.setEnabledfalse;menuBar.addbaseMenu;//添加基础数据维护菜单到菜单栏menuBar.addbookOrderMenu;//添加新书订购管理菜单到菜单栏menuBar.addborrow__nageMenu;//添加借阅管理菜单到菜单栏menuBar.addsy__anageMenu;//添加系统维护菜单到菜单栏returnmenuBar;}@OverridepublicvoidactionPerformedActionEvente{//TODOAuto-generatedmethodstubife.getActionCom__nd.equals备份与还原{newBackupAndRestore;ife.getActionCom__nd.equals备份{connect;doBackup;}ife.getActionCom__nd.equals还原{connect;doRestore;}}}JButtonbackupButtonrestoreButton;Connectionconnection=null;Statementstatement=null;privateJButtongetBackupButton{ifbackupButton==null{backupButton=newJButton;backupButton.setText备份;backupButton.addActionListenerthis;}returnbackupButton;}privateJButtongetRestoreButton{ifrestoreButton==null{restoreButton=newJButton;restoreButton.setText还原;restoreButton.addActionListenerthis;}returnrestoreButton;}privatevoidconnect{Stringpath;StringdriverName;StringURLName;Stringuser;Stringpassword;try{j__a.util.Propertiesprop=newj__a.util.Properties;path=newj__a.io.Fileconfig+j__a.io.File.separator+restore.ini.getAbsolutePath;System.out.println数据库配置文件路径+path;j__a.io.FileInputStreamfin=newj__a.io.FileInputStreampath;prop.loadfin;driverName=prop.getPropertydriver;URLName=prop.getPropertyurl;user=prop.getPropertyuser;password=prop.getPropertypassword;System.out.printlnurl=+URLName;System.out.printlndriver:+driverName;Class.forNamedriverName;ifconnection==nullconnection=j__a.sql.Driver__nager.getConnectionURLNameuserpassword;statement=connection.createStatementResultSet.TYPE_SCROLL_SENSITIVEResultSet.CONCUR_UPDATABLE;}catchEx__ptioner{path=newj__a.io.Fileconfig+j__a.io.File.separator+restore.ini.getAbsolutePath;JOptionPane.showMessageDialognull连接参数文件没找到到请查看文件+path+是否存在;er.printStackTra__;}}privatevoiddoRestore{try{statement.executeUpdateUSE__ster;Stringquery;JOptionPane.showMessageDialognull数据库恢复成功;}catchSQLEx__ptione{JOptionPane.showMessageDialognull数据库恢复失败!\r\n+e.getMessage;e.printStackTra__;}}privatevoiddoBackup{try{statement.executeUpdateUSE__ster;Stringquery;JOptionPane.showMessageDialognull数据库备份成功;}catchSQLEx__ptione{//TODOAuto-generatedcatchblockJOptionPane.showMessageDialognull数据库备份失败+\r\n+e.getMessage;e.printStackTra__;}}}
(3)内部菜单动作MenuActions/***菜单和按钮的Action对象**/publicclassMenuActions{privatestatic__pString___ternalFrameframes;//子窗体__publicstaticPasswordModiActionMODIFY_PASSWORD;//修改__窗体动作publicstaticUserModiActionUSER_MODIFY;//修改用户资料窗体动作publicstaticUserAddActionUSER_ADD;//用户添加窗体动作publicstaticBookSearchActionBOOK_SEARCH;//图书搜索窗体动作publicstaticGiveBackActionGIVE_BACK;//图书归还窗体动作publicstaticBorrowActionBORROW;//图书借阅窗体动作publicstaticCheckAndAc__ptNewBookActionNEWBOOK_CHECK_AC__PT;//验收新书动作publicstaticBoodOrderActionNEWBOOK_ORDER;//新书订购窗体动作publicstaticBookTypeModiActionBOOKTYPE_MODIFY;//图书类型修改窗体动作publicstaticBookTypeAddActionBOOKTYPE_ADD;//图书类型添加窗体动作publicstaticReaderModiActionREADER_MODIFY;//读者信息修改与删除窗体动作publicstaticReaderAddActionREADER_ADD;//读者信息添加窗体动作publicstaticBookModiActionBOOK_MODIFY;//图书信息修改窗体动作publicstaticBookAddActionBOOK_ADD;//图书信息添加窗体动作publicstaticExitActionEXIT;//系统退出动作static{frames=newHash__pString___ternalFrame;MODIFY_PASSWORD=newPasswordModiAction;USER_MODIFY=newUserModiAction;USER_ADD=newUserAddAction;BOOK_SEARCH=newBookSearchAction;GIVE_BACK=newGiveBackAction;BORROW=newBorrowAction;NEWBOOK_CHECK_AC__PT=newCheckAndAc__ptNewBookAction;NEWBOOK_ORDER=newBoodOrderAction;BOOKTYPE_MODIFY=newBookTypeModiAction;BOOKTYPE_ADD=newBookTypeAddAction;READER_MODIFY=newReaderModiAction;READER_ADD=newReaderAddAction;BOOK_MODIFY=newBookModiAction;BOOK_ADD=newBookAddAction;EXIT=newExitAction;}privatestaticclassPasswordModiActionextendsAbstractAction{PasswordModiAction{putValueAction.NAME更改口令;putValueAction.LONG_DESCRIPTION修改当前用户__;putValueAction.SHORT_DESCRIPTION更换口令;//在“更改口令”提示中显示的文字//putValueAction.__ALL_ICONCreatecdIcon.addbookAddtb.jpg;//将图标存储到动作对象中//setEnabledfalse;//使动作禁用}publicvoidactionPerformedActionEvente{if!frames.containsKey更改__||frames.get更改__.isClosed{GengGaiMi__iframe=newGengGaiMi__;frames.put更改__iframe;Library.addIFameframes.get更改__;}}}privatestaticclassUserModiActionextendsAbstractAction{UserModiAction{super用户修改与删除null;putValueAction.LONG_DESCRIPTION修改和删除用户信息;putValueAction.SHORT_DESCRIPTION用户修改与删除;}publicvoidactionPerformedActionEvente{if!frames.containsKey用户信息修改与删除||frames.get用户信息修改与删除.isClosed{UserModiAndDelIFrameiframe=newUserModiAndDelIFrame;frames.put用户信息修改与删除iframe;Library.addIFameframes.get用户信息修改与删除;}}}privatestaticclassUserAddActionextendsAbstractAction{UserAddAction{super用户添加null;putValueAction.LONG_DESCRIPTION添加新的用户;putValueAction.SHORT_DESCRIPTION用户添加;}publicvoidactionPerformedActionEvente{if!frames.containsKey用户信息添加||frames.get用户信息添加.isClosed{UserAddIFrameiframe=newUserAddIFrame;frames.put用户信息添加iframe;Library.addIFameframes.get用户信息添加;}}}privatestaticclassBookSearchActionextendsAbstractAction{BookSearchAction{super图书搜索null;putValueAction.LONG_DESCRIPTION搜索入库的图书信息;putValueAction.SHORT_DESCRIPTION图书搜索;}publicvoidactionPerformedActionEvente{if!frames.containsKey图书查询||frames.get图书查询.isClosed{BookSearchIFrameiframe=newBookSearchIFrame;frames.put图书查询iframe;Library.addIFameframes.get图书查询;}}}privatestaticclassGiveBackActionextendsAbstractAction{GiveBackAction{super图书归还null;putValueAction.LONG_DESCRIPTION归还借阅的图书;putValueAction.SHORT_DESCRIPTION图书归还;ifBookLoginIFrame.m==2{//最高权限时可用setEnabledtrue;}elsesetEnabledfalse;}publicvoidactionPerformedActionEvente{if!frames.containsKey图书归还管理||frames.get图书归还管理.isClosed{BookBackIFrameiframe=newBookBackIFrame;frames.put图书归还管理iframe;Library.addIFameframes.get图书归还管理;}}}privatestaticclassBorrowActionextendsAbstractAction{BorrowAction{super图书借阅null;putValueAction.LONG_DESCRIPTION从图书馆借阅图书;putValueAction.SHORT_DESCRIPTION图书借阅;}publicvoidactionPerformedActionEvente{if!frames.containsKey图书借阅管理||frames.get图书借阅管理.isClosed{BookBorrowIFrameiframe=newBookBorrowIFrame;frames.put图书借阅管理iframe;Library.addIFameframes.get图书借阅管理;}}}privatestaticclassCheckAndAc__ptNewBookActionextendsAbstractAction{CheckAndAc__ptNewBookAction{super验收新书null;putValueAction.LONG_DESCRIPTION验收订阅的新图书;putValueAction.SHORT_DESCRIPTION验收新书;ifBookLoginIFrame.m==2{//最高权限时可用setEnabledtrue;}elsesetEnabledfalse;}publicvoidactionPerformedActionEvente{if!frames.containsKey图书验收||frames.get图书验收.isClosed{newBookCheckIFrameiframe=newnewBookCheckIFrame;frames.put图书验收iframe;Library.addIFameframes.get图书验收;}}}privatestaticclassBoodOrderActionextendsAbstractAction{BoodOrderAction{super新书订购null;putValueAction.LONG_DESCRIPTION订购新的图书;putValueAction.SHORT_DESCRIPTION新书订购;ifBookLoginIFrame.m==2{//最高权限时可用setEnabledtrue;}elsesetEnabledfalse;}publicvoidactionPerformedActionEvente{if!frames.containsKey新书订购管理||frames.get新书订购管理.isClosed{newBookOrderIFrameiframe=newnewBookOrderIFrame;frames.put新书订购管理iframe;Library.addIFameframes.get新书订购管理;}}}privatestaticclassBookTypeModiActionextendsAbstractAction{BookTypeModiAction{super图书类别修改null;putValueAction.LONG_DESCRIPTION修改图书的类别信息;putValueAction.SHORT_DESCRIPTION图书类别修改;}publicvoidactionPerformedActionEvente{if!frames.containsKey图书类别修改||frames.get图书类别修改.isClosed{BookTypeModiAndDelIFrameiframe=newBookTypeModiAndDelIFrame;frames.put图书类别修改iframe;Library.addIFameframes.get图书类别修改;}}}privatestaticclassBookTypeAddActionextendsAbstractAction{BookTypeAddAction{super图书类别添加null;putValueAction.LONG_DESCRIPTION为图书馆添加新的图书类别;putValueAction.SHORT_DESCRIPTION图书类别添加;ifBookLoginIFrame.m==2{//最高权限时可用setEnabledtrue;}elsesetEnabledfalse;}publicvoidactionPerformedActionEvente{if!frames.containsKey图书类别添加||frames.get图书类别添加.isClosed{BookTypeAddIFrameiframe=newBookTypeAddIFrame;frames.put图书类别添加iframe;Library.addIFameframes.get图书类别添加;}}}privatestaticclassReaderModiActionextendsAbstractAction{ReaderModiAction{super读者修改与删除null;putValueAction.LONG_DESCRIPTION修改和删除读者的基本信息;putValueAction.SHORT_DESCRIPTION读者修改与删除;ifBookLoginIFrame.m==2{//最高权限时可用setEnabledtrue;}elsesetEnabledfalse;}publicvoidactionPerformedActionEvente{if!frames.containsKey读者信息修改与删除||frames.get读者信息修改与删除.isClosed{ReaderModiAndDelIFrameiframe=newReaderModiAndDelIFrame;frames.put读者信息修改与删除iframe;Library.addIFameframes.get读者信息修改与删除;}}}privatestaticclassReaderAddActionextendsAbstractAction{ReaderAddAction{super读者信息添加null;putValueAction.LONG_DESCRIPTION为图书馆添加新的读者会员信息;putValueAction.SHORT_DESCRIPTION读者信息添加;ifBookLoginIFrame.m==2{//最高权限时可用setEnabledtrue;}elsesetEnabledfalse;}publicvoidactionPerformedActionEvente{if!frames.containsKey读者相关信息添加||frames.get读者相关信息添加.isClosed{ReaderAddIFrameiframe=newReaderAddIFrame;frames.put读者相关信息添加iframe;Library.addIFameframes.get读者相关信息添加;}}}//图书修改与删除privatestaticclassBookModiActionextendsAbstractAction{BookModiAction{super图书修改null;putValueAction.LONG_DESCRIPTION修改和删除图书信息;putValueAction.SHORT_DESCRIPTION图书修改;ifBookLoginIFrame.m==2{//最高权限时可用setEnabledtrue;}elsesetEnabledfalse;}publicvoidactionPerformedActionEvente{if!frames.containsKey图书修改||frames.get图书修改.isClosed{BookModiAndDelIFrameiframe=newBookModiAndDelIFrame;frames.put图书修改iframe;Library.addIFameframes.get图书修改;}}}privatestaticclassBookAddActionextendsAbstractAction{//图书信息添加BookAddAction{super图书信息添加null;//super;putValueAction.LONG_DESCRIPTION为图书馆添加新的图书信息;putValueAction.SHORT_DESCRIPTION图书信息添加;ifBookLoginIFrame.m==2{//最高权限时可用setEnabledtrue;}elsesetEnabledfalse;}publicvoidactionPerformedActionEvente{if!frames.containsKey图书信息添加||frames.get图书信息添加.isClosed{BookAddIFrameiframe=newBookAddIFrame;frames.put图书信息添加iframe;Library.addIFameframes.get图书信息添加;}}}privatestaticclassExitActionextendsAbstractAction{//退出系统动作publicExitAction{super退出系统null;putValueAction.LONG_DESCRIPTION退出图书馆管理系统;putValueAction.SHORT_DESCRIPTION退出系统;}publicvoidactionPerformedfinalActionEvente{System.exit0;}}privateMenuActions{super;}}图
6.1登录界面图
6.2主界面图
6.3图书信息添加图
6.4图书信息修改图
6.5图书类别添加图
6.6读者信息添加图
6.7读者信息修改与删除
6.2数据库的试运行
1.应分期分批地__数据入库,先输入小批量数据做调试用,待试运行基本合格后,再大批量输入数据,逐步增加数据量,逐步完成运行评价
2.应首先调试运行DBMS的恢复功能,做好数据库的转储和恢复工作一旦故障发生,能使数据库尽快恢复,尽量减少对数据库的破坏
6.3数据库的运行与维护
1.数据库的转储和恢复
2.数据库的安全性、完整性控制
3.数据库性能的监督、分析和改造
4.数据库的重__与重构造7.总结图书信息图书__出版社出版日期__图书条形码图书名称译者图书类别借书天数类别名称类别编码罚款图书借阅借阅时间归还时间借阅号是否归还图书订购订购数量折扣订购日期图书条形码是否验收读者信息读者姓名读者年龄证件有效日期办证时交纳的押金读者__读者性别办证时间最大借书量证件号码读者条形码读者职业证件操作员信息工作日期证件号码操作员__是否为___操作员年龄操作员编码操作员姓名操作员性别__。