毕业设计(论文)图书管理系统2.doc
安徽大学继续教育学院函授毕 业 论 文题 目 图书管理系统 系 别 继续教育学院 年级专业 计算机科学与技术专业 学 号 姓 名 指导教师 完成日期 安徽大学继续教育学院摘 要随着网络技术的发展、计算机应用水平的提高的扩大,原来系统的时效性、数据的正确性、操作的方便性上都存在不足,已影响到系统的正常使用。经过考察比较,决定利用自己的力量对图书管理系统重新设计,使系统能利用软件开发技术的成果,方便图书的管理。图书管理系统是典型的信息管理系统。系统介绍了图书系统的开发过程,设计中遇到的问题及解决方法以及提高当前应用程序或系统开发进度和改善工作性能. 利用其提供的各种面向对象的开发工具,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。本次课程设计利用JAVA开发工具和SQL SERVER 2005数据库来开发这个图书管理系统。该系统要解决的图书管理所要解决的问题,可以满足图书管理基本要求,包括添加、管理等功能。该系统能根据用户的需求,快捷方便的为读者提供借阅服务。关键词: 图书管理系统,信息管理,JAVA 目 录摘 要1Abstract1第1章 课题背景与意义11.1 课题背景11.2 图书管理系统简介11.3 计算机信息系统的发展21.4 图书管理系统的发展现状21.5 开发图书管理系统应注意的问题31.6 可行性分析31.7 系统开发步骤4第2章 开发环境62.1 Java开发环境62.2 SQL SERVER 2005简介62.2.1 SQL Server 特点72.2.2 SQL Server 2005新特性7第3章 系统分析83.1 处理对象83.2 业务分析83.3 图书管理系统数据流程图83.4 系统功能模块图93.5 数据库的设计103.4.1 概念结构设计103.4.2 逻辑结构设计11第4章 数据库实施134.1 根据以上分析,建立数据库、数据表:134.2 创建各个功能的触发器14第5章 系统流程设计175.1系统操作流程图175.2 数据增加流程175.3 数据修改流程195.4数据删除流程19第6章 系统设计216.1 用户登陆216.2 添加图书信息226.3 图书类别管理246.4 图书借阅管理266.5 用户信息管理28结束语31参考文献31致 谢33第1章 课题背景与意义1.1 课题背景随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现图书信息的管理势在必行。目前图书管理的借阅工作部分大多数还是手工管理,工作效率很低,并且不能及时了解图书的种类和读者们比较需求的图书等,不能更好的适应当前读者的借阅要求。手工管理还存在这许多弊端,由于不可避免的人为因素,造成数据的遗漏、误报。计算机信息化管理有着储存量大,速度快等许多优点,提供给我们的处理信息及时快捷,因此我们利用计算机提供给我们的信息对读者的借阅过程形成一整套动态的管理能够极大地提高图书管理管理的效率,这也是图书管理的科学化、正规化管理,与世界接轨的重要条件。1.2 图书管理系统简介 图书管理系统就是我们常说的MIS(Management Information System),在强调管理,强调信息的现代社会中它变得越来越普及。MIS是一门新的学科,它跨越了若干个领域,比如管理科学、系统科学,运筹学、统计学以及计算机科学。在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统。 管理信息系统是现代信息管理工作不可缺少的一部分,是适应现代高图书信息管理尺度的要求、推动信息管理走向科学化、规范化的必要条件。只有信息管理规范了,才能给人们提供更好的生活环境及便利的生活空间。 信息是管理上的一项极为重要的资源,管理工作的成败取决于能否做出有效的决策,而决策的正确程度则在很大程度上取决于信息的质量。 在21世纪,人类将步入知识经济时代,知识经济时代是图书发展日新月异和知识、信息呈爆炸膨胀的时代。有所谓信息威胁之说,这是指人类面临的要处理的信息量大到难以处理的地步,以至造成混乱的结果。 计算机的出现解决了这个问题,由于计算机迅速、准确为信息收集、加工、使用、查询提供可能。 随着以计算机技术、通信技术、网络技术为代表的现代信息技术的飞跃发展,人类正在从工业时代向信息时代迈进,人们越来越重视信息资源的开发和利用,“信息化”已成为一个国家经济和社会发展的关键环节,信息化水平的高低已成为衡量一个国家现代化水平和综合国力的重要标志。 管理信息系统是一个由人和计算机等组成的,能进行管理信息的收集、传递、加工、保存、维护和使用的系统,它能实测国民经济和企业的行为、帮助实现其规划目标。管理信息系统功能包括:信息收集、信息存储、问题处理、对话及信息输出、信息管理机构。 1.3 计算机信息系统的发展 从 1945 年美国第一台电子数字积分计算机ENIAC 诞生以来,短短四、五十年,计算机技术发展异常迅速,应用日益广泛。从硬件上由电子管、晶体管、集成电路、大规模、超大规模集成,价格降低、可靠性增强。计算机尤其是微型计算机逐渐普及,从开始 4 位微处理器的微型机到现今 32 位高档微机,主频速度越来越快。随着硬件的发展,软件也不断更新,由 2 进制代码到机器语言汇编语言、高级程序语言,到现今面对对象的非过程化语言,人们不必关心问题的解法和计算过程描述,只需告诉它干什么,至于如何干,则由软件自动完成,这给软件开发人员带来及大的便利。软件开发人员不必化大多时间和精力在描述程序的具体细节上,提高效率,减少手工编程中的误差。计算机的应用也由原先单纯的数值计算,到数据处理如办公自动化,辅助教学,工业的自动控制、人工智能,可以说渗透到生产生活的各个领域。计算机的应用提高了效率,降低了成本,节省人力物力。但要发挥其巨大作用,还需提高人们的应用水平。 1.4 图书管理系统的发展现状 现代社会、社会化趋势的扩大和社会产品需求使企业在生产经营活动中涉及的内外部信息积聚膨胀,随着科学技术突飞猛进和生产迅速发展,使人类知识量增长速度不断加快,信息量的增加,外部环境变化的变快,人工已无法胜任。如何收集足够的信息资源,强有力的信息并加以利用,积极的开发和及时利用信息爆炸有效的信息资源,已成为现代社会的难题。计算机的出现解决了这个问题,由于计算机迅速、准确为信息收集、加工、使用、查询提供可能。计算机技术与通信技术结合极大的促进现代信息技术的发展,各国加快信息进程,国际社会建设信息高速公路的热潮和中国工人“金”字号工程为代表的国家信息工程项目的开展,使中国的企业信息化面临新的形势。 电子计算机适应现代社会管理信息量迅速增长,信息寿命短,要求及时转换的问题。信息系统由电子数据处理,信息报告系统,决策支持系统进一步发展到专家系统及支持领导层的决策执行信息程序,在竞争中支持战略决策的战略信息系统。当今社会现代信息技术广泛迅速的渗透到社会生活的各领域但目前在管理信息系统应用还很不完善,属于起步阶段。计算机对管理工作的支持,不仅是数据处理、而且是辅助决策的工具,能够从海量的信息中收集、整理,分析提供给管理者、决策有关的信息,相关的决策分析,甚至可和管理者交互对话,生成决策。目前各个行业的计算机处理信息管理,很大一部分仍停留在单项业务理,处在电子数据处理阶段,各单位由事务处理到系统处理转向支持系统还建立起真正的具有预测控制和支持决策功能的管理信息系统。虽然信息系统已有一定发展,在业务处理过程控制办公自动化方面已有长足进步,但很不完善。要充分利用计算机处理信息,必须从目前情况入手,着眼于未来,开发适合本单位、行业的小型管理系统,甚至是其中一步分,如工资管理系统,然后逐步完善,不断扩充。管理信息系统的特点之一就是数据集中统一,采用数据库。利用数据库技术可解决数据共享问题。数据库用一定数据模型组织数据,使数据面向系统,程序独立于数据,实现数据独立性,减少数据冗余和不一致性,且易编程、扩充、移走。尤其 20 世纪 70 年代后期产生的分布式、面对对象数据库,使数据和数据操作方法作为对象由数据库管理,系统更好用,减少出问题的可能性.其属性继承性可在对象中共享数据和操作,极大的方便了用户。总而言之管理信息系统是集科学化、计算机及系统方法为一体的综合性边缘性学科。 1.5 开发图书管理系统应注意的问题 成功地开发一套管理信息系统,不仅需要具备一定的理论基础,而且还需要对开发过程中所面临的问题有一个充分、清醒的认识,例如:社会因素、文化背景、企业体制、起点环境等。特别是在中国当前IT行业飞速发展的形势下,更要强调这些方面对管理信息系统开发的影响。 1.6 可行性分析(1)由于图书管理系统是作为毕业设计由我们自己开发的,在经济上的投入甚微,系统建成之后将为今后图书管理提供很大的方便,估算新系统的开发费用和今后的运行、维护费用,估计新系统将获得的效益,并将费用与效益进行比较,对今后使用十分有利。(2)技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。本图书管理系统用的是JAVA开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。 运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。当前社会信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。根据新系统目标来衡量所需的技术是否具备,一般可从硬件、软件的性能要求、环境条件、技术人员水平和数量等方面去考虑和分析,其中开发人员的技术力量应首先考虑能力与水平,并考虑近期内可以培养和发展的技术人员。(3)运行可行性对新系统运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境等)和后果进行估计和评价。同时还应考虑现有管理人员的培训、补充,分析在给定时间里能否完成预定的系统开发任务等。 按上述三方面进行可行性分析、研究后,就可整理并编制出新系统开发的可行性报告,它是总体规划工作的阶段性成果。使用本系统,能使图书管理部门加强对资金的管理,对其图书中商品信息及时反馈。利于公司及时采取经营策略。本系统的开发,是典型的MIS开发,主要是对数据的处理,包括数据的收集,数据的变换,及数据的各种报表形式的输出。采用流行的JAVA+SQL SERVER 2005体系,已无技术上的问题。1.7 系统开发步骤一般说来,管理信息系统的建立与应用可以划分成总体规划、系统开发和系统运行三个阶段,其中系统开发阶段还可进一步分为系统分析、系统设计和系统实施等工作环节。上述各个阶段排列成一个严格的线性开发序列,在每个工作阶段均产生完整的技术文档作为下一阶段工作的指导和依据,每一阶段都应对文档进行评审,确信该阶段工作已完成并达到要求后才能进入下一阶段,同时在以后的工作中不能轻易改变前面经过评审的成果。 上述开发方式的主要优点是便于开发工作的组织和管理,并且可大大降低管理信息系统开发的复杂性。国内外许多系统开发的实例都证明这是一种行之有效的开发方式。 国外曾有人对一些软件项目开发各阶段的工作量进行了统计,结果表明,在开发过程中各工作阶段所占全部工作量的比重分别达到系统分析:系统设计:编程:模块调试:系统调试20%:15%:20%:25%:20%。由此可见,程序编写在开发工作中只占很小比例,而调试工作却占整个开发工作量的一半左右,因此“系统开发就是编程”的习惯说法显然是片面的。另据统计,在建立管理信息系统的三个阶段中,总体规划和系统开发阶段的工作量约占整个工作量的2/3,而运行、维护阶段要占1/3,这说明一个管理信息系统开发后,仍应十分重视它的维护工作,以便使系统不断完善并充分发挥其作用。第2章 开发环境本系统采用面向对象的软件开发方法,以Java开发环境作为主要开发工具,使用Microsoft SQL Server 2005作为关系数据库,配合功能强大的SQL查询语言实现建立关系数据库,访问数据库,对数据库的更新,较好地实现了预定的需求功能。2.1 Java开发环境JAVA是INTERNET开发的一个强大的工具,它是一个+的简化版本。JAVA是一门简单的、面向对象的、强类型的、编译型的、结构无关的、多线程(multi-threaded)的、垃圾自动收集的、健壮的、安全的、可扩展的语言。相关技术:1JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口,作为数据源,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API 编写数据库应用程序,同时,JDBC也是个商标名。 2EJB(Enterprise JavaBeans)使得开发者方便地创建、部署和管理跨平台的基于组件的企业应用。 3Java RMI(Java Remote Method Invocation)用来开发分布式Java应用程序。一个Java对象的方法能被远程Java虚拟机调用。这样,远程方法激活可以发生在对等的两端,也可以发生在客户端和服务器之间,只要双方的应用程序都是用Java写的。2.2 SQL SERVER 2005简介SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。 SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2005是Microsoft公司于2005年推出的最新版本。 2.2.1 SQL Server 特点1真正的客户机/服务器体系结构。 2图形化用户界面,使系统管理和数据库管理更加直观、简单。 3丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。 4SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。 5具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows XP的大型多处理器等多种平台使用。 6对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。 7SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。 2.2.2 SQL Server 2005新特性 1支持XML(Extensive Markup Language,扩展标记语言) 2强大的基于Web的分析 3支持OLE DB和多种查询 4支持分布式的分区视图第3章 系统分析3.1 处理对象图书信息:书籍编号,书名,类型,作者,译者,出版商,出版时间,价格,存储量。读者信息:编号,姓名,性别,最多可借数量,可借时间。借阅信息:读者编号,书籍编号,借阅日期,还书日期,借阅时间,是否还书。管理员信息:编号,姓名,密码,是否为管理员。3.2 业务分析本系统主要开发目的是方便图书管理人员进行图书信息管理,增加工作效率,面向的客户群体是各级图书馆的工作人员。根据本系统的需求,结合实际管理情况, 具体的业务需求为:系统管理员能够对用户实施管理:包括添加、删除用户信息,对用户密码进行有效管理。图书管理员能够方便的进行图书管理:包括设置图书种类和图书信息,添加、删除和修改图书信息。图书管理员能够在读者借阅书籍时添加和修改读者借阅书籍信息;在读者还书时添加和修改读者还书信息。管理员能够修改自己的密码。读者能够方便的对图书进行查询。对不同的使用者,设置不同的操作权限。3.3 图书管理系统数据流程图作为图书管理系统,主要管理的对象是读者信息和图书信息,二者的联系是读者信息对图书信息的需求和使用。再仔细分析调查有关图书信息管理需求的基础上,得到本系统所处理的数据流程。读者类别设置书籍类别设置读者种类信息管理书籍类别信息管理读者登记书籍登记读者信息管理书籍信息管理读者信息返回书籍信息返回借阅信息管理基本信息录入基本信息录入借阅信息录入基本信息录入基本信息录入图3- 1图书管理系统数据流程图3.4 系统功能模块图本系统应用有如下功能模块:1.基本信息设置:如操作人员的编辑,操作人员密码的修改。2.用户的管理:可以增加、修改、删除用户信息。3.图书信息管理:可以增加、删除、修改图书信息。4.查询图书信息。5.添加图书借阅信息。6.借阅还书功能。图书管理系统借阅管理查询管理系统管理用户信息维护图书信息查询用户信息查询借书还书密码修改退出系统图书信息维护基础维护图3- 2 系统功能模块图3.5 数据库的设计3.4.1 概念结构设计将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构的设计。从需求分析的处理对象描述中可以抽象出读者信息实体、书籍信息实体、借阅信息实体。系统的E-R图如图所示。可借数量价格出版时间存储量译者出版社作者类型书名编号图书借还编号密码是否管理员姓名管理员可借时间性别编号姓名读者PNM类型图3-3 E-R图3.4.2 逻辑结构设计逻辑结构设计的任务就是把概念设计阶段设计的E-R图转换为与选用数据库管理系统(DBMS)产品所支持的数据模型相符合的逻辑结构。遵循转换原则,把概念结构设计的E-R图转换为以下关系模型(关系模型的码用下划线表示)。图书信息(书籍编号,书名,类型,作者,译者,出版商,出版时间,价格,存储量)读者信息(编号,姓名,性别,最多可借数量,可借时间)借阅信息(读者编号,书籍编号,借阅日期,还书日期,借阅时间,是否还书)管理员信息(编号,姓名,密码,是否为管理员)如下图显示了数据库的逻辑结构:表3.1 图书字段类型长度是否为空描述编号int3否主键书名varchar100否价格float11是存储量Int11是出版商Varchar1024是作者Varchar50是译者Varchar50是出版时间Datetime8是类型Varchar50是表3.2读者字段类型长度是否为空描述编号Int3否主键姓名Varchar50否可借书数Int3是可借天数Int11是类型Varchar20是性别varchar2是表3.3管理员字段类型长度是否为空描述编号Int3否主键姓名Varchar50否密码Varchar50否是否管理员smallint1否表3.4借还表字段类型长度是否为空描述读者编号Int3否外键书籍编号Int3否外键借书日期Datetime8是可借天数Int2是还书日期Datetime8是是否还书Smallint1是第4章 数据库实施4.1 根据以上分析,建立数据库、数据表:首先建立数据库,代码如下:create database myuser基于成本考虑,图书馆的书籍价格在20200为宜,book表建立的代码如下:create table book( price float check(price between 22 and 200), stock int, publish_time datetime, publisher varchar(1024) DEFAULT NULL, translator varchar(50) DEFAULT NULL, author varchar(50) DEFAULT NULL, type varchar(50) DEFAULT NULL, name varchar(100) DEFAULT NULL, id int, PRIMARY KEY (id)借书时间和数量的设置,reader表的建立如下:CREATE TABLE reader ( days_num int CHECK(days_num<=11) DEFAULT NULL, max_num int CHECK(max_num<=3) DEFAULT NULL, sex varchar(2) CHECK(sex IN('男','女')DEFAULT NULL, type varchar(20) DEFAULT NULL, name varchar(50) DEFAULT NULL, id int, PRIMARY KEY (id)borrow表的建立如下:CREATE TABLE borrow ( is_back smallint DEFAULT NULL, back_date datetime, borrow_date datetime DEFAULT NULL, book_id int, reader_id int, PRIMARY KEY (book_id,reader_id), foreign key(book_id) references book(id), on delete cascade, on update cascade, foreign key(reader_id) references reader(id) on delete cascade, on update cascade)Users表的建立如下:CREATE TABLE users ( is_admin smallint DEFAULT NULL, pass varchar(50) DEFAULT NULL, name varchar(50) DEFAULT NULL, id int unique, PRIMARY KEY (id)4.2 创建各个功能的触发器/在book中插入一个触发器,当存储量为零时不能借书create trigger tri_bookon borrowafter insert as if (select stock from book)=0beginprint 'the books is being processed'print 'the borrow cannot be committed'rollback transaction -回滚避免加入end/在book中插入一个触发器,添加一条借书记录时,book中书的存储量减1create trigger borrowinsert1on bookafter insertasupdate book set book.stock=book.stock-1from book,insertedwherebook.id=inserted.id/在borrow中插入一个触发器,借书的日期不能手工更改create trigger borrowdateupdateon borrowafter updateasif update(borrow_date)beginraiserror(' orderdate cannot be modified',10,1)rollback transactionend/在borrow中插入一个触发器,保证向borrow表插入的id必须要在book表中存在。create trigger borrowinsert2on borrowafter insertas if (select count(*) from book,inserted where book.id=inserted.book_id)=0beginprint ' no entry in book for this borrow'rollback transactionend/在borrow中插入一个触发器,令书籍的借阅时间不超过“30天”create trigger tri_book_dateon borrow for insert,updateas if update(borrow_date) begin declare t1 datetime declare t2 datetime declare day1 int declare day2 int set day2= 30 select t1=(select borrow_date from inserted) select t2=(select back_date from inserted) select day1=datediff(day,t2,t1) if day1>day2 print ' no entry in borrow for this borrow' rollback transaction end/在book中插入一个触发器,令书籍的出版时间不超过“今天”create trigger tri_book_dateon bookfor insert,updateas if update(publish_time) begin declare t2 datetime set t2= (select convert(char(10),getdate(),120) declare t1 datetime select t1=(select publish_time from inserted) if t1<t2 print ' no entry in borrow for this borrow' rollback transaction end第5章 系统流程设计5.1系统操作流程图错误信息系统主界面系统登录界面系统管理输入操作员及密码数据库检查密码错误密码正确功能界面功能处理图5.15.2 数据增加流程添加信息时,编号字段由系统自动生成,且不能修改,其他信息由用户输入,之后对数据进行合法判断,合法则写入保存至数据库,不合法则重新输入数据。数据增加流程图:开始输入数据是否合法写入数据库结束否是图5.2 数据增加流程5.3 数据修改流程在修改信息时,先选中一条待修改的记录,然后直接输入数据,判断合法性,合法则保存至数据库,不合法重新输入。数据修改流程图如图3.3所示。开始选择需要修改记录输入数据是否合法写入数据库结束否是图5.3 数据修改流程图5.4数据删除流程当用户选定一条记录时,单击删除按钮,会提示用户是否确定删除,然后删除数据库相关内容。数据删除流程图如图3.4所示。开始选择需要删除记录是否删除更新数据库图5.4 数据删除流第6章 系统设计6.1 用户登陆当系统登陆时,首先出现的是一个用户权限登陆的界面, 权限设置主要是维护系统的安全性和完整性。拥有管理员权限的操作员能对其他操作员进行相应的权限设置,没有权限的操作员不能对相应的窗口进行操作。如下图所示: 图6.1.1用户权限登陆的界面public class LoginPanel extends JFrame public LoginPanel()JFrame f=new JFrame("用户登录界面"); JLabel l_name = new JLabel("用户名:");JTextField t_name = new JTextField(10);JLabel l_password = new JLabel("密 码:");JPasswordField t_password = new JPasswordField(10);JButton ok = new JButton("确定");JButton cancel = new JButton("取消");f.setLayout(new FlowLayout();f.add(l_name);f.add(t_name);f.add(l_password);f.add(t_password);f.add(ok);f.add(cancel);f.setSize(200,200);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setVisible(true);这是进入系统时的身份验证,用户首先要从软件开发者那里申请用户名和密码,才可以进入。该过程的流程图如下图:输入姓名及密码记录在密码表吗中进入主界面继续吗结束开始提示信息NYN 图6.1.2流程图6.2 添加图书信息身份验证通过以后,点击可以使用系统的基本信息管理界面,这是管理员主要的输入信息部分,它即可以对数据进行输入。填写好各项信息后,单击保存按钮,系统将对这些信息进行处理。界面见下图:图6.2添加图书信息界面public class addBook extends JFrame public addBook()JFrame f=new JFrame("添加图书"); JLabel l_no = new JLabel("图书编号:");JTextField t_no = new JTextField(10);JLabel l_cbs = new JLabel("出 版 社:");JTextField t_cbs = new JTextField(10);JLabel l_name = new JLabel("图书名称:");JTextField t_name = new JTextField(10);JLabel l_cbsj = new JLabel("出版时间:");JTextField t_cbsj = new JTextField(10);JLabel l_type = new JLabel("图书类别:");JComboBox t_type=new JComboBox();t_type.addItem("科技类");t_type.addItem("工具类");t_type.addItem("美术类");t_type.setMaximumSize(new Dimension(110,20);t_type.setMinimumSize(new Dimension(110,20);t_type.setPreferredSize(new Dimension(110,20);JLabel l_zz = new JLabel("作 者:");JTextField t_zz = new JTextField(10);JLabel l_price = new JLabel("价 格:");JTextField t_price = new JTextField(10);JLabel l_yz = new JLabel("译 者:");JTextField t_yz = new JTextField(10);JLabel l_num = new JLabel("库存数量:");JTextField t_num = new JTextField(10);JButton save = new JButton("保存");save.setMaximumSize(new Dimension(90,20);save.setMinimumSize(new Dimension(90,20);save.setPreferredSize(new Dimension(90,20);JButton close = new JButton("关闭");close.se