资源描述
编 号:
审定成绩:
*********大学
毕业设计(论文)
设计(论文)题目:
社会公共体育馆管理系统的设计与实现
学 院 名 称 :
软件工程学院
学 生 姓 名 :
专 业 :
软件工程
班 级 :
学 号 :
指 导 教 师 :
答辩组 负责人 :
填表时间:2016 年 6 月
***********大学教务处制
*******大学本科毕业设计(论文)
摘 要
人们生活水平的提高,工作的繁忙,促使社会生活节奏越来越快。由于科学技术水平迅速发展,人们长期生活在高节奏的社会中,意识到身心健康的重要性.为了让公共体育馆内各个事务进行有效地管理,更好地满足人们体育活动过程中的各方面需求,同时能够减轻各方面的开支和人力资源消耗,设计和实现了一个社会公共体育馆管理系统.
综合多个体育馆管理系统的具体管理功能,软件工程领域的技术知识,该系统决定采用面向对象的思想,严格遵循软件工程的过程、方法和规范完成系统设计与开发。使用UML用例对系统进行需求分析,概要设计中通过划分实体、按照数据库三范式进行数据库设计,最后运用类图、顺序图来完成该的系统详细设计。开发技术上运用JAVA语言、Bootstrap和Spring+SpringMVC+MyBatis开发框架让系统实现了以下功能:场地预订、场地开单、账单结算、场地管理、信息查询、会员管理和用户管理。
社会公共体育馆管理系统的设计与实现,方便系统人员对体育馆内大小事务进行操作和管理,让客户更快捷地进行场地预订和下单,从而提高了社会公共体育馆管理质量和员工工作效率。
【关键词】体育馆管理 JAVA Spring+SpringMVC+MyBatis Bootstrap
ABSTRACT
People living standard rise, the busy work, prompting social life rhythm faster and faster。 Due to the rapid development of science and technology level, people realize the importance of physical and mental health living in high pace society for a long time. In order to effectively manage. Each transaction of public sports stadium, to better meet the demand of people on various aspects in the process of sports activities, and at the same time it can reduce the spending and human resources consumption, a public stadium management system was designed and implemented.
Integrated multiple gymnasium management system specific management features, technical knowledge of software engineering, the system decided to use object-oriented thinking, strictly follow the process of software engineering methods and specifications to complete the system's designment and implementation。 Using UML case on the system to carry out the demand analysis, dividing the entity in the outline design, according to the database three paradigm of database design, finally using the class diagram, sequence diagram to complete the detailed design of the system. Technically the use of JAVA language, Bootstrap and Spring + SpringMVC + MyBatis framework allows system developers to achieve the following functions: booking site, site billing, invoicing, site management, information inquiry, members of management and user management.
The design and implementation of Social public stadium management system, the system personnel can operate the stadium and the size of the transaction management, allowing customers to carry out site reservation and orders more quickly, thereby improving the quality of management and public gymnasium employee productivity.
【Key words】 Stadium management JAVA Spring+SpringMVC+MyBatis Bootstrap
45
目 录
摘 要 I
ABSTRACT II
第一章 绪论 1
第一节 项目背景 1
一、系统发展趋势及现状 1
二、系统设计目的 1
三、系统设计意义 2
第二节 本章小结 2
第二章 系统开发环境及主要技术 3
第一节 系统主要技术 3
第二节 本章小结 5
第三章 系统分析 6
第一节 可行性分析 6
一、经济可行性 6
二、技术可行性 6
三、操作可行性 7
四、法律可行性 7
第二节 需求分析 7
一、系统概述 7
二、系统目标 7
三、功能需求 8
四、非功能需求 10
第三节 本章小结 11
第四章 概要设计 12
第一节 系统结构设计 12
一、系统整体结构 12
第二节 数据库设计 14
一、数据库设计思想 14
二、数据库概念模型设计 14
三、数据库表设计 17
第三节 本章小结 20
第五章 详细设计及实现 21
第一节 预约管理模块 21
一、预约管理类图 21
二、子模块图详细设计及实现 22
第二节 收银结账模块 25
一、收银结账类图 25
二、子模块图详细设计及实现 26
第三节 本章小结 30
第六章 测试 31
第一节 测试定义 31
第二节 测试目的及意义 31
第三节 功能测试 31
一、登录 32
二、预订管理 32
三、业务管理 33
四、会员管理 35
五、用户管理 36
第四节 本章小结 37
结 论 38
致 谢 39
参考文献 40
附 录 41
一、英文原文 42
二、英文翻译 53
第一章 绪论
第一节 项目背景
一、系统发展趋势及现状
据全国体育场地普查统计结果显示,体育产业的潜力首先来自于其拥有比较完备的体育设施.据统计分析得出,体育场馆市场开发的潜力和必要性。我国体育场馆或多或少都实行了对外开放有偿服务,但取得的效果不尽如人意。社会公共体育馆目前的管理模式虽然对于改善体育场馆的管理、提高服务质量、具有明显的作用,但也带来了一些新的问题.比如人员管理难度大、卫生环境受到外来干扰影响等。因此,总结现有的改革经验,探索更为完善的新模式,非常必要。目前社会公共体育馆利用率不高,运营效益不明显,其主要因素之一就是体育场馆运行模式存在问题,为进一步开发体育馆的使用价值,以下就是本人对社会公共体育馆运营过程中存在的问题进行分析的工作,具体如下:
1.体育馆中体育设施加速损耗,从而增加维护管理时间。
2。在体育馆管理体制的改进过程中,旧的管理模式已不能适应当前的需求,日的管理体制逐渐被打破。而新的管理体制尚不成熟,新旧管理体制并存的格局
仍将长期存在,会阻碍体育馆运营的顺利发展,在这种趋势下,开发一套针对社会公共体育馆的管理系统变成了体育行业的发展方向。
二、系统设计目的
随着科技的飞速发展,信息时代,各种信息技术被应用于行业领域中,发挥着重要的作用.体育馆适应时代发展的需求,将信息技术引入到体育馆管理中,其中构建管理网络成为了重点内容[1]。因此,建立一个完整的社会公共体育馆管理系统是非常有必要的。普通的公共体育馆管理系统已经不能适应社会的发展。为了提高公共体育馆管理系统的效率,促使我选择了公共体育馆管理系统作为我今年毕业设计的课题.
三、系统设计意义
随着各个体育馆管理理念的扩大、人们对身体健康的重视和健身人数的增加,公共体育馆管理系统是整个体育馆非常重要的组成部分,介于它的重要性,一个公共体育馆有一个完善的管理系统能够减轻管理员的工作量,减少人员开支,提高工作效率和准确率。提高会员及临时用户的锻炼积极性。当今生活节奏的加快,社会公共体育馆管理是一个非常繁琐的事务,首先用户需求量大、人群不同,并且每个年龄阶段有不同的锻炼需求。对于一个公共体育馆而言,对其中的会员、临时用户和体育馆里的工作人员进行有效地管理是非常重要的。因此,设计和实现出一套公共体育馆管理系统是极为必要的。
第二节 本章小结
在这一章中,主要介绍了系统的目的与设计意义.新型体育馆应实现多功能模式,即多项目文化、文娱商展和群众健身三个方面并重,形成竞技、健身、娱乐、社交、产业于一体的多功能体育馆[2],相信该系统对于新型体育馆而言尤为重要。
结合实际情况,对设计该系统的目标有了更明确的定位.
第二章 系统开发环境及主要技术
第一节 系统主要技术
该系统整体使用了JAVA语言来实现,采用B/S架构,实现了浏览器、服务器和数据库之间进行数据交互。前台使用JSP构建页面,SpringMVC来控制整个业务逻辑层,MyBatis作为数据持久层,与数据库数据进行交互.同时,整个项目在MyEclipse开发工具中进行开发,开发过程中运用MAVEN来管理开发过程中所需要的JAR包,这样大大减少了人工操作的步骤。
一、MyEclipse
MyEclipse是企业工作平台(MyEclipse Enterprise)的简称,是Eclipse IDE的延伸版,我们可以用它来进行数据库和Java Web项目的开发,MyEclipse在程序发布以及服务器的整合方面提高了工作效率。它属于一个集成开发环境,功能丰富(包含编码,调试,测试和发布所有功能),HTML,JSP ,JavaScript,CSS, Spring,Struts,Hibernate全面支持。
MyEclipse的功能非常强大,能够广泛地支持Java、J2EE的各种插件。 MyEclipse还能够支持EJB3,JDBC等数据库连接工具。因此,MyEclipse可以说是一个几乎包含了目前开源的、主流产品的开发工具。
MyEclipse具有7类(J2EE模型、WEB开发工具、EJB开发工具、应用程序服务器的连接器、J2EE项目部署服务、数据库服务、MyEclipse整合帮助)特征。
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们.MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任意一个模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错
二、JSP
JSP是html时代的扩展产物.它不仅融合了html语言的所有特征,还加入了Java面向对象的设计思想,使得在JSP页面中能够用<%%>来写入Java语言.网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易.
在JSP页面中可以使用JavaScript脚本语言,能够与Access数据库创立连接,并且能够在Apache、Netscape和Microsoft IIS等这些服务器中使用。因此,JSP功能强大,是大多数动态网页中所不可或缺的。目前,JSP具有如下优势:
①一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码无需做任何更改。
②系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展.相比ASP/PHP的局限性是显而易见的。
③强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
④多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
三、SpringMVC
SpringMVC就是在MVC设计模式中融入了Spring的注解功能.项目框架才用SpringMVC,不仅能够将模型、视图、控制器分离,还能用Spring对这三层进行管理。Spring从简单性、松耦合和可测试性的角度而言,所有的Java应用程序都可以从Spring框架中受益[3].由此可知,SpringMVC能够大大缩短项目的开发周期,提高开发效率.
Spring3.x中定义一个控制器类,必须以@Controller注解标记。当控制器类接收到一个请求时,它会在自己内部寻找一个合适的处理方法来处理请求.使用@RequestMapping注解将方法映射到一些请求上,以便让该方法处理那些请求。这种方法就像一般的类中的方法,方法名参数列表和返回值并不像Struts2之类的框架有很强的限制。
控制器在选择好适合处理请求的方法时,传入收到的请求(根据方法参数类型,可能以不同的类型传入),并且调用该方法中的逻辑来进行处理(也可以是调用Service来真正处理)。方法逻辑可能也会在参数中添加或者删除数据。处理方法处理完之后,会委派给一个视图,由该视图来处理方法的返回值.处理程序的返回值并不代表视图的具体实现,可以只是String类型,代表视图名,甚至是void(这时候Spring MVC可以根据方法名或者控制器名称找默认视图)。也不需要担心返回值只是视图名称的话,视图拿不到要显示的数据。因为方法参数对于视图来说也是可以拿到的。比如说,如果处理方法以Map为参数,那么这个Map对于视图也是可以拿到的。
四、MyBatis
MyBatis由iBatis演变而来,是一个开源项目,最后迁移到GitHub。跟hibernate一样,它是一个Java的持久层框架。在实际开发中,它根据XML的配置文件,将数据库的数据按照映射规则,映射到Java对象中,以便程序员进行快速地访问。它的应用程序主要的实现思路是:通过XML文件定义获得SqlSessionFactoryBuilder实例,以此获得SqlSessionFactory实例来实现功能。
MyBatis的功能架构分为三层:
①API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层接收到调用请求就会调用数据处理层来完成具体的数据处理.
②数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
③基础支撑层:负责基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供基础的支撑。
第二节 本章小结
在这一章中,主要介绍了开发该系统所需的环境和技术,在MyEclipse开发工具中搭建好环境和项目框架,是整个系统进行正常开发的前提,并且能够保证系统能够在浏览器中流畅地运行。
第三章 系统分析
第一节 可行性分析
一、经济可行性
1、成本方面
此次毕业设计是软件工程(本科)教学最后一个环节,因此在人力消耗是免费的。成本只需将系统开发者的生活消费以及开发期间的硬件消耗计算在内即可,所以该系统的开发成本是比较低的。
2、效益方面
本系统的使用人数可以控制几个人以内,能够大大降低人力资源的开销.因此,此系统能够给社会带来较好的经济效益。
本系统的开发在经济上,由以上两点看出是可行的.
二、技术可行性
1、功能方面
该系统一共分为预订管理、业务管理、会员管理、用户管理四个模块,其中还包括了四大权限:超级管理员、管理员、业务员和会员。
会员可以操作预订管理(包含增加预订、修改和删除个人预订)、会员管理中个人信息的修改。
业务员可以操作预订管理、业务管理、会员管理、用户管理中个人信息的查询和修改。
管理员可以操作预订管理、业务管理(包括场地管理)、会员管理、用户管理(包含业务员、客户信息的增删改查,自己信息查询和修改)。
超级管理员在管理员的基础上,还能够对管理员信息进行添加和删除。
2、技术要求方面
该系统在技术上要求使用JAVA语言进行整个B/S模式的开发,此种语言能够使用面向对象的方法,将该系统的各个模块的各个功能表现得非常具体。
结合以上两点来看,此系统在技术上是可行的。
三、操作可行性
此系统给用户提供的界面简洁美观,在操作上,用户能够非常方便地进行相关的操作.例如:业务员登录该系统后增加场地预订信息,并对所有预订信息进行浏览;管理员登录系统后可以对业务管信息的浏览和修改.
因此,操作本系统是比较简单的。
四、法律可行性
开发此系统所用的技术和开发工具不会触犯相关的法律,不对任何公司、集体和个人造成财产或信息的侵权。
因此,该系统在法律上是可行的。
第二节 需求分析
一、系统概述
公共体育馆管理系统是一个面向社会的体育馆管理系统,主要面向的目标人群是业务员和客户.不仅能让用户高效、快捷地对系统进行管理;还能满足客户随时进行预约、体育锻炼的需求。
该系统能够实现场地的预约、开单、结账以及用户管理的各种功能,操作简单、界面简洁大方,按照目前所实现的功能来看,此系统能够适用各大体育馆。
二、系统目标
公共体育馆管理系统能够达到以下目标:
① 界面美观、简洁、大方。
② 使用该系统的用户能够立即上手.
③ 要利于维护,在维护过程中所需的开销不大.
三、功能需求
采用UML用例图方法进行系统需求分析.该系统重在对公共体育馆进行管理,故分为以下几个模块来对功能需求进行描述.
该系统主要的角色分为:超级管理员、管理员、业务员、会员和临时客户,不同的角色具有不同的功能。公共体育馆管理系统需要完成的功能模块大致如下:
①预订管理:业务员针对会员的场地预订进行管理。
②业务管理:包括场地的开单、客户信息查询、账单查询以及场地的增删改查.
③会员管理:会员信息的增删改查.
④用户管理:管理员、业务员以及客户信息的增删改查。
下面将介绍系统的用户能够使用的各个功能:
1、超级管理员
超级管理员能够操作会员管理、用户管理(包含管理员、业务员、用户信息的增删改查,个人信息的修改)。
下图清楚地描述了超级管理员所操作的功能模块,如图3。2所示。
图3.2 超级管理员用例图
2、管理员
管理员可以操作预订管理、业务管理中的场地管理、会员管理、用户管理(包含业务员、用户信息的增删改查,个人信息修改和查询),如图3.3所示。
图3。3管理员用例图
3、业务员
业务员可以操作预订管理、业务管理、会员管理、业务员信息查询和修改、客户信息的增删改查,如图3。4所示。
图3.4 业务员用例图
4、会员
会员可以操作预订管理中预订信息的增删改查、会员管理中会员信息的增删改查,如图3.5所示。
图3.5 会员用例图
四、非功能需求
为确保本系统能够长期安全、稳定地运行,还需满足如下方面的需求:
1、易用性
易用性包括易理解性、易学习性和易操作性。这些特性与界面有着很大的关系,因此,操作界面友好、简单是实现易用性的关键.
2、可维护性
该系统属于不太成熟的系统,往往中后期会出现种种状况,从而对系统进行维护,在此过程中要求系统的维护性处于较强的水平。
3、可扩充性
随着用户需求不断增多,该系统需要针对不同的需求进行功能扩充,甚至会让整个系统功能改变。该系统的可扩充性较强,才能在短时间内使功能或性能得到提升.
4、适应性
要求该系统能够适应不同运行条件(如软件环境、硬件环境)、技术条件和系统条件的改变。
第三节 本章小结
在这一章中,主要介绍了开发该系统的可行性分析和需求分析。可行性分析和需求分析是系统能够进行开发的前提条件,虽然有的方面并未涉及到用户的需求,但是在开发过程中至关重要.而非功能需求会在此系统的运用过程中逐步体现出来,它时刻影响着系统的运行状况和应对变更的能力。
第四章 概要设计
上一章进行了系统的分析,这一章是对系统进行概要设计。概要设计就是对系统在需求分析阶段中所提出的一系列问题进行一个概要性地解答,它的主要目的是确定系统的框架是什么。
第一节 系统结构设计
一、系统整体结构
为确定社会公共体育馆管理系统的层次关系,按照系统各功能相对独立、安全的原则,将该系统的总体功能进行划分,让体育馆管理核心功能在每个子功能中得以体现。通过系统结构图来体现该系统的总体结构,如图4。1所示.
图4。1 社会公共体育馆管理系统总体结构图
1、预订管理
图4。2 预订管理结构图
2、业务管理
图4。3 业务管理结构图
3、会员管理
图4。4 会员管理结构图
4、用户管理
图4.5 用户管理结构图
第二节 数据库设计
一、数据库设计思想
一个合理的数据库设计能够让系统准确表达数据间的关系,提高查询效率。如果数据库设计不合理,会导致系统性能低下、丧失数据完整性、失去可扩展性等后果。从数据关系模型映射出来的数据库表是建立在用户应用域的基础上的数据库表。从实际上来说,同一个数据关系模型可以映射出不同的数据库表的多种组合[4]。
此系统对数据库的依赖性非常高,故在数据库设计方面要保证数据的准确和一致。下面将介绍本系统所涉及的各个实体和E—R图,并通过E—R图来设计数据库表。
二、数据库概念模型设计
数据库中存在六大实体,分别是:超级管理员、管理员、业务员、临时客户、会员和场地.
1、实体
(1)超级管理员
超级管理员:超级管理员id(自增)、用户名、密码、姓名,如图4。6所示。
图4。6 超级管理员实体
(2)管理员
管理员:管理员id(自增)、用户名、密码、姓名,如图4。7所示。
图4.7 管理员实体
(3)业务员
管理员:业务员id(自增)、用户名、密码、姓名,如图4。8所示。
图4.8 业务员实体
(4)会员
会员:会员id(自增)、姓名、性别、电话、生日、余额,如图4.9所示。
图4.9 会员实体
(5)场地
场地:场地id、场地名称、场地状态,如图4.10所示。
图4。10 场地实体
(6)临时客户
临时客户:临时客户id(自增)、姓名、性别、电话,如图4。11所示。
图4。11 临时客户实体
2、E—R图
E—R图也称实体关系图,主要用来描述实体间的关系,以及通过关系所产生的表属性。
除其他联系外,会员与场地、临时客户与场地之间产生了如下属性:
① 会员占用场地生成会员账单:
(会员账单编号、会员编号、场地编号、消费金额、进场时间、出场时间)
② 临时客户占用场地生成临时客户账单:
(临时客户账单编号、进场时间、出场时间、消费金额、场地编号、临时客户编号)
③ 会员预订场地产生订单:
(订单编号、预订时间、进场时间、出场时间、消费金额、场地编号、会员编号、订单状态)
系统E-R图如图4。12所示。
图4。12 系统E-R图
三、数据库表设计
为了使数据库的设计更加合理,在设计数据库的过程中,应该使用一些数据库的设计规范作为设计数据库时的约束来减少不合理设计所造成的影响[5]。
在数据库实际应用中,为了既能使数据冗余与数据更新异常现象有所减少,又能使数据查询性能不会显著下降,大多选用第三范式作为设计优化依据[6]。
本系统采用的数据库是MYSQL,通过上述E-R图来设计数据库表,E-R图转换为数据库表的过程如下:
①超级管理员、管理员和业务员——用户表
②会员—-会员表
③临时客户——临时客户表
④场地——场地表
⑤会员预订场地——场地预订表
⑥会员占用场地—-会员账单表
⑦临时客户占用场地——账单表
下面将列出这些表的表结构。
1、用户表(user)
如表4.1所示。
表4。1用户表
序号
列名
类型
长度
键
说明
1
user_id
整型
11
主键
用户id
2
name
字符型
255
姓名
4
power
整型
11
用户类型
5
username
字符型
255
用户名
6
password
字符型
255
密码
2、会员表(customer)
如表4.2所示.
表4。2 会员表
序号
列名
类型
长度
键
说明
1
customer_id
整型
11
主键
会员id(自增)
2
stored_value
字符型
255
余额
3
name
字符型
255
姓名
4
birthday
日期类型
生日
5
sex
整型
11
性别
6
tele_number
字符型
255
电话
3、临时客户表(temporary)
如表4。3所示。
表4。3 临时客户表
序号
列名
类型
长度
键
说明
1
temporary_id
整型
11
主键
临时客户id(自增)
2
name
字符型
255
姓名
3
sex
整型
11
性别
4
tele_number
字符型
255
电话
4、场地表(space)
如表4.4所示。
表4.4 场地表
序号
列名
类型
长度
键
说明
1
space_id
整型
11
主键
场地id
2
status
整型
11
场地状态
3
name
字符型
255
场地名称
5、会员预订表(book)
如表4。5所示.
表4。5 会员预订表
序号
列名
类型
长度
键
说明
1
book_id
整型
11
主键
预定id(自增)
2
booking_time
日期类型
预定时间
3
start_time
日期类型
进场时间
4
end_time
日期类型
出场时间
5
deposit
浮点型
押金
6
note
字符类型
255
备注
7
customer_id
整型
11
会员id
8
space_id
整型
11
场地id
9
order_object
整型
11
订单状态
6、会员账单表(bill)
如表4。6所示。
表4。6 会员账单表
序号
列名
类型
长度
键
说明
1
bill_id
整型
11
主键
账单id(自增)
2
real_cost
整型
11
消费金额
3
start_time
日期类型
进场时间
4
end_time
日期类型
出场时间
5
book_id
整型
11
预定id
7、临时客户账单表(temp_bill)
如表4.7所示。
表4.7 临时客户账单表
序号
列名
类型
长度
键
说明
1
temp_bill_id
整型
11
主键
临时客户账单id
2
real_cost
整型
11
消费金额
3
start_time
日期类型
进场时间
4
end_time
日期类型
出场时间
5
temporary_id
整型
11
临时客户id
第三节 本章小结
在这一章中用组织结构图来描述了社会公共体育馆管理系统的总体结构以及每个子功能模块的具体划分。数据库设计中,用E—R图将每个实体间的联系体现出来。只有做好了数据库设计的规范化工作,企业信息收集工作的智能化、高效化才能够得以彰显,企业信息收集工作与企业信息化建设才能够充分地满足企业的要求、市场的要求[7].
在此期间也存在不足之处,如在场地管理中不能只对场地进行管理,还需对场地内的设施进行管理,由于时间原因,此功能暂未实现。
第五章 详细设计及实现
这一阶段的目标是通过概要设计中得出的系统大致框架进行详细的内部设计.详细设计根据控制规格 说明、状态转换图和加工规格说明,将软件体系结构的 组成部分,转换成为软件组成部分的过程性描述[8]。下面将主要运用类图和顺序图对本系统实现的关键模块进行阐述。
类图主要用来描述系统中各种类以及类之间关系的静态结构.类是指一些具有相同属性和操作的对象的集合[9]。
顺序图用于描述对象间动态的交互关系具有良好的软件对象交互的表达性,它着重体现对象间消息传递的时间顺序[10]。顺序图采用两维坐标:垂直轴表 示时间,水平轴表示不同的对象[11].
第一节 预约管理模块
一、预约管理类图
图5.1 预约管理类图
图5。1是系统预约管理类图,预订管理类(BookController.java)与图中场地管理接口实现类(SpaceServiceImpl.java)、预订管理接口实现类(BookServiceImpl.java)存在关联关系,预订管理接口实现类(BookServiceImpl。java)和场地接口(SpaceMapper。java)存在继承关系。该类具有以下属性和方法:
属性
①UserService userService
用于调用用户管理类中的用户类型查询方法。
②CustomerService: customerService
用于调用会员管理类方法中的根据id查询会员方法
③SpaceService spaceService
用于调用场地管理类当中的根据id查询场地信息方法
④BookService bookService
用于调用预订管理类当中的根据id查询订单信息方法
函数
① addOrderRedirect():场地开单页面跳转
② addOrder():场地开单功能
③ selectAllOrders():查询所有订单
④ changeOrderRedirect():修改订单页面跳转
⑤ selectOrderById():根据id查询订单
⑥ changeOrderInfo():修改订单
⑦ selectSpaceByEqualId():根据id查询相同的场地
⑧ isConflictTime():判断相同场地时间是否冲突
二、子模块图详细设计及实现
预约管理类中包含有新增预订、修改预订(包含查询预订)和删除预订。下面将针对修改预订进行详细设计说明。
1、修改预订
①顺序图
业务员通过单击主界面的预订管理模块,再选择修改预订,后台会请求数据库查询所有订单信息,返回数据供界面展示。业务员选择其中一条数据进行修改,输入修改信息,后台输入订单修改数据,数据库进行更新,返回成功结果,界面展示修改成功。如图5.2所示。
图5.2修改预订顺序图
②关键代码
//取出其他所有的进场出场时间
for(Book oneOrder : allOrders){
long [] timePart = new long[2];
timePart[0] = oneOrder。getStartTime()。getTime();
timePart[1] = oneOrder.getEndTime().getTime();
allTime.add(timePart);
}
//进行比较该订单的出场和进场时间是否与其他的冲突;
if(isConflictTime(newTime,allTime)){
//若冲突:则返回false
return ”changeOrderFailure”;
}else{
//不冲突
Space newSpace= new Space();
newSpace.setId(book。getSpaceId());
spaceService.updateSpace(newSpace);
}
//更新该订单信息
bookService。updateOneBook(book);
}
//进行比较该订单的出场和进场时间是否与其他的冲突;
if(isConflictTime(newTime,allTime)){
//若冲突:则返回false
return "changeOrderFailure”;
}else{
// 不冲突:
Space newSpace = new Space();
newSpace.setId(book。getSpaceId());
spaceService。updateSpace(newSpace);
// 更新该订单信息
bookService.updateOneBook(book);
}
说明:代码汇总的isConflictTime()函数主要功能是为了验证新订单中的进场时间和出场时间与数据库中相同场地订单中的进场、出场时间是否冲突.若冲突,返回false;反之;返回true。
③界面
业务员可以选择列表中某一行来选中某个订单,修改预订的界面如图5。3所示。
图5.3 修改预订界面
第二节 收银结账模块
一、收银结账类图
图5.4 收银结账类图
收银结账类(BillController。java)与图中收银结账接口实现类(BillServiceImpl。java)存在关联关系,银结账接口实现类(BillServiceImpl.java)和账单接口(BillMapper。java)存在继承关系)以下属性和方法
属性
①
展开阅读全文