毕业设计(论文)-基于Struts的个人出版物收藏管理系统的设计与实现.doc_第1页
毕业设计(论文)-基于Struts的个人出版物收藏管理系统的设计与实现.doc_第2页
毕业设计(论文)-基于Struts的个人出版物收藏管理系统的设计与实现.doc_第3页
毕业设计(论文)-基于Struts的个人出版物收藏管理系统的设计与实现.doc_第4页
毕业设计(论文)-基于Struts的个人出版物收藏管理系统的设计与实现.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JIANGXINORMALUNIVERSITY学 士 学 位 论 文THESIS OF BACHELOR(2005 2009年)基于Struts的个人出版物收藏管理系统的设计与实现Design and Implementation of Individual publications & collections management System Based on Struts 指 导 老 师 : 姓 名 : 学 号 : 0567110047 学 院 : 软 件 学 院专 业 : 软 件 工 程完 成 时 间 : 2009 年4 月 摘要摘要出版物的管理是一项复杂、繁琐的工作,面对各式各样的出版物,寻找一种方便、快速、提高效率的管理方式显得非常必要。一个完善的个人出版物收藏信息管理系统,可以极大地提高出版物收藏爱好者的管理效率,并为管理者的决策提供科学依据。出版物收藏系统的开发基于B/S模式,选用了Jsp+Struts+Jdbc技术,以Java为编程语言,数据库使用SQL Server 2000。该系统主要包括:图书管理、期刊管理、电子出版物管理、借阅者以及对应出版物类别管理等功能。在图书管理模块中,提供了借阅、归还的操作。在电子出版物的管理中系统提供了自动打开对应电子出版物的功能。本文首先对出版物收藏系统用到的Struts框架及Jsp,Jdbc技术作了介绍,然后使用UML建模语言对系统进行了分析和建模;接着详细描述了系统如何采用Jsp+Struts+Jdbc技术实现系统登录、数据导出、图书管理等模块;最后对整个系统的开发做了一个总结。关键词:出版物管理,Struts框架,Jdbc,Java ,数据导出IAbstractAbstractThe management of the publications is a very complex,fussy job. To find a convenient,faster and more efficiently mode is very necessary when a lot of information waited to be done. Compared to the method previously, the computerized management model show the advantage in efficiency、management、operate. A consummate Individual publications &collections management System, not only can take a great efficiency, also it can make the operate become easy and convenient than before ,also it can provide the science basis to manager.This systems development use the B/S model based on Struts architecture. Take the Jsp+Struts+Jdbc technique, use java as a program language. Database chose the SQL Server 2000.The system divided into :book management,periodical management,e-book management and so on.This article firstly provide information about Struts architecture,jsp and jdbc technique. Then use the UML language to design this system. Showing how to finish the development with the Jsp+Struts+Jdbc,finish the program and make it more efficiency. At last take a summary of the program.Key words: Publications manage, Struts architecture, Jdbc,Java, Data exportII目录目录第1章 绪论11.1 开发背景11.2 系统开发目标11.3 课题研究的目的、意义21.4 项目的确立21.5 本章小结2第2章 相关技术32.1 JSP 技术简介32.2 JDBC简介42.3 Struts简介52.3.1 MVC模式52.3.2 Struts标签库62.3.3 JSTL 标签库62.3.4 Struts 运行机制72.3.5 Struts在本系统中的实现72.4 Tomcat 简介82.5 Eclipse 简介82.6 Myeclipse 简介92.7 UML简介92.8 本章小结9第3章 系统需求分析与设计113.1 可行性分析113.2 系统目标113.3 系统的功能需求分析概述123.4 系统主要用例143.4.1 系统主要用例详细描述153.4.2 系统序列图163.5 数据库分析与设计183.5.1 数据库设计原则183.5.2 实体E-R模型193.5.3 数据库中主要表的设计24第4章 系统的具体实现284.1 系统常用功能的实现284.1.1 JDBC操作数据库284.1.2 数据导出功能304.1.3 中文请求参数值乱码问题314.2 系统部分功能设计的具体实现324.2.1 系统登录模块的实现324.2.2 图书管理模块的实现334.2.3 电子书管理模块的实现374.2.4 借阅者信息管理模块的实现394.2.5 管理员信息管理模块的实现41第5章 总结与展望435.1 系统总结435.2 个人总结435.3 工作总结与展望43参考文献45致谢46IV第1章 绪论第1章 绪论1.1 开发背景随着计算机的广泛应用,越来越多的管理工作采用了计算机化的管理方式。查询、修改、录入、删除等基本操作都采用了计算机的数据库技术。比起以前使用卡片的方法有了很大的进步,方便管理,易于更新,极大的方便了管理工作。以前个人出版物的管理水平停留在纸介质的基础上,那样的机制不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被以计算机为基础的信息管理所取代。出版物信息管理系统针对个人出版物爱好者,以方便使用者管理自己的出版物,因此本系统应该能够为用户提供人性化的操作方式,一切以方便用户和给用户提供即时信息为原则。1.2 系统开发目标为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来麻烦。所以系统需求分析的任务不是确定系统怎样完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。本系统以出版物数据库为中心,主要完成对系统数据的编辑,包括对数据的查询、数据的添加、数据的删除、数据的修改;出版物收藏品信息的显示,分类管理,状态管理;以及出版物的借阅管理,包括图书借阅,归还流程处理。系统的目的在于把传统的出版物收藏管理方式由复杂、重复性手工操作向人机简便操作的转化,要求运用计算机完成数据的添加、修改、查询以及删除等工作,提高了管理人员的工作效率,避免繁重业务量造成的人为错误。对于管理人员来说减少操作环节、降低重复是提高工作效率的有效途径。简化出版物个人收藏信息系统的操作,既节省人力、物力,又提高了工作效益。开发出版物个人收藏信息系统,实现出版物个人收藏信息管理的计算机化是非常必要的。1.3课题研究的目的、意义本课题的研究目的主要是利用J2EE平台开发出版物个人信息管理系统。通过本课题的研究开发,不仅可以学习一门新的开发语言Java,熟悉JSP,Struts、JDBC技术,同时提高对网站的分析设计能力和软件的编码能力,加深对软件工程思想的了解,知道如何去开发一个软件,也进一步了解Struts框架下的系统开发模式。在提高网络系统平台的开发与设计的能力和软件编码的能力的同时,进一步认识软件开发的步骤和方法;自身学习能力也有一定的提高;进一步巩固了大学期间所学的知识;学到了很多软件开发的经验和技巧。进行项目的开发,就要在整个系统开发过程中贯穿一种软件工程的思想,这样才能使开发的系统日趋完善。1.4 项目的确立针对出版物管理系统的特点,为了帮助出版物收藏爱好者管理其出版物,我们将开发本系统:项目名称:个人出版物收藏管理系统项目提出者:江西师范大学软件学院项目开发者:个人出版物收藏管理系统开发人员及其指导老师项目鉴定者:待定项目开始时间:2008-10-201.5 本章小结本章主要介绍了本课题研究的背景和现实意义,以及对现实存在问题的一些看法,然后介绍了本系统的开发目标,即要实现的功能。最后对课题信息进行简单介绍。45第2章 相关技术第2章 相关技术本系统涉及到以下技术:JSP技术,JDBC,Struts技术等,以及开发工具:Apache Tomcat、Eclipse、Myeclipse。本章简要介绍:JSP 技术、JDBC(Java Data Base Connectivity即java数据库连接)、Struts、Tomcat、Eclipse、Myeclipse、UML。2.1 JSP 技术简介JSP18(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。 JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。2.2 JDBC简介JDBC(Java Data Base Connectivity即java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序10。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。其连接体系结构图如图2.1所示:图2.1 JDBC连接体系结构图Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。JDBC 扩展了 Java 的功能。例如,用 Java 和 JDBC API 可以发布含有 applet 的网页,而该 applet 使用的信息可能来自远程数据库企业也可以用 JDBC 通过 Intranet 将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有 Windows、 Macintosh 和UNIX 等各种不同的操作系统)。随着越来越多的程序员开始使用Java 编程语言,对从 Java 中便捷地访问数据库的要求也在日益增加。 MIS 管理员们都喜欢 Java 和 JDBC 的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务, Java 和JDBC 可为外部客户提供获取信息更新的更好方法。2.3 Struts简介2.3.1 MVC模式MVC(Model-View-Controller,模型视图控制器模式)用于表示一种软件架构模式8。它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。MVC由Trygve Reenskaug提出,是Xerox PARC在20世纪80年代为程序语言Smalltalk-80发明的一种软件设计模式。模型视图控制器模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外此模式通过对复杂度的简化使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:控制器- 程序员编写程序应有的功能(实现算法等等) 视图 - 界面设计人员进行图形界面设计 模型 - 数据库专家进行数据管理和数据库设计MVC模式控制流程图如图2.2 所示。图2.2 MVC模式控制流程图2.3.2 Struts标签库Struts提供了非常多的标签,依据功能和使用习惯的不同被分到了五个标签库中17: Bean Tags:该标签库包含的标签可以用来创建bean、访问bean和访问bean的属性。同时提供了依据cookies、headers和parameters的值,创建相关bean的能力。 HTML Tags:该标签库包含的标签可以用来创建Struts输入表单。 Logic Tags:该标签库包含的标签可以用来进行逻辑判断、集合迭代和流程控制。 Nested Tags:该标签库建立在前三个标签库的基础上,具有前三个标签库的所有功能,只是允许标签间的嵌套。 Tiles Tags:该标签库包含的标签可以用来创建tiles样式的页面。2.3.3 JSTL 标签库JSTL(JSP StandardTagLibrary,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。但是在即将推出的JSP 2.0中是作为标准支持的。The JavaServer Pages Standard Tag Library (JSTL), is a component of the Java EE Web application development platform. It extends the JSP specification by adding a tag library of JSP tags for common tasks, such as XML data processing, conditional execution, loops and internationalization. JSTL was developed under the Java Community Process (JCP) as JSR 52. On May 8, 2006, JSTL 1.2 was released.JSTL常用的有: $value 2.3.4 Struts 运行机制Struts 是MVC模式的一种实现。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。Struts工作原理如图2.3 所示。图2.3 Struts工作原理图Struts的工作原理是先用JSP页面提交到Struts的处理标记 *.do ,*.action 或其他自定义的Struts 后缀,Struts框架根据其提交的标记名寻找struts-config.xml文件,找到名字相同的文件再跳转到相对应的Action文件中,在Action文件完成业务逻辑处理在跳转到JSP文件中来。2.3.5 Struts在本系统中的实现Struts作为本系统的一个开发骨架,其先进的分层思想使开发过程变得明晰,同时它所提供的Struts标签库也使系统的表示层开发变得简单8。Struts作为MVC设计模式的经典实现,在模型层本系统采用Javabean来充当这一重任,在视图层使用Struts的标签库来实现,而在控制器层则采用Struts的Action来实现,同时为了方便数据的收集,采用了Struts中的ActionForm来实现。系统的包结构如图2.4:图2.4 包结构图 模型层:模型层具体实现由com.yourcompany.struts.javabean下面的类来实现,负责具体的业务逻辑处理,并将处理结果返回给控制器层。 控制器层:控制器层主要负责接受用户请求,同时将请求转发给对应的Action来处理,在Action中调用模型层的Javabean来执行业务逻辑,具体由com.yourcompany.struts.action下面的类来实现,同时控制器负责调用相应的ActionForm(由com.yourcompany.struts.form实现)来收集客户端提交的数据。 视图层:视图层主要由Struts提供的标签库来实现,负责显示Action中返回的结果。2.4 Tomcat 简介Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。2.5 Eclipse 简介Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。2.6 Myeclipse 简介MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它可以进行数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。2.7 UML简介UML是Unified Modeling Language(统一建模语言)的缩写,是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。统一建模语言 (UML)是非专利的第三代建模和规约语言。 UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。UML可以贯穿软件开发周期中的每一个阶段。被OMG采纳作为业界的标准。UML最适于数据建模,业务建模,对象建模,组件建模。UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。2.8 本章小结本章主要介绍了系统的开发工具以及对相关开发技术进行概述,主要针对J2EE技术平台和相关Strust框架、JDBC等开发技术进行了分析。从目前来看,Web应用系统常用的开发技术主要分为两大阵营,一个是基于Java技术的J2EE标准,另一种就是微软的.NET平台。严格的讲,两种技术各有所长,本质上是相似的,只是具体实现的技术不同。一般来说,J2EE经过多年实践,技术成熟,性能优异。所以,本系统决定采用J2EE平台进行项目开发。第3章 系统需求与设计第3章 系统需求分析与设计3.1可行性分析可行性分析(Feasibility Analysis)也称为可行性研究,是指在允许的成本、性能要求下,分析每项需求实施的可行性,提出需求实现的相关风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。可行性分析包括操作可行性、技术可行性、经济可行性和进度可行性。下面是对出版物管理系统的可行性分析。(1)操作可行性:鉴于Web系统的特点,在开发过程中,以方便用户操作为目的,考虑到操作的实际情况,对一些常用的信息添加采用下拉列表的形式。这样就大大提高工作效率。而且该系统简单易操作,易维护,减少了不必要的麻烦。(2)技术可行性:从目前比较流行的数据库开发、管理软件来看;该系统的数据可能比较大,所以考虑使用SQL Server 2000作为后台数据存储管理,Struts和SQL Server2000的结合无疑是在实际应用中较为成功的一种解决方案。(3)进度可行性:鉴于本系统的目标要求和特点,能够保证在预期的时间内完成该系统的研究和设计。综上所述,此系统开发目标已明确,在技术等各方面都不存在什么问题,因此系统的开发是完全可行的。3.2 系统目标本系统以出版物信息为中心,主要完成对系统数据的编辑,包括对数据的查询、数据的添加、数据的删除、数据的修改;出版物收藏品信息的显示,分类管理,状态管理;以及出版物的借阅管理,包括图书借阅,归还流程处理。系统的目的在于把传统的出版物收藏管理方式由复杂、重复性手工操作向人机简便操作的转化,要求运用计算机完成数据的添加、修改、查询以及删除等工作,提高了管理人员的工作效率,避免繁重业务量造成的人为错误。对于管理人员来说减少操作环节、降低重复是提高工作效率的有效途径。通过使用出版物个人收藏信息系统,既节省人力、物力,又提高了工作效率。3.3系统的功能需求分析概述对于一个待开发的系统而言,首先不是盲目的进行系统的界面设置,而是知道你这个系统的作用以及目的是什么,也就是说要对这个软件做需求分析,为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。通过对系统进行详细的分析与研究并参考以往相似软件产品,最终得出了一个功能完全满足需求的个人出版物收藏管理系统系统应有以下主要模块:1、出版物管理模块:本系统出版物的定义包括:图书、期刊、电子书,所以出版物管理模块又可分为图书管理模块、期刊管理模块、电子书管理模块。图书管理模块: 图书的入库:添加图书的一些基本信息,将信息添加到数据库中。为了方便用户的操作,对图书类别信息和出版社信息以下拉列表的形式给出系统已拥有的信息,省去了用户每次重复输入相同信息的次数。 图书信息的修改:根据实际需求,对已入库的图书信息进行修改,并将修改后的信息保存到数据库中。 图书的删除:对已不存在的图书信息进行删除操作,在此过程中由系统检查图书是否可以被删除,例如当图书正在外借的过程中,系统将提示不能删除该图书。为了方便操作,系统提供了批量删除的操作。 图书的查询:可以根据多种条件对图书进行查询操作,例如图书的名称、作者、出版社等。 图书的状态管理:对图书的状态进行管理,图书的状态包括未读、在读和已读三种状态,可对图书的状态进行修改。 图书的类别管理:针对图书的类别进行统一管理,包括新的类别的录入、已有类别的修改,在删除已有类别时,由系统检查是否存在此类别的图书,如果有,将给出提示信息不能删除此类别。 图书出版社的管理:对图书出版社信息进行统一管理,在图书入库时给出系统中已有出版社信息列表。期刊管理模块: 期刊的入库:添加期刊的一些基本信息,将信息添加到数据库中。为了方便用户的操作,对期刊类别信息以下拉列表的形式给出系统已拥有的信息,省去了用户每次重复输入相同信息的次数。 期刊信息的修改:根据实际需求,对已入库的期刊信息进行修改,并将修改后的信息保存到数据库中。 期刊信息的删除:对已不存在的图书信息进行删除操作,为了方便操作,系统提供了批量删除的操作。 期刊的查询操作:可以根据多种条件对期刊进行查询操作,例如期刊的名称、出版社等。 期刊的类别管理:针对期刊的类别进行统一管理,包括新的类别的录入、已有类别的修改,在删除已有类别时,由系统检查是否存在此类别的期刊,如果有,将给出提示信息不能删除此类别。电子期刊管理模块: 电子期刊的添加:将电脑中已有电子期刊信息存入系统中,对其进行同意管理,包括电子期刊的名称、存储位置等。在添加过程中由系统判断所保存的电子期刊的格式是否支持,如果不支持则给出提示信息。 电子期刊信息的修改:修改已有电子期刊的信息,并将其保存至数据库中。 电子期刊的修改:对已不存在的电子期刊信息进行删除操作。 电子期刊的查看:当点击已保存的电子期刊时,由系统自动打开已保存的电子期刊。2.借阅者管理模块: 借阅者信息的添加:添加借阅者信息,并将其保存至数据库中。 借阅者信息的修改:根据实际需求,对已添加的借阅者信息进行修改,并将修改后的信息保存到数据库中。 借阅者信息的删除:删除已有借阅者信息,由系统判断其是否可以删除,如当借阅者正处于借阅过程中,则系统给出提示。 借阅者信息查询:可以根据多种条件对期刊进行查询操作,如借阅者的姓名、首拼等,显示出借阅者的基本信息和借阅记录、借阅历史记录。 查看借阅者的当前借阅记录:查看借阅者当前借阅了哪些书。 查看借阅者的借阅历史记录:查看此借阅者以前的借阅历史记录。 借阅者的状态管理:当借阅者的记过次数超过三次,则由系统将其设置为不可借的状态,如果想重新借阅,必须由管理员将其激活。 3.数据导出管理: 对系统中一些有用的数据提供导出数据到Excel中的功能,用户可选择要导出的数据项,并可对导出的文件进行命名。4.借阅管理当图书的可借数量大于零时而且图书的状态信息不为在读时,图书可提供借阅操作。当图书不可借时,由系统给出提示信息。 当添加借阅记录时,已下拉列表的方式给出已有借阅者信息,当添加借阅记录时,由系统判断该用户是否记过次数超过三次,如果超过系统给出提示信息,否则添加借阅记录。 查看借阅记录:查看当前正在外借的图书,并给出提示信息,图书借阅日期是否超过预期归还日期。5.归还管理添加归还信息,根据实际情况,是否记过一次。将信息添加进借阅历史记录中。6.评论管理对图书添加读书日志信息,并可对已有读书日志进行删除操作。3.4 系统主要用例Use Case(用例)是一个UML中非常重要的概念,在使用UML的整个软件开发过程中,Use Case处于一个中心地位。Use Case是系统提供的功能块,换句话来说Use Case演示了人们如何使用系统。通过Use Case观察系统,能够将系统实现与系统目标分开,有助于了解最重要的部分满足用户要求和期望,而不会沉浸于实现细节。通过Use Case用户可以看到系统提供的功能,先确定系统范围再深入开展项目工作。构造系统用例分析图,首先需要界定系统的参与者。因本系统针对个人用户,系统的参与者即系统的使用者。本系统属于信息管理系统,整个系统的大部分的操作都是信息编辑和信息查询。则我们可以找出了信息编辑和信息查询这两个用例。系统总体用例图如图3.1所示:图3.1系统总体用例图3.4.1系统主要用例详细描述1.添加图书用例用例名称添加图书参与者系统使用者用例描述系统使用者添加图书过程基本操作流程1:检查出版物的必要信息是否已给出2:当还没有此图书类别时,添加此图书类别,当还没有此图书的出版社信息时,进入出版社管理页面,添加出版社信息。3:判断是否上传了图片,如果没有则采用默认nophoto.jpg作为图片,如果上传了图片,判断图片的格式和大小是否正确,不对的话返回添加页面并给出提示信息,如果都吻合条件则将该条信息添加到数据库。2.借书用例用例名称借书用例参与者系统使用者、借阅者用例描述系统使用者对出版物的借阅进行一系列操作基本操作流程1:查询此书2:查看出版物的状态3:如果不处于在读状态,检查读者信息是否已有,如果没有,则添加;如果有,则检查借阅者的记过次数,当记过次数超过三次,系统给出提示信息,否则添加借阅记录,修改图书已借数量。3:归还用例用例名称还书用例参与者系统使用者、借阅者用例描述系统使用者对图书的归还进行一系列操作基本操作流程1:查询此书2:添加归还信息,根据实际情况是否记过,添加借阅历史记录,删除借阅记录,修改图书的已借数量。 3.4.2 系统序列图序列图是一个模型,用于描述对象组如何随着时间在某些行为方面进行协作。序列图捕获单一用例的行为,同时显示在特定用例的时间框架中的对象以及这些对象之间传递的消息,序列图并不显示对象之间的关系。系统主要包括借阅序列图,归还序列图,查询序列图,添加出版物序列图等。借阅序列图如图3.2所示:图3.2 借阅序列图借阅操作属于本系统的主要功能之一,主要设计的对象有系统的使用者(即管理员),出版物,借阅者,借阅记录等对象。如果不处于在读状态,检查借阅者信息是否已有,如果没有,则添加;如果有,则检查读者的记过次数,当记过次数超过三次或等于三次,系统给出提示信息,否则添加借阅记录,修改图书已借数量。归还序列图如图3.3所示:图3.3 归还序列图归还操作也属于本系统的主要模块之一,主要操作步骤大致如下:查询此书, 添加归还信息,根据实际情况是否记过,添加借阅历史记录,删除借阅记录,修改图书的已借数量。添加出版物序列图如图3.4所示:图3.4添加出版物序列图检查该出版物的必要信息是否已给出,判断是否上传了图片,如果没有则采用默认nophoto.jpg作为图片,如果上传了图片,验证图片的格式和大小是否是系统支持的样式,验证失败返回添加页面并给出提示信息,如果都吻合条件则将该条信息添加到数据库。3.5 数据库分析与设计3.5.1数据库设计原则数据库的设计应该以系统需求分析中对数据的需求描述为依据,遵循数据库设计的基本原则,为后期的系统开发实现提供支持2。 在进行系统数据库设计时一般应该遵循的基本原则主要如下:1、一致性系统数据库设计要符合数据一致性原则。数据的一致性是指表示同一个客观事物的数据,在同一时刻无论出现在何处都应该是一致的,正确的。在关系型数据库中,事务执行的结果必须是使数据库从一个一致性状态转变到另一个一致性状态。当事务完成时,必须使所有数据都具有一致的状态。由于数据库面向整个系统,可以被多个应用程序和多个用户共享数据。因此,数据库设计应该考虑各种破坏数据一致性的因素,并采取了一些相应的保护措施。2、规范化系统的数据库设计应遵循规范化原则。规范化一般分为几个级别:1NF,2NF, 3NF, 4NF,BCNF。规范化程度过低的关系,可能会存在插入、删除异常,修改复杂,数据冗余等问题,需要转换成高级范式。但是并非规范化程度越高越好,系统操作如果经常涉及执行多表之间的关联查询,将会降低系统性能,同时也增加了程序的编程难度,因此,规范化应该根据实际情况需要进行考虑。一般原则上要采用第三范式要求进行设计。3、完整性数据库的完整性是指数据的正确性。主要是需要防止合法用户使用数据库时向数据库加入不符合语义的数据,保护数据结构不受损害,防止错误数据输入和输出,对输入到数据库中的数据要有预定义的规则约束。4、可伸缩性数据库结构的设计应该在满足现有系统功能应用需求的基础上,充分考虑业务发展的需要、移植的需要,满足可伸缩性、可扩展性和移植性等要求。5、可维护和管理在进行数据库设计时,应该考虑易于对数据进行管理和维护,提高系统运行效率。3.5.2实体E-R模型E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型3。构成E-R图的基本要素是实体型、属性和联系,其表示方法为:实体型:用矩形表示,矩形框内写明实体名;属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型;通过对数据库的建模,得到相应的实体及实体间的关系图,包括借阅者实体(图3.5):用来记录借阅者信息,包括姓名、姓名首拼、性别、联系电话、编号、记过次数、备注。图书实体(图3.6):用来记录图书基本信息,包括名称、作者、位置、出版社、出版日期、购买日期等信息。期刊实体(图3.7):用来记录期刊基本信息,包括名称、出版周期、年度期号、总期号等信息。 借阅记录实体(图3.11):用来记录借阅记录信息,包括图书编号、借阅者编号、借阅日期、预计归还日期等信息。借阅者编号姓名联系电话姓名首拼性别记过次数备注图3.5 借阅者实体图图书编号名称作者类别编号出版社出版日期购买日期状态图片位置数量已借数量图3.6 图书实体图期刊编号名称出版周期类别编号编辑部出版日期购买日期总期号年度期号位置价格数量图3.7 期刊实体图电子书编号名称已读存储位置添加日期备注图3.8 电子书实体图借阅记录编号借阅者编号预计归还日期图书编号借阅日期备注图3.9 借阅记录实体图借阅历史记录编号借阅者姓名归还日期图书名称借阅日期备注图3.10 借阅历史记录实体图管理员管理期刊电子书图书借阅借阅者包含期刊类别包含出版社添加读书日志借阅记录对应对应借阅历史记录图3.14 系统总E-R图系统总E-R图描述了各个实体之间的对应关系,如图书实体与出版社实体的N:1关系、借阅者实体与借阅记录实体的1:N关系等。实体关系的确定为下一步合理的建表提供依据。3.5.3数据库中主要表的设计在本系统中的不同功能模块中,涉及到的数据多种多样,作用各不相同,同时又互相联系。系统的许多功能都要涉及到数据库中的不同的表,而数据库中的表的设计和表之间关系的设计,是数据库设计的重点。通过对功能的需求分析,我们可以按照用途将数据库中的表进行分类。将数据库表分类有利于对系统数据进行组织与存储,有利于理清表间的关系,更有利于数据库的管理维护,表汇总如表3.1所示。表3.1详细设计表汇总表名功能说明Publication图书表,用来记录图书的相应信息Category图书类别表,用来记录对应的图书类别Comment读书日志表,用来记录相应图书的读书日志信息Magazine期刊表,用来记录期刊的相应信息Magazine_category期刊类别表,用来记录期刊的类别信息Press出版社表,用来记录出版社的信息Ebook电子书表,用来记录电子书的相应信息Borrower借阅者表,用来记录借阅者的一些相关信息Borrow借阅表,用来记录当前正处于借阅状态图书的一些借阅信息History历史表,用来记录图书的借阅历史信息图书表用来记录图书信息,用图书编号(publication_id)来标识每一条记录,图书的类别信息保存与之关联的图书类别表(Category)的图书类别编号,使之形成主外键约束,详情如表3.2所示:表3.2 Publication(图书表)表名Publication列名数据类型(精度范围)空/非空说明publication_idUniqueidentifier(16)非空图书编号category_idInt(4)非空图书类别编号publication_namevarchar (50)非空图书名称photovarchar (50)非空图书的图片writervarchar (50)作者publishingvarchar (50)非空出版社publish_datevarchar (50)出版日期borrowed_numberInt(4)非空已借数量publish_numberInt(4)非空图书数量buy_datevarchar (50)购买日期locationvarchar (50)非空位置statevarchar (50)状态introductionvarchar (50)图书简介图书类别表记录了图书的类别信息,其中的图书类别编号(category_id)字段对应图书表的图书类别表(Category),形成主外

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论