健身俱乐部管理系统分析开发与设计_第1页
健身俱乐部管理系统分析开发与设计_第2页
健身俱乐部管理系统分析开发与设计_第3页
健身俱乐部管理系统分析开发与设计_第4页
健身俱乐部管理系统分析开发与设计_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

软件工程课程设计《健身俱乐部管理系统》分析设计与实现学院:计算机工程学院班级:软件0805班学号: 姓名:日期:毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:日期:

学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名: 日期:年月日导师签名:日期:年月日

注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订

指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神□优□良□中□及格□不及格2、学生掌握专业知识、技能的扎实程度□优□良□中□及格□不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力□优□良□中□及格□不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性□优□良□中□及格□不及格5、完成毕业论文(设计)期间的出勤情况□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)指导教师:(签名)单位:(盖章)年月日

评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)评阅教师:(签名)单位:(盖章)年月日PAGE63教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况□优□良□中□及格□不及格2、对答辩问题的反应、理解、表达情况□优□良□中□及格□不及格3、学生答辩过程中的精神状态□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格评定成绩:□优□良□中□及格□不及格教研室主任(或答辩小组组长):(签名)年月日教学系意见:系主任:(签名)年月日

前言 随着生活水平不断提高,人们的健身意识也不断加强,健身俱乐部作为专业的健身服务行业,已经越来越受到人们的亲睐。随着自身的规模不断扩大,客户数量的增多,传统的管理模式已不能适应现代健身机构的发展趋势,出于更好地对客户进行管理和服务,提高员工工作效率,降低管理成本等多方面的考虑,有必要通过现代化科技手段,建立完善的客户自动化管理系统,通过自动化的客户管理方法,提升俱乐部档次,方便客户服务,扩大业务规模,为客户提供专业的健身服务,实施专业化、科学化的管理。本系统的开发是经过实际的需求分析,采用了JSP技术和SQLSever2000数据库管理系统作为工具进行开发。整个系统服务于管理员、俱乐部会员两种不同的用户。操作简便、界面美观、灵活实用,设计开发出会员管理、项目管理、场地管理、员工管理和健身活动管理等功能,基本满足了俱乐部实际的需要。关键词:健身俱乐部;数据库;SQLSever目录前言 1TOC\o"1-2"\h\z\u第一章健身俱乐部管理系统项目分析 21.系统业务背景 42.系统业务处理流程 53.系统业务流程图 5第二章健身俱乐部管理系统系统需求分析 61.需求分析任务 62.系统角色识别和成果 63.系统用例识别 64.系统用例图 75.系统用例说明书 7第三章健身俱乐部管理系统面向对象分析 111.OOA分析任务 112.系统OOA组成 113.系统OOA类识别 114.系统OOA类图 175.系统OOA用例时序图 226.系统OOA用例协作图 26第四章健身俱乐部管理系统面向对象设计 281.OOD设计任务 282.系统平台和技术选择 283.系统OOD类设计模式和分层策略 284.系统OODDTO(VO)层设计 295.系统OODDAO层设计 31HYPERLINK7.系统OODCO层设计 398.系统数据模型设计 41第五章健身俱乐部管理系统编程实现 461.系统命名规范 462.VO层编程实现 463.DAO层编程实现 474.BO编程实现 515.CO编程实现 54HYPERLINK7.系统组件图 56第六章健身俱乐部管理系统部署 571.系统硬件和软件平台 572.系统部署图 583.主要业务功能测试截图 58第七章健身俱乐部管理系统测试 601.系统测试的目标 602.任务测试的任务 603.系统测试的方法 604.系统测试用例设计 605.系统测试结果报告 61第八章健身俱乐部管理系统总结 621.系统的所有优点 622.系统不足和局限之处 623.系统未来的改进设想 62项目业务分析1.1系统业务背景 二十一世纪进入了信息发展的高速公路,信息化革命给所有的领域带来了新的改变[1]。随着电脑办公自动化的普及,企业自动化管理、客户自动化管理也应运而生,一切都归功于计算机科技发展的巨大贡献,互联网的世界里蕴藏着无限生机,随着社会的发展,科学技术的进步,我国经济的高速发展,居民收入的不断提高,即而人们生活水平也随之提高,人们的消费水平也日益增加[2],人们已经开始由温饱转向健康追求,闲暇时间的增多,也促使了人们开始考虑如何利用闲暇时间提高自己的生活质量,大众健身俱乐部应运而生,走进健身房健身花钱买健康也逐渐成也了一种生活的时尚。现今,现代健身爱好者队伍的不断增多与壮大,运动也就随之成为一种时尚,成为一种重要的休闲生活方式,健身俱乐部的发展将会越来越好,健身房、俱乐部等产业不断发展,例如,中体倍力、青鸟、一兆韦德,宝力豪,英派斯等等各大国内外知名品牌的健身俱乐部的出现,在很大程度上带动了人们对健身的热情,同时也大大提升了经济的发展。信息管理系统是一个对管理系统与信息结合形成的。健身俱乐部管理系统的出现,方便用户随时随地的对俱乐部情况进行查询及其他相关操作,同时,管理员也可以随时随地的了解俱乐部内部的运营状况,加上ASP.net3.5以及SQLServer数据库技术的完美结合及充分利用,大大简化了原来俱乐部管理的繁锁[3]。一个完备的健身俱乐部管理系统可以使管理者在系统中及时发现系统在当时的使用情况,及时制定计划并解决问题。俱乐部管理系统将大大减轻经营者的工作,提高企业的管理效率,展示在客户眼前一个优秀企业形象,同时在客户资料收集、统计方面等更加方便,更加及时有效的给经营者提供决策参考[4],成为健身爱好者最不可获缺的内容。于此同时,各地各大中小型健身俱乐部风靡全国,然而,俱乐部管理的好坏却成为了经营效率的关键因素,为了方便管理,无论是对外界用户的管理,还是内部工作人员或是俱乐部运作现状的管理,绝大多数的俱乐部纷纷将目光投向了软件开发公司并根据自身需求订制所需的系统管理软件用来管理俱乐部,但不同的健身俱乐部所使用的管理系统不尽相同,并不具备通用的功能,全国各地俱乐部如此之多,却没有一款专用软件用来管理俱乐部,根据这点,专门为这一行业开发了这个健身俱乐部管理系统,与其他管理系统不同的是,本系统是一款被所有的俱乐部所适用,具备一定的通用性,无论其前台的管理还是后台的动态都可以让经营者了解得清清楚楚,方便经营者实时管理,这样不仅可以使得管理得心应手,还能在一定程度上降低人事管理的成本。1.2系统业务处理流程 本系统的主要流程:首先用户登录到该健身俱乐部网站,非本站会员则要通过注册,成为本站会员,然后登录到网站,随后可以进行对该网站进行查询或预订项目及场地。当然,在查询的过程中,如果有获得自己的需求,也可以直接预订项目及场地,系统会形成一张预订的清单,接着付款,最后就可以了。反之,则可以退出或继续查询其他。1.3系统业务流程图 进入俱乐部管理网进入俱乐部管理网会员登录非会员注册选定项目和场地查询预定预定清单付款结束开始图1-1系统流程图系统需求分析2.1需求分析任务 该文档是关于用户对于健身俱乐部管理系统的功能和性能的要求,重点描述了健身俱乐部管理系统的功能需求,是概要设计阶段的重要输入。本文档的预期读者是:·设计人员;·开发人员;·项目管理人员;·测试人员;·用户。该文档是借助于当前系统的逻辑模型导出目标系统的逻辑模型的,解决整个项目系统的“做什么”的问题。在这里,没有涉及开发技术,而主要是通过建立模型的方式来描述用户的需求,为客户、用户、开发方等不同参与方提供一个交流的平台。2.2系统角色识别和成果业务角色角色说明普通用户注册成为会员会员管理个人信息,查询,预订及付款等功能系统管理员会员信息管理,处理预订,项目信息管理,场地信息管理 系统角色识别表2.3系统用例识别参与者UseCase普通用户注册会员登录系统查询个人信息查询项目信息查询场地信息预订付款系统管理员登录系统发布信息预订处理项目信息管理场地信息管理会员信息管理 系统用例识别表2.4系统用例图 图2-1系统用例图2.5系统用例说明书用例编号U-00-01用例名称登录系统角色会员作者郭晨进入流程输入系统的起始地址前置条件必须是本俱乐部的合法会员,并且有正确的用户名和密码。正常操作流程1.会员登录到该系统后,用例开始。2.会员输入正确的用户名。3.会员输入正确的密码。4.然后输入验证码,系统进行验证。5.系统通过验证以后,跳转到系统的首页,用例结束。分支操作流程异常操作流程11.该俱乐部无此会员用户名则提示重新输入。2.系统验证密码错误,提示用户密码错误,确认后重新输入。3.验证码输入错误,则要求用户重新输入。非功能性需求1..验证码要求4位数字。2.验证码图片要求干扰。用例编号U-01-01用例名称用户注册角色用户作者郭晨前置条件有意向加入到本俱乐部的用户。正常操作流程1.用户注册该系统,用例开始。2.输入用户名(必填)。3.输入密码(必填)。4.输入确认密码(必填)。5.输入性别(可为空)。6.输入真实姓名(必填)。7.输入生日。8.输入家庭地址(可为空)。9.输入用户电话(可为空)。10.输入手机号码(可为空)。11.输入QQ(可为空)。12.输入E-mail(可为空)。13.输入身份证号(必填)。14.完成以上输入,确认后提示注册成功,用例结束。异常操作流程用户名为空,提示请输入正确的用户名。2.密码为空,提示密码不可为空。3.确认密码,提示密码不可为空。4.真实姓名,提示请输入您的真实姓名。5.身份证号码长度不是15或18位或为空,提示身份证号码长度必须为15或18位。用例编号U-02-01用例名称健身项目信息增加角色系统管理员作者郭晨前置条件系统管理员必须登录到系统中正常操作流程系统管理员增加健身项目信息,用例开始。2.输入项目名(必填)3.输入项目编号(可以为空,编号由系统自动获取)4.输入项目开始日期(必填)5.输入项目结束日期(必填)6.输入参加人数(必填)7.输入项目金额(可以为空)8.输入打折信息(可为空)9.输入项目简介(可为空)10.上传项目图片(可为空)11.完成以上输入,确认后提示增加成功,用例结束。异常操作流程1.项目名为空,提示项目名不得为空2.项目开始日期为空,提示项目开始日期不得为空3.项目结束日期为空,提示项目结束日期不得为空。4.参加人数为空,提示参加人数不得为空。5.项目开始日期和项目结束日期不是日期类型,提示必须符合日期类型。用例编号U-02-02用例名称健身场地信息增加角色系统管理员作者郭晨前置条件系统管理员必须登录到系统中正常操作流程1.系统管理员增加健身场地信息,用例开始。2.输入场地名称(必填)3.输入场地编号(可以为空,编号由系统自动获取)4.输入俱乐部编号(必填)5.上传场地图片(可为空)6.输入场地简介(可为空)7.完成以上输入,确认后提示增加成功,用例结束。异常操作流程1.场地名称为空,提示场地名不得为空2.上传场地图片时,就符合图片大小为400*400,否则重新上传。用例编号U-03-01用例名称查询俱乐部会员信息角色系统管理员作者郭晨前置条件系统管理员必须登录到系统中正常操作流程1.系统管理员查询俱乐部会员信息,用例开始。2.系统管理员输入如下查询条件: 1)会员编号 2)会员姓名 3)以上两者之一3.系统按照查询条件显示该会员信息,用例结束。异常操作流程1.当该会员不存在时,信息为无。 系统至少5个用例的用例说明书。(注:打印文档只要5个用例即可,但电子文档要全部用例的用例说明书)。系统面向对象分析3.1OOA分析任务根据需求规格完成软件模块的划分并描述模块之间的关系。3.2系统OOA类组成 OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。在这种方法中定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。分类结构就是所谓的一般与特殊的关系。组装结构则反映了对象之间的整体与部分的关系。OOA在定义属性的同时,要识别实例连接。实例连接是一个实例与另一个实例的映射关系。OOA在定义服务的同时要识别消息连接。当一个对象需要向另一对象发送消息时,它们之间就存在消息连接。 OOA中的5个层次和5个活动继续贯穿在OOD(画向对象的设计)过程中。OOD模型由4个部分组成。它们分别是设计问题域部分、设计人机交互部分、设计任务管理部分和设计数据管理部分。3.3系统OOA类识别用例编号用例名称分析类类别ClassType分析类名称className属性Properties方法Methods101登录用例边界类border登录界面输入登录地址获取验证码控制类Control登录控制实体Entity会员账号密码真实姓名性别QQ号电话生日身份证验证201增加信息用例边界类增加信息界面进入增加信息界面输入场地信息输入健身项目信息提交显示错误信息控制增加信息控制取得健身项目列表取得场地列表验证提交数据合法性边界信息管理主界面进入主界面显示增加选择显示修改选择显示删除选择显示查询选择选择增加选择修改选择删除选择查询实体健身项目编号名称开始时间结束时间最大参与人数取得列表取得名称实体健身场地编号名称取得列表取得名称202修改信息用例边界修改信息界面进入增加信息界面输入场地信息输入健身项目信息提交显示错误信息控制修改信息控制取得健身项目列表取得场地列表验证提交数据合法性实体健身项目编号名称开始时间结束时间最大参与人数取得列表取得名称实体健身场地编号名称取得列表取得名称边界管理员工主界面进入主界面显示增加选择显示修改选择显示删除选择显示查询选择选择增加选择修改选择删除选择查询203删除信息用例边界删除信息界面进入删除信息界面输入场地信息输入健身项目信息提交显示错误信息控制删除信息控制取得健身项目列表取得场地列表验证提交数据合法性实体健身项目编号名称开始时间结束时间最大参与人数取得列表取得名称实体健身场地编号名称取得列表取得名称边界管理员工主界面进入主界面显示增加选择显示修改选择显示删除选择显示查询选择选择增加选择修改选择删除选择查询204查看信息用例边界查看信息界面进入增加信息界面输入场地信息输入健身项目信息提交显示错误信息控制查看信息控制取得健身项目列表取得场地列表验证提交数据合法性实体健身项目编号名称开始时间结束时间最大参与人数取得列表取得名称实体健身场地编号名称取得列表取得名称边界管理员工主界面进入主界面显示增加选择显示修改选择显示删除选择显示查询选择选择增加选择修改选择删除选择查询301用户注册用例边界类border注册界面点击注册控制类Control注册控制实体Entity用户账号密码真实姓名性别QQ号电话生日身份证验证401预订用例边界类border预订界面进入预订信息界面输入场地信息输入健身项目信息选择预订显示错误信息控制类Control预订控制实体健身项目编号名称开始时间结束时间最大参与人数取得列表取得名称501修改密码用例边界类border修改密码界面进入修改密码界面选择会员控制类Control修改密码控制实体Entity会员账号密码真实姓名性别QQ号电话生日身份证验证3.4系统OOA类图 图3-1会员登录用例类图图3-2信息管理主用例类图图3-3信息查询用例类图图3-4信息删除用例类图图3-5信息修改用例类图 图3-6信息增加用例类图图3-7修改密码用例类图图3-8用户注册用例类图图3-9预订用例类图3.5系统OOA用例时序图图3-10系统时序图图3-11会员登录用例时序图图3-12信息管理主用例时序图图3-13信息修改用例时序图图3-14预订用例时序图3.6系统OOA用例协作图图3-15系统协作图图3-16信息管理主用例协作图 图3-17预订用例协作图系统面向对象设计4.1OOD设计任务对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。4.2系统平台和技术选择(1)操作系统平台选择 Windows2003Server企业版 (2)数据库平台选择Oracle10g(3)应用服务器平台Tomcat6.0.20(4)开发语言选择JavaHTMLJavaScript(5)开发框架选择JavaEE(JSP,Servlet)(6)开发工具选择Eclipse3.5(7)版本管理工具选择SubVision64.3系统OOD类设计模式和分层策略 由于本系统采用了基于struct体系结构的设计,即MVC的三层设计模式,并采用面向对象的Java语言以及JSP的脚本语言实现。在整个开发过程中,尽可能采用复用的原则,例如采用标签库,统一数据库的基本操作,统一结果显示等。进一步细分可以划归为JAVAEE五层架构,及CO层,DTO层,BO层,DAO层,VIEW层,VIEW层负责页面的显示,视图层。DAO层负责系统与数据库的交互。BO层负责处理系统相关业务。CO层负责传输控制数据对象。DTO层则代表了与实体之间的意义对应。4.4系统OODDTO(VO)层设计(1)简述VO类的职责DTO是简单对象,它不应该包含需要测试的任何业务逻辑。但是,您确实需要测试每个DTO的数据聚合。每个DTO可能需要测试,也可能不需要,这取决于您的序列化机制。如果序列化是框架的一部分,则只需要测试一个DTO。如果不是这样,请使用一般的反射机制,这样就不需要测试每个DTO的序列化。(2)说明VO的设计原则VO类采取与实体一一对应的策略。取得VO类由VO直接NEW对象。而VO类的属性则由各属性所对应的GET方法获得。(3)VO类的设计规范:VO类的包名统一采用:com.city.club.模块名.value模块名即为所对应的子模块名:如:admin(信息管理子模块)reserve(预订子模块)包名全部小写。VO类的类名采用:实体名Value的形式实体名即为所对应的实体名:如:Ground(健身场地实体)类名首字母大写,相邻单词首字母大写。VO类属性名,方法名,首字母小写,相邻单词首字母大写(4)系统的所有的VO的设计表pckagecom.city.club.admin.value信息管理子系统值类 类名称类型属性方法//场地值类GroundValueJavaBeanprivateStringGroundID;//场地序号privateStringGroundName;//场地名称//每个属性一对set/get方法//健身项目值类ItemValueJavaBeanprivateintItemID//项目序号privateStringItemName;//项目名称名称privatedataDataStart//项目开始时间privatedataDataEnd//项目结束时间PrivateintPersannelNum//项目最大人数Set<ItemValue>employees=null;//每个属性一对set/get方法pckagecom.city.club.reserve.value预订子系统值类类名称类型属性方法//订单值类ListValueJavaBeanprivateintListID//订单序号privateintUserID//用户序号privateintItemID//项目序号privateintclubID//俱乐部序号privateStringGroundID;//场地序号PrivateintIsFlag//标志//每个属性一对set/get方法pckagecom.city.club.login.value会员登录子系统值类类名称类型属性方法//会员值类VipValueJavaBeanprivateintVipidprivateStringVipName;privateintPasswordprivateintGenderprivateintLevel//每个属性一对set/get方法pckagecom.city.club.register.value用户注册子系统值类类名称类型属性方法//会员值类UserValueJavaBeanprivateintUseridprivateStringUserName;privateintpassword//每个属性一对set/get方法 4.5系统OODDAO层设计(1)简述DAO类的职责DAO是DataAccessObject数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。J2EE模式中是这样介绍DAO模式的:为了建立一个健壮的J2EE应用,应该将所有对数据源的访问操作抽象封装在一个公共API中。用程序设计的语言来说,就是建立一个接口,接口中定义了此中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储(2)说明DAO的设计原则取得DAO类由DAO工厂负责统一生产。3)DAO类的设计规范:DAO类的包名统一采用:com.city.club.模块名.dao模块名即为所对应的子模块名:如:admin(信息管理子模块)包名全部小写。dao类的类名采用:实体名dao的形式实体名即为所对应的实体名:如:Ground(健身场地实体)类名首字母大写,相邻单词首字母大写。Dao,方法名,首字母小写,相邻单词首字母大写(4)系统的所有的DAO层接口,类和工厂的设计表格packagecom.city.club.admin.dao信息管理子系统DAO接口接口名称塑造型属性方法//场地DAO接口IGroundDaointerfacepublicvoidcreate(GroundValueev);publicvoidupdate(GroundValueev);publicvoiddelete(GroundValueev);publicgetGroundList<GroundValue>getList();//健身项目DAO接口IItemDaointerfacepublicvoidcreate(ItemValueev);publicvoidupdate(ItemValueev);publicvoiddelete(ItemValueev);publicgetItemList<ItemValue>getList();PublicItemValuegetItem(StringItemID)throwsException;packagecom.city.club.reserve.dao预订管理子系统DAO接口接口名称塑造型属性方法//订单DAO接口IListDaointerfacepackagecom.city.clublogin.dao登录子系统DAO接口接口名称塑造型属性方法//会员DAO接口IvipDaointerfacepackagecom.city.club.reserve.dao预订管理子系统DAO接口接口名称塑造型属性方法//用户DAO接口IUserDaointerfacepackagecom.city.club.admin.dao.impl信息管理子系统DAO实现类类名称塑造型属性方法//场地DAO实现类GroundDaoImplJavaBeanpublicvoidcreate(GroundValueev);publicvoidupdate(GroundValueev);publicvoiddelete(GroundValueev);publicgetGroundList<GroundValue>getList();//健身项目DAO实现类ItemDaoImplJavaBeanpublicvoidcreate(ItemValueev);publicvoidupdate(ItemValueev);publicvoiddelete(ItemValueev);publicgetItemList<ItemValue>getList();PublicItemValuegetItem(StringItemID)throwsException;packagecom.city.club.reserve.dao.impl预订管理子系统DAO实现类接口名称塑造型属性方法//订单DAO实现类IListDaoImplJavaBeanpackagecom.city.club.login.dao.impl登录子系统DAO实现类接口名称塑造型属性方法//会员DAO实现类IVipDaoImplJavaBeanpackagecom.city.club.register.dao.impl注册子系统DAO实现类接口名称塑造型属性方法//用户DAO实现类IUserDaoImplJavaBeanpackagecom.city.club.factory名称塑造型属性方法//信息管理子系统DAO工厂DaoAdminFactoryJavaBean//创建场地的Dao实现类对象publicstaticIGroundDaocreateGroundDao()//创建部门的Dao实现类对象publicstaticIItemDaocreateItemDao()//预订管理子系统Dao工厂DaoReserveFactoryJavaBean//创建订单的Dao实现类对象publicstaticIListDaocreateListDao()//会员登录子系统Dao工厂DaoLoginFactoryJavaBean//创建会员的Dao实现类对象publicstaticIVipDaocreateVipDao()//用户注册子系统Dao工厂DaoRegisterFactoryJavaBean//创建用户的Dao实现类对象publicstaticIUserDaocreateUserDao()4.6系统OODBO层设计(1)简述BO类的职责BO是对数据进行检索和处理的组件。是简单的真实世界的软件抽象。业务对象通常位于中间层。业务对象可以在一个应用中自动的加入一个特定的功能来获得增值效应。使知识重用变为可能。比如,如果你要开发一个包含多货币处理的应用,你可以选择使用一个已经开发完成的,包含所有多货币处理功能的业务对象来开始你的开发。使您的开发工作极大的减少。(2)说明BO的设计原则取得BO类由BO工厂负责统一生产。而BO类的属性则由各属性所对应的GET方法获得。 (3)BO类的设计规范:BO类的包名统一采用:com.city.club.模块名.business模块名即为所对应的子模块名:如:admin(信息管理子模块)包名全部小写。BO类的类名采用:实体名business的形式实体名即为所对应的实体名:如:Item(健身项目实体)类名首字母大写,相邻单词首字母大写。BO类的方法名,首字母小写,相邻单词首字母大写(4)系统的所有的BO层接口,类和工厂的设计表格packagecom.city.club.admin.business信息管理子系统业务接口接口名称塑造型属性方法IGroundBusinessinterface//验证是否合法publicbooleancheck(StringGroundID,StringGroundName)throwsException;//增加场地信息publicvoidadd(StringGroundID,StringGroundName)throwsException;//修改场地信息publicvoidmodify(StringGroundID,StringGroundName)throwsException;//删除场地信息publicvoiddelete(StringGroundID,StringGroundName)throwsException;//取得所有场地列表PublicgetGroundList<GroundValue>getAllList()throwsException;IItemBusinessinterface//验证是否合法publicbooleancheck(StringItemID,StringItemName,dataItemStart,dataItemEnd,IntPersonnelNum)throwsException;//增加健身项目信息publicvoidadd(StringItemID,StringItemName,dataItemStart,dataItemEnd,IntPersonnelNum)throwsException;//修改健身项目信息publicvoidmodify(StringItemID,StringItemName,dataItemStart,dataItemEnd,IntPersonnelNum)throwsException;//删除健身项目信息publicvoiddelete(StringItemID)throwsException;//取得所有健身项目信息列表publicgetItemList<ItemValue>getAllList()throwsException;//取得指定的健身项目信息PublicItemValuegetItem(StringItemID)throwsException;packagecom.city.club.reserve.business预订子系统业务接口接口名称塑造型属性方法//订单业务接口IListBusinessinterfacepackagecom.city.club.login.business登录子系统业务接口接口名称塑造型属性方法IVipinterface//验证是否合法publicbooleancheck(StringVipID)throwsException;//增加VIP信息publicvoidadd(StringVipID)throwsException;//修改VIP信息publicvoidmodify(StringVipID)throwsException;//删除VIP信息publicvoiddelete(StringVipID)throwsException;//取得所有VIP列表PublicgetVipList<VipValue>getAllList()throwsException;packagecom.city.club.register.business注册子系统业务接口接口名称塑造型属性方法IUserinterface//验证是否合法publicbooleancheck(StringUserID)throwsException;//增加用户信息publicvoidadd(StringUserID)throwsException;//修改用户信息publicvoidmodify(StringUserID)throwsException;//删除用户信息publicvoiddelete(StringUserID)throwsException;//取得所有用户列表PublicgetUserList<UserValue>getAllList()throwsException;packagecom.city.club.admin.business.impl维护子系统业务实现类类名称塑造型属性方法//场地业务实现类GroundBusinessImplJavaBean//健身项目业务实现类ItemBusinessImplJavaBeanpackagecom.city.club.reserve.business.impl预订子系统业务实现类类名称塑造型属性方法//订单业务实现类ListBusinessImplJavaBeanpackagecom.city.club.login.business.impl登录子系统业务实现类类名称塑造型属性方法//Vip业务实现类VipBusinessImplJavaBeanpackagecom.city.club.register.business.impl维护子系统业务实现类类名称塑造型属性方法//用户业务实现类UserBusinessImplJavaBeanpackagecom.city.club.factory名称塑造型属性方法//信息管理子系统业务工厂BusinessAdminFactoryJavaBean//创建场地的业务实现类对象publicstaticIGroundBusinesscreateGroundBusiness()//创建部门的业务实现类对象publicstaticIItemBusinesscreateItemBusiness()//预订管理子系统业务工厂BusinessReserveFactoryJavaBean//创建订单的业务实现类对象publicstaticIListBusinesscreateListBusiness()//会员登录子系统业务工厂BusinessLoginFactoryJavaBean//创建会员的业务实现类对象publicstaticIVipBusinesscreateVipBusiness()//用户注册子系统业务工厂BusinessRegisterFactoryJavaBean//创建用户的业务实现类对象publicstaticIUserBusinesscreateUserBusiness()4.7系统OODCO层设计(1)简述CO类的职责CO是对数据进行检索和处理的组件。是简单的真实世界的软件抽象。业务对象通常位于中间层。业务对象可以在一个应用中自动的加入一个特定的功能来获得增值效应。使知识重用变为可能。比如,如果你要开发一个包含多货币处理的应用,你可以选择使用一个已经开发完成的,包含所有多货币处理功能的业务对象来开始你的开发。使您的开发工作极大的减少。(2)说明CO的设计原则CO即是部署在服务器上的servlet(3)CO类的设计规范:CO类的包名统一采用:com.city.club.模块名.action模块名即为所对应的子模块名:如:Admin(信息管理子模块)包名全部小写。CO类的类名采用:实体名servlet的形式实体名即为所对应的实体名:如:Ground(健身场地实体)类名首字母大写,相邻单词首字母大写。CO类的方法名,首字母小写,相邻单词首字母大写(4)系统的所有的CO层类的设计表格。packagecom.city.club.admin.action信息管理子系统控制类类名称(ClassName)造型(StereoType)属性(Properties)方法(Methods)//登录处理ActionLoginActionServletpublicvoiddoGet()publicvoiddoPost()//场地主管理控制GroundeMainActionServlet//场地增加处理控制GroundAddActionServlet//场地修改处理控制GroundModifyActionServlet//场地删除处理控制GroundDeleteActionServletItemMainActionServletItemtAddActionServletItemtModifyActionServletItemtDeleteActionServletItemSelectActionServletpackagecom.city.club.reserve.action预订管理子系统控制类类名称(ClassName)造型(StereoType)属性(Properties)方法(Methods)//订单管理主控制ListMainActionServlet//订单增加主控制ListAddActionServlet//订单修改控制ListModifyActionServlet//订单删除控制ListDeleteActionServletpackagecom.city.club.login.action登录子系统控制类类名称(ClassName)造型(StereoType)属性(Properties)方法(Methods)//会员管理主控制VipMainActionServlet//会员增加主控制VipAddActionServlet//会员修改控制VipModifyActionServlet//会员删除控制VipDeleteActionServletpackagecom.city.club.register.action注册子系统控制类类名称(ClassName)造型(StereoType)属性(Properties)方法(Methods)//用户管理主控制UserMainActionServlet//用户增加主控制UserAddActionServlet//用户修改控制UserModifyActionServlet//用户删除控制UsereleteActionServlet4.8系统数据模型设计数据模型E-R图。图4-1数据模型E-R图数据表设计表1:管理员信息表Admin名称类型可否为空说明备注Pk_AdnubIDint否用户编号自动增长AdminNameVarchar(15)否用户帐号不可重复AdminPwdVarchar(15)否用户密码SystemInt否用户的权限0(超级管理员)1(健身项目管理员)2(健身场地管理员)3(会员信息管理员)默认0表2:用户信息表User名称类型可否为空说明备注Pk_userIDint否用户编号自动增长UserNameVarchar(15)否用户帐号不可重复UserPwdVarchar(15)否用户密码RealNameVarchar(15)否用户真实姓名SexInt否用户性别0(男)1(女)默认1QQVarchar(15)可用户的QQ号TelVarchar(15)可用户的电话Birthdaydatetime可用户生日MobileTelVarchar(15)可用户的手机EmailVarchar(50)可用户的e-mailIDcardVarchar(50)否用户的身份证AddressVarchar(50)可用户的住址LevelInt否等级表3:健身俱乐部健身项目信息表Item名称 类型可否为空说明备注Pk_ItemIDInt否编号自动增长ItemNameVarchar(50)否项目名称ItemDateStarDatetime否项目开始日期ItemDateEnddatetime否项目结束日期PersonnelNumInt否可参加人数表4:健身俱乐部场地信息表Ground名称类型可否为空说明备注Pk_GroundIDInt否编号自动增长GroundNamevarchar否场地名表5:用户订购信息表List名称类型可否为空说明备注IDint否编号自动增长Pk_userIDint可用户编号Pk_ItemIDInt可项目编号Pk_GroundIDInt可场地编号IsFlagInt否默认为0确定是否成功标识表创建的DDLSQL脚本代码--管理员表createtableAdmin(Pk_AdminIDintprimarykeyidentity,AdminNamevarchar(15)unique,AdminPwdvarchar(15)notnull,SystemInt);--用户表createtableUser(Pk_userIDintprimarykeyidentity,UserNamevarchar(15)unique,UserPwdvarchar(15)notnull,RealNamevarchar(15)notnull,SexIntdefault0check(Sexin(0,1)),QQvarchar(15),TELvarchar(15),Birthdaydatatime,MobileTelvarchar(20),Emailvarchar(20),IDcardvarchar(50)notnull,AddressVarchar(50),LevelInt);--健身项目信息表createtableItem(Pk_ItemIDintprimarykeyidentity,ItemNamevarchar(50)unique,ItemDateStartdatetimenotnull,ItemDateEnddatetimenotnull,PersonnelNumintnotnull,);--场地信息表createtableGround(Pk_GroundIDintprimarykeyidentity,GroundNamevarchar(50)notnull,);--用户订购信息表createtableGround(IDintprimarykeyidentity,Pk_userIDint,Pk_ItemIDint,Pk_GroundIDint,IsFlagintdefault0);系统编程实现5.1系统命名规范名称Java语言编码规范(JavaCodeConventions)译者晨光(Morning)简介本文档讲述了Java语言的编码规范,较之陈世忠先生《c++编码规范》的浩繁详尽,此文当属短小精悍了。而其中所列之各项条款,从编码风格,到注意事项,不单只Java,对于其他语言,也都很有借鉴意义。因为简短,所以易记,大家不妨将此作为handbook,常备案头,逐一对验。声明如需复制、传播,请附上本声明,谢谢。

原文出处:/docs/codeconv/html/CodeConvTOC.doc.html,

译文出处:/,moyingzz@5.2VO层编程实现packagecom.city.club.admin.value;importjava.io.Serializable;publicclassAdminValueimplementsSerializable{ privateintaid; privateStringaname; privateStringapassword; privateintaright; publicintgetAid(){ returnaid; } publicvoidsetAid(intaid){ this.aid=aid; } publicStringgetAname(){ returnaname; } publicvoidsetAname(Stringaname){ this.aname=aname; } publicStringgetApassword(){ returnapassword; } publicvoidsetApassword(Stringapassword){ this.apassword=apassword; } publicintgetAright(){ returnaright; } publicvoidsetAright(intaright){ this.aright=aright; }5.3DAO层编程实现DAO层接口:packagecom.city.club.admin.dao;importjava.util.List;publicinterfaceIAdminDao{publicAdminValuecheckLogin(AdminValueav);publicList<AdminValue>getAli();publicvoiddeleteAdmin(intaid);publicvoidaddAdmin(AdminValueav);publicAdminValueretrieveAdmin(intaid);publicvoidupdateAdmin(AdminValueav);}DAO实现类:packagecom.city.club.admin.dao.impl;importjava.sql.*;publicclassAdminDaoImplimplementsIAdminDao{ @Override publicAdminValuecheckLogin(AdminValueav){ Connectioncon=ConnectionFactory.getDbConnection(); PreparedStatementps=null; ResultSetrs=null; Stringsql="selectaid,aname,apassword,arightfromadminwhereaname=?andapassword=?"; try{ ps=con.prepareStatement(sql); ps.setString(1,av.getAname()); ps.setString(2,av.getApassword()); rs=ps.executeQuery(); if(rs.next()) {av.setAid(rs.getInt("aid")); av.setAright(rs.getInt("aright")); returnav; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ ConnectionFactory.freeRPC(rs,ps,con); } returnnull; } @Override publicList<AdminValue>getAli(){ List<AdminValue>ali=newArrayList<AdminValue>(); Connectioncon=ConnectionFactory.getDbConnection(); PreparedStatementps=null; ResultSetrs=null; Stringsql="selectaid,aname,apassword,arightfromadmin"; try{ ps=con.prepareStatement(sql); rs=ps.executeQuery(); while(rs.next()) { AdminValueav=newAdminValue(); av.setAid(rs.getInt("aid")); av.setAright(rs.getInt("aright")); av.setAname(rs.getString("aname")); av.setApassword(rs.getString("apassword")); ali.add(av); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ ConnectionFactory.freeRPC(rs,ps,con); } returnali; } @Override publicvoiddeleteAdmin(intaid){ Connectioncon=ConnectionFactory.getDbConnection(); PreparedStatementps=null; Stringsql="deletefromadminwhereaid=?"; try{ ps=con.prepareStatement(sql); ps.setInt(1,aid); ps.execute(); }catch(SQLExceptione){ e.printStackTrace(); }finally{ ConnectionFactory.freePC(ps,con); } } @Override publicvoidaddAdmin(AdminValueav){ Connectioncon=ConnectionFactory.getDbConnection(); PreparedStatementps=null; Stringsql="insertintoadmin(aname,apassword,aright)values(?,?,?)"; try{ ps=con.prepareStatement(sql); ps.setString(1,av.getAname()); ps.setString(2,av.getApassword()); ps.setInt(3,av.getAright()); ps.execute(); }catch(SQLExceptione){ e.printStackTrace(); }finally{ ConnectionFactory.freePC(ps,con); } } @Override publicAdminValueretrieveAdmin(intaid){ AdminValueav=newAdminValue(); Connectioncon=ConnectionFactory.getDbConnection(); ResultSetrs=null; PreparedStatementps=null; Stringsql="selectaid,aname,apassword,arightfromadminwhereaid=?"; try{ ps=con.prepareStatement(sql); ps.setInt(1,aid); rs=ps.executeQuery(); if(rs.next()) { av.setAid(rs.getInt("aid")); av.setAname(rs.getString("aname")); av.setApassword(rs.getString("apassword")); av.setAright(rs.getInt("aright")); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ ConnectionFactory.freeRPC(rs,ps,con); } returnav; } @Override publicvoidupdateAdmin(AdminValueav){ Connectioncon=ConnectionFactory.getDbConnection(); PreparedStatementps=null; Stringsql="updateadminsetaname=?,apassword=?,aright=?whereaid=?"; try{ ps=con.prepareStatement(sql); ps.setString(1,av.getAname()); ps.setString(2,av.getApassword()); ps.setInt(3,av.getAright()); ps.setInt(4,av.getAid()); ps.execute(); }catch(SQLExceptione){ e.printStackTrace(); }finally{ ConnectionFactory.freePC(ps,con); } }}工厂代码:packagecom.city.club.factory;importcom.city.club.admin.dao.IAdmin

温馨提示

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

评论

0/150

提交评论