《2021-2022收藏的精品资料基于java图书馆管理系统毕业论文.doc》由会员分享,可在线阅读,更多相关《2021-2022收藏的精品资料基于java图书馆管理系统毕业论文.doc(78页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘 要随着社会的发展,人类对知识的需求也在不断地增长。在这种形式下,书籍就逐渐成为获得知识的主要途径。因此图书馆就自然而然地在人们的生活中占据了一定的位置。如何科学地管理图书不但关系到读者借阅图书的方便程度,也关系到图书馆的发展。因此,开发一套完善的图书馆管理系统就必不可少了。本文详细讲解如何使用Java语言开发图书馆管理系统。同时为了使程序结构更加简洁,在编写是使用了简单的MVC架构。本系统还使用了MySQL数据库来存储有关数据。主要实现以下功能功能: 登录管理:提供用户登录、注销及修改密码等功能。 用户信息管理:提供用户信息查看以及修改密码等功能。 图书借阅管理:图书管理员可以对图书进行借
2、阅和归还操作。 图书信息管理:图书管理员可以对图书进行增加及更新操作。 新书订购:可以为图书馆里增添新书下购书订单。 关键词:图书管理系统;图书订购;MVC模式AbstractWith the development of society,the human demand for knowledge continues to grow.In this situation,the book gradually became the main way to knowledge.So the library naturally occupies a certain position in peopl
3、es lives. How to scientifically manage the books not only related to the convenience of the readers to borrow books, but also to the development of the library.Therefore,development a comprehensive library management system will become essential.This writing explains how to use the Java language for
4、 developing library management system in detail.This paper explained in detail how to use Java language to develop the library management system. Meanwhile, in order to make the program structure more simple, prepared using a simple MVC architecture. The system also uses a MySQL database to store th
5、e data. The main achievement of the following functions: Log management: provides the user login, logout and modify passwords and other functions. The user information management: provides user information view and modify passwords and other functions. The librarian, library management system to bor
6、row and return books operating. Library information management: the librarian can add to the book and the update operation. The new order, can add: library book purchase order.Key words: Library management system;Book ordering;MVC model目 录第1章 序言11.1课题开发背景及意义11.2课题研究内容2 第2章 开发工具及相关技术42.1开发工具42.2开发运行环
7、境82.3相关技术支持122.4 MVC模式15第3章 系统总体设计173.1功能与模块分析173.2系统实现流程图183.3系统用例图19第4章 数据库设计214.1数据库分析214.2数据库概念设计214.3数据库逻辑结构设计244.4数据库E-R图28第5章 系统详细设计305.1公共模块设计315.2基础数据维护模块设计355.3新书订购管理模块设计385.4借阅管理模块设计405.5系统维护模块设计44第6章 系统测试与优化466.1系统安全优化466.2身份验证486.3异常处理496.4系统测试50第7章 总结与展望53参考文献54致谢辞55附录1 英文参考文献56附录2 中文参
8、考文献60山东科技大学本科毕业设计(论文)1序言1.1课题开发背景及意义当今社会随着图书馆规模的不断壮大,图书馆馆藏的图书品种、数量也逐渐增多。在图书馆不断发展的同时,其常年采取的传统的人工方式管理暴露了一些问题: 检索速度慢、效率低因为图书馆的藏书种类多、数量大,将藏书准确地分门别类,快速检索,手工进行非常困难往往是终于查到了图书的信息,馆中没有此书或已被别人借走。图书馆的规模越大,这个问题越突出。 借书、还书工作量大借书、还书频率越大,说明图书馆的作用越大,然而随之而来的大量的借书、还书登记、实存图书的更新以及借出图书超期、遗失等的处理,其工作量之大,往往是人工操作所难以胜任的。而且经常会
9、出现这样那样的差错。 图书统计工作难、藏书更新不能及时完成。图书馆的图书应根据科学技术的发展和教学工作的需要及时添加和更新,然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计工作难以及时完成,藏书的更新也就很难有针对性地进行,藏书的知识结构得不到良好地控制。当今高校发展速度很快,图书馆的规模和藏书数量也不断的扩大,为了解决海量图书的管理问题,改变传统的管理方式也是迫在眉睫了。随着计算机的广泛应用,其逐步成为现代化的标志。图书馆或者一些企业内部,甚至是书店,在正常运行过程中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息、还书信息。因此需要对读者资源、书籍资源
10、、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,要对因此而产生的单据进行及时的处理,为了提高图书馆或者企业内部对图书存销的自动化的管理,能够更快速的满足读者的要求,提高各种工作的效率,现对其设计相应的系统,以达到上述的目的。图书管理系统的主要功能是实现图书馆图书借阅和归还的管理的自动化。围绕这一主要功能,本系统涉及到以下核心功能:借阅管理,归还管理。除了这些核心功能外,还包括一些基本和辅助功能,它们是:用户管理、图书馆参数管理、图书管理、统计查询。1.2课题研究内容本课题主要应用Java语言编程,以MVC简易分层架构,再结合与MySQL数据库连接等相关知识进行图书馆管理系统的设计和
11、实现。本课题内容包括以下内容: 登录管理:为用户提供登录、注销及修改密码等功能。登录时有相应的身份验证功能,以便能让不同权限的用户能使用到相应的功能;修改密码时要求每个用户只能修改自己的密码。 用户信息管理:每个用户可以对自己的信息进行查看以及修改等操作,与此同时用户还可以查看自己当前借阅信息和历史借阅信息。 新书订购:可以为图书馆里增添新书下购书订单,并能对订购单进行验收。每一个订单中可以包含多本图书,可以对订单中的图书信息进行修改。在验收订单时,输入相应的订单号后就能找到要验收的订单,确认验收即可。 图书信息管理:图书管理员可以对图书进行增加及更新操作。图书的添加时,要检测正要添加的图书是
12、否与馆藏的图书重复,并做相应的处理。对图书信息更新时,按照图书的编号找的馆藏图书后,对图书信息进行更新即可。 图书借阅管理:图书管理员可以对图书进行借阅和归还操作。图书的借阅与归还是图书馆最重要的工作,在图书借阅时要判断该书是否已经被该用户借阅了,并进行相应的操作。归还时,只要找到该用户的借阅信息,归还图书即可。 图书查询:用户可以通过图书编号以及书名进行查询。图书的查询功能是为了满足用户想要了解馆藏图书信息的需求而添加的。图书查询是条件查询,按照图书编号、图书名称、出版社、作者等信息进行条件查询,当要输入的信息为空是就将图书全部查询出来。2开发工具与相关技术2.1开发工具IDE(Integr
13、ated Development Environment,集成开发环境)。其缩写形式IDE同时也代指“电子集成驱动器”。IDE集成开发环境(简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。该程序可以独立运行,也可以和其它程序并用。2.1.1 Eclipse 简介Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。 虽然大多数用户很乐于将
14、Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途
15、并不限于 Java 语言;例如,支持诸如 C/C+ 和 COBOL 等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。 基于 Eclipse 的应用程序的一个突出例子是 IBM Rational Software Architect,它构成了 IBM Java 开发工具系列的基础。Eclipse Babel项目提供了多种语言包,用户可以根据自己的需求来对Eclipse进行汉化,汉化以后的界面如图2.1所示。图2.1 汉化后的Eclipse2.1.2 NetBeans简介NetBeans 由Sun公司(2009年被
16、甲骨文收购)在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前可以在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用。NetBeans IDE是一个屡获殊荣的集成开发环境,可以方便的在Windows,Mac,Linux和Solaris中 运行。NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE目前支持PHP、Ruby、JavaSc
17、ript、Ajax、Groovy、Grails和C /C + +等开发语言。 NetBean开发环境提供了丰富的产品文档和培训资源以及大量的第三方插件。它是一种“所见即所得”的开发工具,界面如图2.2。图2.2 NetBeans界面图Swing 是一个为Java设计的GUI工具包。 Swing 是 JAVA基础类 的一部分。 Swing 包括了图形用户界面 (GUI) 器件 如:文本框,按钮,分隔窗格和表。Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swi
18、ng丰富、灵活的功能和模块化组件来创建优雅的用户界面。但是SWING 提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这 一点不像AWT。 它们是JFC的一部分。 它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们。这意味着你可以在任意平台 上使用JAVA支持的任意面板。 轻量级元件的缺点则是执行速度较慢,优点就是可以在所有平台上采用统一的行为。使用NetBeans开发Swing,只要将控件从控件栏拖出来,放到你想要放的地方,然后选中它,在属性栏中编辑它的相应事件,就能轻松完成。
19、NetBeans提供的丰富的控件能够让我省去了编写界面的时间,极大的节省了编码者的时间。NetBeans控件栏如图2.3.图2.3 NetBeans控件栏2.2开发运行环境本系统是在64位Window7下开发的,配置的编程环境应该与window操作系统相匹配。使用Java开发桌面应用程序相对简单,只要正确安装JDK、Netbeans、MySQL数据库即可。下面是图书管理系统的具体开发环境: 系统开发平台:NetBeans IDE 7.1.2 数据库:mysql-5.5.23 数据库管理工具:Navicat Premium 运行平台:Window XP及以上 Java开发包:jdk-7u4-wi
20、ndows 分辨率:800600以上 GUI开发包:Swing Java应用程序开发需要的环境如上面所说。下面介绍一下开发Java应用程序所用到的相关技术的介绍。2.2.1 JDK简介JDK(Java Development Kit)是Sun Microsystems专门针对Java程序员开发的免费软件开发工具包。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。此外,还可以使用Open JDK进行开发。JDK是学好Java的第一步,所以对程序开发人员,必须使用JDK进行开发调试。对于普通用
21、户仅需要安装JRE来运行Java程序即可。在Oracle官方网站上下载JDK安装文件,点击安装包安装即可。JDK安装完成后文件夹结构如图2.4。图2.4 JDK安装文件夹bin文件夹包含各种命令,例如javac命令可以将Java源文件编译成class文件;java命令可以运行class文件;jar命令可以将相关的类文件爱你进行打包;javadoc命令用于从源代码中提取说明文档。src压缩文件包含了Java SE API的源代码。正是因为有这么多的命令,许多程序的运行需要JDK,所以理所当然要配置Java的环境变量。右击“我的电脑”,点击“属性”“高级”“环境变量”“系统变量”中,设置3项属性,
22、JAVA_HOME,PATH,CLASSPATH,若已存在则点击“编辑”,不存在则点击“新建”。 JAVA_HOME指明JDK安装路径,D:SoftwareJavajdk1.7.0_04/jdk,此路径下包括lib,bin,jre等文件夹;Path使得系统可以在任何路径下识别java命令,设为:%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin ; CLASSPATH为java加载类(class or lib)路径,设为%JAVA_HOME%/lib/dt.jar; %JAVA_HOME%/lib/tools.jar。上面的%JAVA_HOME%就是引用前面指定的JAVA_
23、HOME。设置截图如图2.5。 图2.5 JDK环境变量配置2.2.2 MySQL数据库简介MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据 保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了
24、降低网站总体拥有成本而选择了MySQL作为网站数据库。图2.6 MySQL命令窗由于MySQL数据库安装完成后,要使用是用命令提示符窗口,相对不变。我们要安装一个前台的图形化界面程序,以便进行数据库操作。Navicat 是一套快速、可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它可以用来对本机或远程的 MySQL、SQL Server、SQLite、Oracle 及 PostgreSQL 数据库进行管理及开发。 Navicat 的功能足以符合专业开发人员的所有需求,但是对数据库服务器的新手来说又相当容易学习。有了极完备的图形用户介面 (GUI),Navicat 让
25、你可以简便地以安全且简单的方法创建、组织、访问和共享信息。 Navicat 适用于三种平台 - Microsoft Windows、Mac OS X 及 Linux。它可以让用户连接到任何本机或远程服务器、提供一些实用的数据库工具如数据模型、数据传输、数据同步、结构同步、导入、导出、备份、还原、报 表创建工具及计划以协助管理数据。图2.7 Navicat工作界面2.3相关技术支持2.3.1 JDBC操作数据库在本程序中,将数据信息保存到MySQL数据库中。因此需要使用JDBC技术来操作数据库。JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行S
26、QL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。本系统中将操作数据库的代码统一编写到DataAccess包中的Database类中。获取连接、操作数据库、释放连接的关键代码如下:public class Database protected static String dbClassName = com.mysql.jdbc.Driver;/数据库连接驱动类protected static
27、String dbUrl = jdbc:mysql:/localhost:3306/library;/数据库连接URL protected static String dbUser = meng;/数据库用户名protected static String dbPwd = aptx4869;/数据库密码private static Connection conn = null;/数据库连接对象public static Connection getConnection() /默认构造函数 try if (conn = null) /如果连接对象为空 Class.forName(dbClassN
28、ame);/加载驱动类 conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd); /获得连接对象 catch (Exception ee) /ee.printStackTrace(); JOptionPane.showMessageDialog(null, 未成功加载驱动!, 错误, JOptionPane.ERROR_MESSAGE); return conn; public void close() /关闭方法 try conn.close(); /关闭连接对象 catch (SQLException e) /e.printStac
29、kTrace(); JOptionPane.showMessageDialog(null, 未成功关闭连接!, 错误, JOptionPane.ERROR_MESSAGE); finally conn = null; /设置连接对象为null值 2.3.2 MySQL存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。本系统将进行数据操作的部分写成了数据库的存储过程,并在Java中的DataAccess包中的Database类中调用存储过
30、程。调用存储过程例子的代码如下:public int LoginCheck(String name) int flag = 0; try Connection conn0 = Database.getConnection(); / 设置调用的存储过程名及参数情况 CallableStatement proc = conn0.prepareCall(call logincheck(?,?); proc.setString(1, name); / 设置输入参数值1的值 proc.registerOutParameter(2, java.sql.Types.INTEGER); / 设置输出参数及返回
31、类型 proc.execute(); if (!proc.getMoreResults() flag = proc.getInt(2); proc.close(); catch (SQLException e) JOptionPane.showMessageDialog(null, 数据库操作不成功!, 警告, JOptionPane.WARNING_MESSAGE); return flag; 2.4 MVC模式MVC是三个单词的缩写,分别为: 模型(Model),视图(View) 和控制Controller)。Swing创造性的采用了MVC(Model View Controller) 模
32、式。MVC 把控件(Component)划分成三个部分:模型( Model):管理这个模块中所用到的数据和值,如某个数据的最大值、最小值、当前值等数据;视图( View):管理如何将模型显示给用户;控制器(Controller) 决定如何处理用户和该模块交互时产生的事件,如用户单击一个按钮等。本课题程序也采用了简单的分层,分为表现层、业务逻辑层、数据访问层。表现层就是与用户交互的各种界面,这个层把用户的数据传递给业务逻辑层,同时能接受从业务逻辑层传来的数据;数据访问层负责执行各种数据操作,这个层把业务逻辑层传来的数据经过相应的处理,并形成对数据库操作的方法,执行这个方法就能完成对数据库的操作,
33、这个层还能将从数据库返回的数据传递给业务逻辑层;业务逻辑层处于表现层和数据访问层之间,为两者传递数据。下面图2.8描述的就是MVC模式。图2.8 MVC模式图3系统总体设计图书管理系统是一个高度集成的图书信息处理系统,通过将图书管理的各种功能进行整合,从而达到高度检索信息、提高工作效率、降低管理成本等目的。一个典型的图书管理系统应该能够管理所有的图书种类、图书信息以及读者信息 ,还需要提供各种图书信息的检索查询功能。该系统还需要能够对图书借阅、归还进行操作,并对读者的罚款进行自动计算。通过该系统的自动化管理,能够大大减少图书馆管理人员,还能减少管理人员的工作任务,从而降低管理开销和成本。3.1
34、功能与模块分析图书管理系统是管理图书的一个重要工具,一个功能完善的图书管理系统需要提供5个功能模块,分别是图书管理模块、读者信息管理、新书订购模块、图书借阅模块,以及系统维护模块。其中各功能模块的具体说明如下:图书管理模块:该模块主要负责管理图书馆的图书各种信息和查询图书,如图书种类的名称、可借天数、罚款数目、图书编号、图书名称、作者、出版社等信息。包括图书查询、图书添加、图书类别添加、图书信息修改等模块。读者信息管理模块:该模块主要负责管理图书馆的读者信息,如读者编号、读者信息、证件号、最大借书量等信息。新书订购管理模块:该模块主要负责管理图书馆的新书订购邪的信息,包括新书订购和验收新书两个
35、子模块。图书借阅管理模块:该模块主要负责管理图书馆的书籍借阅于归还,包括图书借阅和图书归还两个子模块。系统维护模块:该模块主要负责管理图书馆的工作人员信息,包括用户密码修改和用户管理两个子模块。由各个模块可以都得到系统的模块结构图,模块结构图如图3.1。图3.1 模块结构图3.2 系统实现流程图经实际思考分析、基于图书馆发展需求,现在将图书管理系统按照功能划分为基础数据维护模块、新书订购管理模块、借阅管理模块、系统维护模块模块等功能模块。其中,基础数据维护模块用来维护读者信息,图书类别和图书信息,新书订购模块用于新书订购和验收新书,借阅管理模块用图书借阅、图书归还,系统维护模块用于更改口令和用
36、户管理。整个图书管理系统不但可以按照整体需求实现各种功能,同时也可以帮助图书馆管理人员安全、稳定、高效地实现管理体制。基础数据维护模块包括了系统维护的全部内容,方便管理。新书订购管理模块可与快速查看新书信息。借阅管理模块具有快捷查询、易于维护等特点。系统维护模块可以方便地添加管理员,并能对已经存在的人员信息进行修改。要使用系统首先需要对用户的身份进行识别,只有合法的用户才能进入系统;否则将不能进入系统。进入系统后,首先打开的是系统的主窗体,在系统的首页的菜单或者功能区可以选择各种导航连接来进行个中操作。图书管理系统结构图如图3.2。图3.2 图书管理系统结构图3.3 系统用例图图书管理系统是一
37、个内部人员使用的系统,也就是说不是所有人都能够使用他,只有在图书馆登记注册的用户才能使用。而在图书馆注册的用户也分两类:一类是普通用户,拥有图书的借阅、归还和更改密码的权限;另一类是管理员,除了普通用户的所有功能外,还能够对书籍列表、书籍信息、读者信息等进行管理。下面以管理员为用例,绘制其所对应的用例图如图3.3所示。图3.3管理员用例图相对与管理员普通用户所拥有的权限相对较少,只能借阅、归还图书和修改自己的密码。普通用户的用例图如图3.4。图3.4 普通用户用例图4数据库设计4.1数据库分析在开发图书管理系统是,考虑到图书量大,数据维护大的特点,决定采用MySQL作为数据库,用Navicat
38、 作为数据库管理软件。在MySQL新建一个数据库,将其命名为library。数据库中一共包含10张表,用来存储不同信息,数据库表的详细信息如图4.1所示。图4.1 数据库library中的所有数据表4.2数据库概念设计本系统一共设计规划6个实体类,分别是图书类别信息实体、图书信息实体、读者信息实体、用户信息实体、图书借阅信息实体以及图书订购信息实体。图书的类别有很多,例如有文学、人文、天文、数学、计算机等。因此可以建立一个图书类别信息表,专门用来保存图书的类别信息。同时因为每种类别的书籍阅读时间有所不同。所以需要在类别表中保存该类别可借天数信息。图书类别信息实体E-R图如图4.2. 图4.2
39、图书类别信息实体E-R图对于图书馆来说最重要的就是要管理其下的书籍,所以需要建立一个图书信息表,用来保存图书的所有信息。图书信息实体E-R图如图4.3。图4.3图书信息实体E-R图要想在图书馆借书首先需要进行登记并交押金,领取读书。所以需要建立一个读者信息表来保存图书馆的所有读者的登记信息。读者信息实体E-R图如图4.4。图4.4 读者信息实体E-R图图书馆里一般有一个以上的系统操作员,需要建立一个操作员信息表,用来保存操作员的身份信息。操作员信息实体E-R图如图4.5。图4.5操作员信息实体E-R图图书馆最大的功能就是能够借书,这时需要建立一个图书借阅信息表,用来保存读者的借书信息,例如读者
40、编号、书籍编号等。图书借阅信息实体E-R图如图4.6.图4.6 图书借阅信息实体E-R图图书馆除了借书,还需要到出版社或者其他代理商订购新书,这时需要建立一个图书订购信息表,用来保存所有的订购信息,如订购书籍编号、数量、书籍折扣等信息。图书订购信息实体E-R图如图4.7。图4.7 图书订购信息表4.3数据库逻辑结构设计数据库中各表中tb_borrowhis、tb_ordertemp分别用来保存图书借阅历史、临时图书订购单,他们的结构分别与tb_borrow、tb_order表的结构相同,就不再列举他们的信息。 根据设计好的各实体E-R图创建数据库的逻辑结构,数据库各表的结构如下。 图书类别信息
41、表tb_booktype用来存储所有的图书类别信息,包括图书类别编号、图书类别名称、可借天数以及迟还一天的罚款数额4个字段。该表的逻辑结构图如图4.8。图4.8图书类别信息表 图书信息表tb_bookinfo用来存储所有的图书信息,包括图书编号、类别编号、图书名称、作者、译者、出版社、出版日期、书籍数量以及书籍价格9个字段。该表的逻辑结构图如图4.9。图4.9图书信息表 读者信息表tb_reader用来存储所有的读者信息,包括读者姓名、性别、年龄、证件号码、会员证有效日期、最大借书量、电话号码、押金、证件类型、职业、读者编号以及办证日期12个字段。该表的逻辑结构如图4.10。图4.10读者信息
42、表 操作员信息表tb_operator用来保存操作员信息,包括操作员编号、用户名、性别、年龄、证件号码、工作时间、电话号码、是否为管理员、密码9个字段。该表的逻辑结构如图4.11。图4.11操作员信息表 操作员类别信息表tb_operatortype用来保存操作员类别信息,包括类别编号。类别名称、操作员权限3个字段。该表的逻辑结构如图4.12。图4.12操作员类别信息表 图书借阅信息表tb_borrow用来存储所有图书借阅信息,包括借阅编号、书籍编号、读者编号、操作员编号、是否归还、借阅日期、应还日期以及罚款8个字段。该表的逻辑结构如图4.13。图4.13图书借阅信息表 图书订购单表tb_or
43、der用来保存图书馆的所有订购信息,包括订单编号、订购日期、操作员、是否验收以及书籍折扣5个字段。该表的逻辑结构如图4.14。 图书订单详情表tb_bookinfotemp用来保存订单里图书的详情,包括图书编号、类别编号、图书名称、作者、译者、出版社、出版日期、书籍数量、书籍价格、订单编号、流水号(作为主键)11个字段。该表的逻辑结构如图4.15。图4.14 图书订购单表图4.15 图书订单详情表4.4 数据库E-R图数据库中表tb_borrow中的readerid字段是表tb_reader中的主键,operatorid字段是表tb_operator中的主键,bookISBN是tb_bookinfo表中的主键;表tb_operator中的admin是表tb_operatortype的主键;表tb_bookinfo中的typeid是表tb_booktype中的主键;表tb_bookinfotemp中的ISBN是表tb_bookinfo中的主键,tb_bookinfotemp中的orderid是表tb_order中的主键。 根据各表的之间的关系,绘制各表之间的关系E-R图,如图4.16。图4.16 各表之间的关系E-R图 5 系统详细设计在编写代码前,把代码的结构设计好是一个很好的习惯,这样可以方便的开发系