jsp健身房会员管理系统ssh论文_第1页
jsp健身房会员管理系统ssh论文_第2页
jsp健身房会员管理系统ssh论文_第3页
jsp健身房会员管理系统ssh论文_第4页
jsp健身房会员管理系统ssh论文_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

人力资源管理的趋势与创新 南阳理工学院本科生毕业设计(论文)学院(系): 软件学院专业: 软件工程学生: xxxxxxx指导教师: xxxxxxxx完成日期2012年04月南阳理工学院本科生毕业设计(论文)健身房会员卡管理系统的设计与实现Thedesignandimplementationofagymmembershipcardmanagementsystem健身房会员卡管理系统的设计与实现软件工程xxx随着社会经济的日益繁荣,人们的经济收入日渐提高,人们的健身意识也不断加强,健身房作为专业的健身服务行业,已经越来越受到人们的亲睐。随着自身的规模不断扩大,客户数量的增多,传统的管理模式已不能适应现代健身机构的发展趋势,出于更好地对客户进行管理和服务,提高员工工作效率,降低管理成本等多方面的考虑,有必要通过现代化科技手段,建立完善的客户自动化管理系统,通过自动化的客户管理方法,提升健身房档次,方便客户服务,扩大业务规模,为客户提供专业的健身服务,实施专业化、科学化的管理。SSH框架;MySQL数据库;会员卡

ThedesignandimplementationofagymmembershipcardmanagementsystemAlongwiththesocialeconomygrowingprosperity,people'sincomeisincreasing,people'shealthconsciousnesshasbeenstrengthened,thegymasaprofessionalfitnessserviceindustry,hasbeenmoreandmorepopular.Withitsownscaleconstantlyexpanding,increasingthenumberofcustomers,thetraditionalmanagementmodelhasbeenunabletoadapttothedevelopmenttrendofmodernfitnessmechanism,forbettermanagementandservicesforcustomers,improveworkefficiency,reducemanagementcostsandotherconsiderations,itisnecessarytothemodernmeansofscienceandtechnology,theestablishmentofcustomerautomationmanagementsystemthecustomermanagementmethod,throughautomation,improvethegymclass,convenientcustomerservice,expandbusinessscale,toprovideprofessionalhealthserviceforcustomers,theimplementationofprofessional,scientificmanagement。SSHframework;MySQLdatabase;membershipcard目录1背景与意义 11.1课题的来源及背景 11.2课题研究的意义 11.3研究内容 11.4预期目标 21.5本章小结 22健身房会员卡管理系统分析 22.1系统可行性分析 22.1.1技术可行性 22.1.2经济可行性 32.1.3使用可行性 32.2业务流程分析 32.3数据流程分析 32.4使用技术简介 52.4.1SSH框架简介 52.4.2MySQL数据库简介 92.4.3JDBC简介 102.4.4MVC设计模式简介 112.5本章小结 123健身房会员卡管理系统设计 123.1模块设计 123.1.1个人收入管理模块 123.1.2个人支出管理模块 123.1.3物品信息管理模块 133.1.4用户管理模块 133.2设计原则及一般要求 133.3健身房会员卡管理系统关系数据库设计 133.3.1数据库分析 133.3.2数据库概念设计以及创建表结构 143.4本章小结 154健身房会员卡管理系统的编码与实现 154.1公共部分的实现 154.1.1连接数据库的实现 154.1.2系统过滤器的实现 154.2网站模块的实现 164.2.1网站的登录页面 164.2.2网站的主页设计 164.2.3个人收入管理设计 174.2.4个人支出管理设计 184.2.5物品信息管理模块 204.2.6用户管理模块 214.3本章小结 225系统测试与运行 225.1测试概述 225.1.1测试目的 225.1.2测试原则 225.1.3测试范围 245.2测试内容 245.2.1内容与功能测试 245.2.2容错性与易用性测试 245.3测试举例 255.3.1页面控件检测 255.3.2功能测试 255.3.3网页功能测试 265.4本章小结 266总结与展望 27结束语 28参考文献 29致谢 30PAGE26背景与意义课题的来源及背景二十一世纪进入信息发展高速路,信息化革命给所有服务领域带来新的发展。随着全民健身运动的兴起,越来越多的人走进了健身房,而传统的管理模式已不能适应现代健身机构的发展趋势,如何增强健身房会员卡的管理和完善客户服务,成了健身房发展的当务之急。健身房会员卡管理系统的研究与开发适合当前健身行业的业务处理需要,既满足了健身房管理人员管理会员供了一整套的操作流程服务,又方便了对客户的服务,为客户提供了个性化的展示平台,是一套真正使用的综合性管理系统课题研究的意义随着社会主义市场经济的确立、人民收入的不断提高、新的生活方式和全民健身计划的顺势推行,全民的健身热潮呈现出空前活跃的景象。特别近几年来,强身健体更是为广大国人所推崇,越来越多的人走进健身房,跳健身操、做瑜珈已经成为时下比较流行的一种健身娱乐项目,因此健身行业得到了迅速蓬勃的发展。随着自身规模的不断扩大,客户数量不断增多,传统的管理模式已不能适应现代健身机构的发展趋势。作为经营者,应该培养市场意识,将IT与健身行业相结合,建立自己的管理系统,在硬件上达到一定的高度的同时在软件上也要有自己的一套管理模式。出于更好地对俱乐部进行管理和服务,提高员工工作效率,降低管理成本等多方面考虑,有必要通过现代化科技手段,建立完善的会员自动化管理系统,以取代现有的手工操作,通过自动化管理方案,为客户提供专业的健身服务,实施专业化、科学化的管理。只有具备了高效地管理、个性化的服务,才会使这个行业有更长远地发展。由此可以看出,我们开发这样的系统,具有一定的时效性和实用价值,意义较为深远研究内容为了实现基于SSH框架和MySQL数据库的健身房会员卡管理系统,本文主要围绕会员卡管理的模块做了大量工作,同时也完善了会员信息的管理。首先分析了会员管理中的卡片管理,并且具体分析了其增加,修改,删除的方法;其次分析了会员的消费管理模块,最后分析了系统的安全性管理。同时也要考虑这个系统的使用便利性,另外还要研究这个系统的架构,怎样才能更有利于系统的形成和后期维护。预期目标(1)安全可靠无论用户什么时候使用该系统,都要求对用户的数据有足够的保密性。由于此系统都涉及用户的财产信息,所以要求对用户的信息有绝对的保密性,而且用户保密性也是对一个系统最基本的要求。(2)简单易用由于用户覆盖面的广大,所以该系统要求在使用方面简单易用,以确保所有的用户都可以轻松地使用该系统。(3)便捷省时在操作方面要求给用户最直观的操作体验,在最短的时间内完成用户所需要完成的操作,节省用户的时间。本章小结本章主要阐述了健身房会员卡管理系统的研究背景,研究意义,研究内容,预期目标。总体的概述了该系统在研发过程中所要做的工作以及对以后在使用过程中能够给大家带来的便利,并对所需要做的工作做了一个初步的分析。健身房会员卡管理系统分析系统可行性分析可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能解决。这一阶段只是分析和确定问题是否值得去解决,而不是去解决问题,该系统的开发主要从下面三个方面考虑解决的问题:技术可行性本系统采用JavaEE的三层结构,分为表现层、业务逻辑层和数据持久层。系统的开发利用Struts、Spring、Hibernate等目前比较流行的框架技术,并结合比较成熟的MySQL数据库。通过使用Strut2框架,提供了良好的MVC模式,所有的用户请求都交由Struts2的FilterDispatcher和Action进行拦截,然后通过Spring提供的自动装配功能,定位到Spring容器中的业务逻辑组件,调用相应的业务逻辑组件方法来处理用户的请求[3]。总体来说本系统所使用的技术在目前的条件下都已经相对成熟,具有较高的技术可行性,可以实现对软件的编写工作。经济可行性本系统所使用的软件都可以是用免费版本,编写出来的软件有利于用户对其自身的财产做出一个科学的管理与使用,其使用代价几乎可以忽略,所以本软件具有极高的经济可行性。使用可行性本软件采用的是最简单直接的用户对话模式,用户能直接明白所要采取的操作所带来的结果,对于用户来说是一款实用性很强的软件。业务流程分析首先,用户需要使用初始账号和密码,通过登录页面登录健身房会员卡管理系统。之后可以注册账号并登录,登陆后进入系统主窗体,可对个人账目信息进行输入、相关账目查看、用户管理,账目操作等操作,退出后系统关闭。用例图如图2-1所示:图STYLEREF1\s2–SEQ图\*ARABIC\s11系统用例图数据流程分析数据流程分析:数据流程图(DFD)是系统开发结构化分析方法的核心,它从数据传递与加工的角度,以图形的方式描绘数据从输入移动到输出所经历的变换过程。数据流程图由数据流、数据储存、数据处理和外部实体四要素组成。数据流程图为后期的功能模块设计提供了依据[4]。顶层DFD图如图2-2所示:图STYLEREF1\s2–SEQ图\*ARABIC\s12顶层DFD图系统一层DFD图如图2-3所示:图STYLEREF1\s2–SEQ图\*ARABIC\s13一层DFD图使用技术简介SSH框架简介Struts2.0框架Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架,是利用JavaServlet和JSP构建Web应用的一项非常有用的技术。MVC模式的提出虽然改变了程序员的设计思路,但代码的规范性还是差,而Struts框架所具有组件的模块化、灵活性、重用性的优点,同时也简化了基于MVC的Web应用程序的开发。从应用的角度来说,Struts有三大块,分别是Struts核心类、Struts配置文件及Struts标签库。一般情况下所说的Struts框架指的是Struts1框架,而非Struts2框架。本系统使用Struts2框架开发。Struts2是一个优秀的、可扩展的企业级JavaWeb应用程序开发框架。Struts2并不是Struts1的升级版本,它是WebWork及Struts1结合的产物。在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。Struts2核心机制如图2-5所示:图STYLEREF1\s2–SEQ图\*ARABIC\s15Struts2核心机制Spring核心机制及容器同Struts框架一样,Spring也是一个优秀的Web开发框架。它是一个分层的轻量级开源框架,由七个模块组成,分别是SpringCore模块、ApplicationContext模块、AOP模块、SpringDAO模块、SpringORM模块、SpringWeb模块及SpringMVC框架。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理Bean的方式。Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的InversionofControl容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/Rmapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架。Spring还提供了可以和IoC容器集成的强大而灵活的MVCWeb框架。它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现TranscationManagment,等等。Spring的核心是个轻量级的容器,它是实现IoC(InverseofControl)容器、非侵入性的框架,并提供AOP(AspectOrientedProgramming)概念的实现方式,提供对持久层、事务的支持,提供MVCWeb框架的实现,并对一些常用的企业服务API(ApplicationInterface)提供一致的模型封装,是一个全方位的应用程序框架具体如图2-6所示。图STYLEREF1\s2–SEQ图\*ARABIC\s16spring的七个模块组成Spring框架是架构在JavaEE平台之上的,从而能够确保企业应用的可移植性。与此同时,由于Spring不是简单地对JavaEEAPI和容器服务进行集成和封装,因此基于Spring架构和开发的企业应用更健壮、可维护性更好[7]。在本系统中应用Spring和其它的流行框架进行了整合。因为Spring可以贯穿程序的各个层之间,而且它并不是想取代那些已有的框架,而是以高度的开放性和它们紧密的整合。Hibernate技术概述Hibernate是目前Java开发中最为流行的数据库持久层框架,本系统的开发也使用它作为数据库持久层。Hibernate是一个开源的对象关系映射框架,它对JDBC进行了轻量级的封装。应用Hibernate框架,程序员可以不用再面对繁琐的面向过程的数据库操作,而是升级到面向对象的为题上来,这样不仅提高了开发效率,还可以避免应用JDBC编程时容易产生的错误。相对于使用JDBC和SQL来手工操作数据库,Hibernate可以大大减少操作数据库的工作量。Hibernate以优雅、灵活的方法操作数据库,无需开发者编写繁琐的SQL语句,执行冗长的多表查询,而通过对象与对象之间的关联操作数据库。Hibernate为底层的DAO对象的实现提供了支持。Hibernate持久化对象是基于简单的Java对象以及Java对象集合。它可以应用在任何使用JDBC(JavaDataBaseConnectivity)的场合,可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。Hibernate这个持久层框架,提供了一个具体的ORM(ObjectRelationalMapping)解决方案。Hibernate实现对象和数据库表,对象属性和数据库表列的映射,并实现它们之间的自动转换工作。Hibernate内部封装了JDBC操作,实现底层的对数据库的读写,对上层提供了对实体对象保存、更新、删除、检索的面向对象的API。使用Hibernate实现持久层,使得开发人员可以以面向对象的思想进行持久化工作。其工作流程如图2-7所示:图STYLEREF1\s2–SEQ图\*ARABIC\s17Hibernate工作流程SSH整合系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持[5]。具体如下:1.Struts负责web层。ActionFormBean接收网页中表单提交的数据,然后通过Action进行处理,再Forward到对应的网页。在struts-config.xml中定义<action-mapping>,ActionServlet会加载。2.Spring负责业务层管理,即Service(或Manager)。(1)service为action提供统计的调用接口,封装持久层的DAO。(2)可以写一些自己的业务方法。(3)统一的javabean管理方法。(4)声明式事务管理。(5)集成Hiberante。3.Hiberante负责持久化层,完成数据库的CURD(增删改查)操作。Spring:Aop管理事务控制,IOC管理各个组件的耦合,DaoTemplate作为常规持久层的快速开发模板。Struts:控制层Action,页面标签和Model数据,调用业务层。Hibernate:负责数据库和对象的映射操作,负责DAO层(即DataAccessObject,进行数据访问操作)。Spring整合Hibernate和Struts,只要在配好了applicationContext.xml,在Struts的action中直接调用就可以了。Hibernate访问数据库的操作都在Spring中实现了,Spring的调用又在Struts的action中实现了。系统的基本业务流程是:在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的SpringIoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。MySQL数据库简介MySQL最初的开发者的意图是用MySQL和他们自己的快速低级例程(ISAM)去连接表格。不管怎样,在经过一些测试后,开发者得出结论:MySQL并没有他们需要的那么快和灵活。这导致了一个使用几乎和MySQL一样的API接口的用于他们的数据库的新的SQL接口的产生,因此这个API被设计成允许为用于MySQL而写的第三方代码更容易移植到MySQL。

MySQL的概述:MySQL是一个关系型数据库管理系统。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库[6]。MySQL的特性:

(1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。

(2)支持Mac

OS、Windows等多种操作系统。

(3)为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、Python、Ruby和Tcl等。

(4)支持多线程,充分利用CPU资源。

(5)优化的SQL查询算法,有效地提高查询速度。

(6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB

2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。

(7)提供TCP/IP、JDBC和JDBC等多种数据库连接途径。

(8)提供用于管理、检查、优化数据库操作的管理工具。

(9)可以处理拥有上千万条记录的大型数据库。

MySQL的应用:与其他的大型数据库例如Oracle、DB2等相比,MySQL自有它的不足之处,如规模小、功能有限等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余。

MySQL管理:可以使用命令行工具管理MySQL数据库,也可以使用MySQL自带的企业管理器来进行管理,界面友好,操作简单。

MySQL存储引擎:

(1)master:MySQL的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务。

(2)InnoDB:事务型数据库的首选引擎,支持ACID事务,支持行级锁定。

(3)BDB:源自Berkeley

DB,事务型数据库的另一种选择,支持COMMI和ROLLBACK等其他事务特性。

(4)Memory:

所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在MySQL重新启动时丢失。

(5)Merge:

将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用。

(6)Archive:

非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差。

(7)Federated:将不同的MySQL服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用。

(8)Cluster/NDB:高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用。

(9)CSV:

逻辑上由逗号分割数据的存储引擎。

(10)BlackHole:

黑洞引擎,写入的任何数据都会消失。JDBC简介JDBC(Java

Data

Base

Connectivity,java数据库连接)是一种用于执行SQL语句的Java

API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成[7]。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯

Java

API

编写数据库应用程序,同时,JDBC也是个商标名。

有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。有了JDBC就不必为访问access数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言编写一次,处处运行的优势。

Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如JDBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。MVC设计模式简介MVC设计模式是许多交互式界面系统的构成基础,对于界面设计可变性的需求,MVC把交互系统分解成Model、View、Controller三种部件。模型部件是软件所处理的问题逻辑,封装了问题的核心数据、逻辑和功能的计算关系,它独立于具体的界面表达和I/O处理。视图部件把计算结果以特定的形式返回给客户端。它从模型获得待显示信息,对于相同的信息可以有多个不同显示形式或视图。控制部件负责用户与软件的交互操作。它接受用户的输入,将输入反馈给模型,实现对模型的计算控制,是使模型和视图协调工作的部件。(1)Model:JavaBean、EJB的EntityBean模型(Model):这个部分是对数据库的操作,就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。处理的数据是中立的,模型一般被控制器调用。(2)View:JSP、Struts的TagLib视图(View):视图是用户与之交互的界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求。视图不关心数据的处理及操作的处理等工作,这些处理操作都交由控制器来完成。(3)Controller:Struts的ActionServlet、Action控制器(Controller):主要用来接收用户的交互信息但是它本身不输出任何东西做任何处理,它只接受请求并决定调用哪个模型来处理请求,然后确定用哪个视图来显示模型处理返回的数据。MVC是Web应用系统中常用的一种设计模式,它利用控制器来分离模型和视图,达到一种层间松耦合的效果,从而降低了业务逻辑接口和数据接口之间的耦合性,提高了系统的灵活性、可维护性和复用性。MVC是Model-View-Controller(模型-视图-控制器)的缩写,最早是应用在SmallTalk语言中,为图形方式交互的软件提供一种架构。MVC架构将应用程序对象的模型与显示它的GUI元素相分离,在Java编程中应用很广[13]。本系统也采用MVC这种设计模式进行开发。MVC框架结构可以有效地分离数据表现和数据访问。MVC把应用程序分解成Model(模型)、View(视图)、Controller(控制器)三种部件,他们各自拥有自己的任务。MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。View层用于与用户的交互,通常用JSP来实现。系统使用MVC的优点主要有:(1)各司其职,互不干涉在MVC设计模式中,三个部分各司其职,所以如果那一部分的需求发生了变化,就只需要更改相应部分的代码就可以,而不会影响到其他层中的代码。(2)有利于开发中的分工在MVC模式中,用不同模块把系统分成不同部分,能更好地实现开发中的分工。美工和网页设计人员进行视图部分的开发,Java程序员进行模型和控制器部分的开发。(3)有利于组件的重用分层后更利于组件的重用。例如:控制器部分可以独立成一个能用的组件,视图也可以做成通用的界面本章小结本章主要对健身房会员卡管理系统做了简单的需求分析,业务流程分析和数据流程分析,最后对所用到的技术做了简单的介绍。系统需求分析和最终产品息息相关,对于软件开发以及软件产品至关重要,它反映了客户对于系统的直接要求,在以后的所有编写工作中都会以这项要求为工作的基础。业务流程分析和数据流程分析对软件的编写提供了充足的逻辑依据,根据所做的分析能使软件编写更加具有逻辑性和科学性,能使工作效率得到提高。最后所做的技术简介使我们对所使用到的技术有了一个更加全面的认知与理解,同时也为该系统的技术可行性做了更为深刻的补充。健身房会员卡管理系统设计模块设计健身房会员卡系统的主要功能就是实现会员卡信息管理,本系统功能的分析设计大致分为一下几个模块,详细的模块如下所示:会员卡管理模块在会员卡管理模块中,主要实现了对会员信息和会员卡的管理,其中包括新增会员卡,修改会员卡,删除会员卡。比如在新增会员卡中,可以填写会员姓名、性别、年龄、卡号、办卡时间以及具体备注等事项。会员消费管理模块在会员消费管理模块中,主要实现了对会员消费信息的管理,其中包括新增会员消费,修改会员消费,删除会员消费。会员卡到期提醒模块本模块中主要实现的功能是对即将到期的会员卡,提前一天进行提醒。会员生日提醒模块本模块中主要实现的功能是即将过生日的会员信息,提前一天进行提醒。设计原则及一般要求依据各个模块的功能与具体特点,我们设计的整个网站应达到以下目的:(1)易用性系统的易用性是非常重要的,因为这个健身房会员卡管理系统是面向所有消费者的,所以对该系统的使用方面要做的简单易用,系统的友好性是十分重要的。这不仅关系到健身房会员卡管理系统的使用量,还关系到系统到底能给用户带来多大的便利。(2)可维护性和稳定性系统要能够在出错时方便进行维修和查错,更重要的是系统要稳定,这样才能最大限度的不影响用户的使用,因为本系统的用户是所有大众消费者,这可能会造成很大的访问量。所以系统的稳定性、安全性一定要考虑。(3)可扩展性健身房会员卡管理系统要是一个可扩展的方便添加新的需求的平台,所以系统要是开放的,能够为以后的维护人员留有一定的扩展空间。健身房会员卡管理系统关系数据库设计数据库分析本系统采用的数据库是MySQL之所以采用这样的数据库,是因为MySQL数据库小巧简单,并且功能强大。另外MySQL数据库具备如下优点:它是免费的并且使用的核心线程是完全多线程,支持多处理器。它通过一个高度优化的类库实现SQL函数库并像他们能达到的一样快速,通常在查询初始化后不该有任何内存分配,没有内存漏洞,所有列都有缺省值。你可以用INSERT插入一个表列的子集,那些没用明确给定值的列设置为他们的缺省值。MySQL可以工作在不同的平台上。支持C、C++、Java、Perl、PHP、Python和TCLAPI[8]。通过对本系统的分析,以及对健身房会员卡网站的内容和数据流程的分析,设计如下面所示的数据项和数据结构,下面是列出的几个重要的表信息。1.会员卡信息表:会员姓名、年龄、生日、卡号、密码、办理时间、到期时间、会员地址、会员电话等。2.管理员信息表:用户编号、登录账号、登录密码等。3.消费信息表:会员ID、消费时间、消费金额、备注信息等。数据库概念设计以及创建表结构依据上面的数据项和数据结构,可以设计出能够满足用户需求的各种实体以及他们的关系,为后面的逻辑结构设计打下基础。这些实体包括各种具体信息,通过相互之间的作用形成数据的流动。根据上面的设计规划出的实体有:用户信息实体、角色信息实体、支出信息实体、物品信息实体等。根据实体信息创建如下表结构和存储过程。1.用户信息表(t_user),如表3-1所示:表STYLEREF1\s3–SEQ表\*ARABIC\s11用户信息表字段名称数据类型是否为空约束字符描述idIntNotnull主键会员编号xingmingvarchar(30)Notnull会员姓名xingbievarchar(30)Notnul会员性别shengrivarchar(30)Notnull会员生日kahaovarchar(30)Notnull会员卡号loginpwvarchar(100)Notnul登录密码banlishivarchar(30)Notnul办理时间daoqishivarchar(30)Notnul到期时间dizhivarchar(30)Notnul会员地址dianhuavarchar(30)Notnul联系方式youxiangvarchar(30)Notnul会员邮箱2.管理员信息表(t_admin),如表3-2所示:表STYLEREF1\s3–SEQ表\*ARABIC\s12角色信息表字段名称数据类型是否为空约束字符描述userIdIntNotnull主键编号userNamevarchar(30)Notnull账号userPwvarchar(100)Notnull密码3.消费信息表(t_xiaofei),如表3-3所示:表STYLEREF1\s3–SEQ表\*ARABIC\s13物品信息表字段名称数据类型是否为空约束字符描述idIntNotnull主键编号userIdvarchar(60)Notnull会员IDxiaofeishivarchar(100)Notnull消费时间jineFloatNotnull消费金额beizhuvarchar(100)备注信息本章小结在本章中,主要对健身房会员卡管理系统中的各个部分的功能模块和数据库设计做了阐述。模块设计主要讲述了本系统中所要实现的各个功能模块的设计,然后对这些模块的大致功能做了一个简要的概述。数据库设计部分主要考虑了该系统所使用数据库的选择以及数据库的概念设计,最后对数据库中所使用的各个表进行创建。健身房会员卡管理系统的编码与实现公共部分的实现连接数据库的实现<beanid="dataSource" class="mons.dbcp.BasicDataSource"> <propertyname="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"> </property> <propertyname="url" value="jdbc:sqlserver://localhost:1433;databaseName=db_card"> </property> <propertyname="username"value="sa"></property> <propertyname="password"value="sa123qwe"></property> </bean> <beanid="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <propertyname="dataSource"> <refbean="dataSource"/> </property> <propertyname="hibernateProperties"> <props> <propkey="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <propkey="hibernate.show_sql">true</prop> <propkey="hibernate.hbm2ddl.auto">update</prop> </props> </property> <propertyname="mappingResources"> <list> <value>com/model/TAdmin.hbm.xml</value> <value>com/model/TUser.hbm.xml</value> <value>com/model/TXiaofei.hbm.xml</value></list> </property> </bean>系统过滤器的实现为了处理系统中可能出现的乱码情况,本系统编写了一个专门处理乱码的类EncodingFilter,具体代码如下:publicvoiddoFilter(ServletRequestreq,ServletResponseresp, FilterChainchain)throwsIOException,ServletException{ req.setCharacterEncoding(this.charset); chain.doFilter(req,resp); } publicvoidinit(FilterConfigarg0)throwsServletException{ this.charset=arg0.getInitParameter("charset"); }此外本类还需要在web.xml文件中进行配置,否则不会生效。网站模块的实现网站的登录页面本网站的主页简单只提供了一个登录信息,但是他同时具备密码验证功能,只有通过验证的用户才能成登录。如图4-1所示:图STYLEREF1\s4–SEQ图\*ARABIC\s11用户登录界面登陆部分的代码如下: { //TODOAuto-generatedcatchblock e.printStackTrace(); } Stringresult="no"; if(userType==0)//系统管理员登陆 { Stringsql="fromTAdminwhereuserName=?anduserPw=?"; Object[]con={userName,userPw}; ListadminList=adminDAO.getHibernateTemplate().find(sql,con); if(adminList.size()==0) { result="no"; } else { WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); TAdminadmin=(TAdmin)adminList.get(0); session.setAttribute("userType",0); session.setAttribute("admin",admin); result="yes"; } } if(userType==1) { Stringsql="fromTUserwherekahao=?andloginpw=?anddel='no'"; Object[]con={userName.trim(),userPw.trim()}; ListuserList=userDAO.getHibernateTemplate().find(sql,con); if(userList.size()==0) { result="no"; } else { WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); TUseruser=(TUser)userList.get(0); session.setAttribute("userType",1); session.setAttribute("user",user); result="yes"; } } if(userType==2) { } returnresult; }系统的主页设计本网站的主页面左边有一个功能快捷导航。主要包含一下信息:会员信息管理、消费信息管理、会员信息查询、会员卡到期提醒、生日提醒管理。可以通过点击相应导航进行相关功能操作。在页面设计中考虑到用户操作的便捷性,在主页中并没有使用过多的操作按钮,只列出简单的主要功能操作按钮,其余的具体操作均出现在各个模块内,这样一来给用户一种容易上手使用的感觉,增加了操作的简洁性。在本页面上方有欢迎语和注销功能按钮,用户可以通过注销按钮安全退出本系统。。该页面的效果图如图4-2所示:图STYLEREF1\s4–SEQ图\*ARABIC\s12网站主页会员卡管理设计会员卡管理主要是对健身房的会员信息进行系统的管理,包括对会员卡的的添加,修改和删除管理。其主要代码如下所示:publicStringlogin(StringuserName,StringuserPw,intuserType) { System.out.println("userType"+userType); try { Thread.sleep(700); }catch(InterruptedExceptione)publicStringuserAdd() { TUseruser=newTUser(); user.setXingming(xingming); user.setXingbie(xingbie); user.setShengri(shengri); user.setKahao(kahao); user.setLoginpw(loginpw); user.setBanlishi(banlishi); user.setDaoqishi(daoqishi); user.setDizhi(dizhi); user.setDianhua(dianhua); user.setYouxiang(youxiang); user.setDel("no"); userDAO.save(user); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","信息添加成功"); return"msg"; } publicStringuserMana() { Stringsql="fromTUserwheredel='no'"; ListuserList=userDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("userList",userList); returnActionSupport.SUCCESS; } publicStringuserDel() { TUseruser=userDAO.findById(id); user.setDel("yes"); userDAO.attachDirty(user); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","信息删除成功"); return"msg"; } publicStringuserRes() { Stringsql="fromTUserwheredel='no'andxingminglike'%"+xingming.trim

()+"%'"+"andkahaolike'%"+kahao.trim()+"%'"; ListuserList=userDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("userList",userList); returnActionSupport.SUCCESS; }其操作界面如图4-3所示:图STYLEREF1\s4–SEQ图\*ARABIC\s13会员卡管理界面会员信息查询模块本模块主要实现对会员信息的查询操作,可以通过姓名和卡号进行多条件的查询,。其代码如下所示:publicStringuserRes() { Stringsql="fromTUserwheredel='no'andxingminglike'%"+xingming.trim

()+"%'"+"andkahaolike'%"+kahao.trim()+"%'"; ListuserList=userDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("userList",userList); returnActionSupport.SUCCESS; }其操作界面如图4-4所示:图STYLEREF1\s4–SEQ图\*ARABIC\s14支出管理界面卡片到期提醒模块本模块主要实现对即将到期的会员卡进行提醒,注意是在到期的前一天进行提醒,其代码如下所示:其操作界面如图4-5所示:图STYLEREF1\s4–SEQ图\*ARABIC\s15物品信息管理界面本章小结编码与实现是一个系统的主体部分,它关系到一个系统能否正常运行,能否交付用户使用。在本章中,主要对该系统的各个功能部分的实现代码进行了整理,让用户对该系统有更进一步的认识。系统测试与运行测试概述测试目的软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控制条件应包括正常条件与非正常条件。软件测试的过程中应该故意地去促使错误的发生,也就是使事情在不应该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是“探测”,在“探测”中发现软件的毛病。对健身房会员卡管理系统项目中所有软件测试活动中,根据前期生成的包括测试进度、资源、问题、风险以及其它组件的协调等进行评估,总结测试活动的成功经验以及不足,方便今后更好的进行测试活动,以便更好的对软件进行完善[9]。测试原则软件测试应该遵循一下几条原则:(1)所有的测试都应追溯到用户需求。这是因为软件的目的是使用户完成预定的任务,满足其需求,而软件测试揭示软件的缺陷和错误,一旦修正这些错误就能更好地满足用户需求。(2)应尽早地和不断地进行软件测试。由于软件的复杂性和抽象性,在软件生命周期各阶段都可能产生错误,所以不应把软件测试仅仅看做是软件开发的一个独立阶段,而应当把它贯穿到软件开发的各个阶段中去[10]。阶段就应开始进行测试工作,编写相应的测试计划及测试设计文档,同时坚持在开发各阶段进行技术评审和验证,这样才能尽早发现和预防错误,杜绝某些缺陷和错误,提高软件质量。测试工作进行得越早,越有利于提高软件质量,这是预防性测试的基本原则。(3)在有限的时间和资源条件下进行完全测试找出软件所有的错误和缺陷是不可能的,软件测试不能无限进行下去,应适时终止。因为,测试输出量大、输出结果多、路径组合太多,用有限的资源来达到完全测试是不现实的。(4)测试只能证明软件存在错误而不能证明软件没有错误,测试无法显示潜在的错误和缺陷,继续进一步测试可能还会找到其它错误和缺陷。(5)充分关注测试的集群现象。在测试的程序段中,若发现的错误数目多,则残存在其中的错误数目也比较多,因此应当花较多的时间和代价测试那些具有更多错误数目的程序模块[11]。这和程序员的编程水平和习惯有很大关系。(6)程序员应避免检查自己的程序。考虑到人们的心理因素,一方面自己揭露自己程序中的错误是件不愉快的事情,自己不愿意否认自己的工作;另一方面,由于思维定势,自己难以发现自己的错误。因此,测试一般由独立的测试部分或者第三方机构进行。(7)尽量避免测试的随意性。软件测试是有组织、有计划、有步骤的活动,制定严格的测试计划,要严格按照测试计划进行,要避免测试的随意性。并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试。(8)设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,如网络异常中断、电源断电等情况。(9)对测试错误结果一定要有一个确认的过程,一般由A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。(10)回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误出现的现象并不少见。(11)妥善保存一切测试过程的文档,意义是不言而喻的,测试的重现性往往要靠测试文档。(12)为了发现更多的错误让系统更加完善,设计测试用例时不但要选择合理的输入数据作为测试用例,而且要选择不合理的输入数据作为测试用例,使得系统能够应付各种状况。(13)测试过程不但要求软件开发人员参与,而且一般要求有专门的测试人员进行测试,并且还要求用户参与,特别是验收测试阶段,用户是主要的参与者。测试范围健身房会员卡管理系统因为其自身的特殊性,测试仅依据用户需求说明书和设计文档需求进行系统测试,包括性能测试,功能测试,用户界面测试等,主要功能包括:会员卡信息管理,消费信息管理,卡片到期提醒管理,会员生日提醒等。对于性能测试,主要有容错性与易用性测试,用户界面测试主要是对系统界面进行一系列的检测,以保证系统的页面能够正确无误地传达信息。测试内容内容与功能测试(1)检查整个页面的布局,检查是否完整。(2)检查有无被覆盖的文字或其他显示对象。(3)检查有无超出边界范围的控件。(4)通读页面上所有文字,检查有无错字、漏字、拼写错误。(5)在需要大量重复测试的页面,布局、显示方面只需要测一次。检查页面上是否有功能缺漏,典型的功能是:(1)登录功能;(2)修改/删除功能;(3)增加新事件功能;(4)提交/重置功能(5)注销功能对每个功能,要求测试以下方面:(1)检查输入域,包括有效输入和无效输入;(2)选择不同的设置;(3)检查功能是否正确实现;(4)检查输出是否正常;(5)检查所有功能/业务流程。容错性与易用性测试容错性测试和功能测试的一部分,可以检查系统对合法输入的处理能力,即检查在正常情况下功能是否能够实现,即为功能测试。检查系统对非法输入的处理能力,即检查在非正常情况下系统是

温馨提示

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

评论

0/150

提交评论