版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编号:本科毕业设计
顺达汽车租赁公司管理系统设计与实现院系:信息工程学院姓名:学号:专业:软件工程年级:2008级指导教师:职称:讲师完成日期:2012年5月PAGE42摘要随着计算机应用技术日趋成熟,信息管理系统得到迅速发展,同时作为“朝阳”产业的汽车租赁业已得到人们的普遍接受。所以,信息管理系统在汽车租赁业中的应用是必然的。顺达汽车租赁公司从事中小型汽车租赁行业,面对激烈的市场竞争,公司迫切需要改变以往的管理方式来提高管理效率,适应市场发展。本公司只有解决了管理效率低、管理混乱、资源浪费等问题,市场份额才会提高,经济效益才会增加,汽车租赁管理系统弥补了公司管理的不足,因此开发一套汽车租赁管理系统是公司发展需求。本系统是以Struts2、Spring和Hibernate框架为基础设计的汽车租赁管理系统。本系统分为前台和后台,前台系统实现会员的车辆预定功能,后台系统实现管理员管理、会员管理、车辆预定管理、车辆信息管理、车辆出租信息管理、车辆归还信息管理、车辆损坏信息管理、车辆维护信息管理等功能。本系统打破了以往汽车租赁管理系统只能够对汽车租赁信息管理的缺陷,通过本系统,用户可以查看全部车辆信息,同时完成车辆预定。关键字:信息管理系统;汽车租赁;车辆预定AbstractAscomputertechnologymatures,informationmanagementsystemshavedevelopedrapidly.However,thecarrentalindustryasthe“sunrise”industrieshasbeenthegeneralacceptanceofthepeople.Therefore,theinformationmanagementsysteminthecarrentalindustryisinevitable.Shundacarrentalcompaniesinsmallandmedium-sizedcarrentalindustry,thefaceoffiercemarketcompetition,theurgentneedtochangethepreviousmanagement.Thecompanyhasonlytosolvetheproblemoflowefficiencyofmanagement,managementconfusion,wasteofresources,themarketsharewillimproveandeconomicbenefitswillincrease.Carrentalmanagementsystemtomakeupforthelackofcorporategovernance,andthereforetodevelopasetofcarrentalmanagementsystemisthecompany’sdevelopmentneeds.ThispaperwilldesignandimplementaJSPbasedcarrentalmanagementsystem.ThissystemisbasedontheStruts2,SpringandHibernateframeworksasthebasisforthedesign,andfrontdesksystemstoachievetheintendedfunctionofmembersofthevehicle,back-officesystemsadministratormanagement,membershipmanagement,vehiclepre-management,vehicleinformationmanagement,vehiclerentalinformationmanagement,vehiclerestitutioninformationmanagement,vehicledamageinformationmanagement,vehiclemaintenanceinformationmanagementfunctions.Thissystembreaksdownthedefectmanagementsystemofthepast,carrentalcarrentalinformationmanagement.Usingthissystem,userscanviewallvehicleinformation,andcompletevehiclesscheduled.Keywords:Informationmanagement;Carrental;Vehiclescheduled目录1绪论 11.1课题研究的目的及意义 11.2发展状况 11.3课题研究的主要内容 11.4论文结构安排 22相关技术介绍 32.1MyEclipse简介 32.2Struts2简介 32.3Hibernate简介 32.4Spring简介 32.5SQLServer 42.6Tomcat服务器简介 42.7系统运行环境 53需求分析 63.1可行性分析 63.1.1技术可行性分析 63.1.2操作可行性分析 63.1.3经济可行性分析 63.2运行环境 63.3系统功能需求 73.2.1前台客户系统 73.2.2后台管理系统 73.3软件性能需求 84概要设计 94.1功能模块分析 94.1.1会员功能 94.1.2车辆预定 104.1.3管理员信息管理 104.1.4会员管理 104.1.5车辆基本信息管理 104.1.6车辆出租信息管理 114.1.7车辆归还信息管理 114.1.8车辆损坏信息管理 114.1.9车辆维护信息管理 114.1.10预定信息管理 114.2系统接口设计 114.3E-R图 114.4数据库逻辑结构设计 135详细设计 175.1前台客户系统功能模块设计 175.1.1会员模块 175.1.2车辆预定模块 185.2后台管理系统功能模块设计 185.2.1管理员信息管理模块 185.2.2车辆信息管理模块 195.2.3车辆出租信息管理模块 215.2.4车辆归还信息管理模块 215.2.5车辆损坏信息管理模块 225.2.6车辆维护信息管理模块 225.2.7车辆预定信息管理模块 225.2.8会员管理模块 236系统实现 246.1前台客户系统 246.1.1主页页面 246.1.2会员注册页面 256.2后台管理系统页面 256.2.1登录页面 256.2.2系统初始页面 266.2.3管理员模块页面 276.2.4车辆基本信息页面 286.2.5车辆出租信息页面 286.2.6车辆归还信息页面 296.2.7车辆损坏信息页面 306.2.8车辆维护信息页面 316.2.9注册用户信息页面 327系统测试 347.1测试的概念 347.2测试的步骤 347.3单元测试 347.4测试用例 357.4.1用户注册测试 357.4.2管理员登录测试 367.4.3管理员功能测试 367.4.4车辆信息管理功能测试 388总结 40参考文献 41致谢 42绪论1绪论1.1课题研究的目的及意义汽车已经成为人们必备的交通工具,不仅提高了工作效率,而且为人们的生活带来极大的方便,相对于昂贵的汽车价格而言汽车租赁的益处已被人们发现。随着信息技术的飞速发展,采用计算机对汽车租赁进行管理值得人们关注。汽车租赁系统就是对汽车租赁流程和车辆信息的管理,主要包括会员信息、管理员信息、车辆的基本信息、车辆预定信息、车辆出租信息管理等。汽车租赁流程不仅牵涉到车辆信息,而且牵涉到车辆状态等很多信息,这些复杂的关系使得车辆的各种信息难以管理,再加上激烈的市场竞争,顺达汽车租赁公司的管理模式已不能接受如此巨大的挑战。汽车租赁管理系统的出现给公司带来了新的机遇,使得顺达汽车租赁公司在激烈的竞争中得以生存。汽车租赁管理系统涵盖了车辆租赁流程的各个方面,能够协助公司管理人员更好的管理本公司的业务。使用本该系统,通过信息的自动化管理减少了工作人员的工作量,工作人员摆脱了繁重的工作量,同时用户能够充分参与到车辆租赁的流程中。通过本系统,汽车租赁服务能够快速、规范地完成,节省了人力、物力,提高了顺达汽车租赁公司的服务质量和经济效益。1.2发展状况人工管理方式已经不能适应当代人们的生活方式,汽车租赁管理系统能够人性化处理车辆出租流程中的相关问题。现阶段,随着汽车租赁业的蓬勃发展,而与之相对应的管理逐渐由人工方式转变为信息化管理方式,信息技术已在汽车租赁行业得到普遍应用,许多公司相继推出适合本公司发展的管理系统,汽车租赁系统发展较为成熟。汽车租赁不仅涉及到租赁公司,而且用户在整个交易过程中占有重要的地位。当前大多数管理系统只对租赁公司工作人员开放,普通用户不能够通过系统进行汽车租赁;车辆的调配、状态管理混乱,为系统的正常运行埋下了隐患。本系统为了解决用户权限问题,不仅为用户提供了注册、登录、查询等功能,而且用户可以通过所得到信息在线预订,以满足不同用户的需求;完美的汽车信息管理对是系统运行质量的有力保障,系统按照不同的信息对汽车进行分类,自动识别限行车辆,自动识别正在运营、等待运营、即将开始运营、即将结束运营的车辆状态,有效地解决车辆的调度和预订的准确性。1.3课题研究的主要内容通过对顺达汽车租赁公司业务流程的深入的了解,结合软件工程的方法步骤对系统的需求进行了详细的分析,编写了需求分析,对系统的每一个功能需求进行了记录,然后对系统的功能模块进行划分。在数据库设计时,绘制E-R图,对数据表分别进行了逻辑结构设计。在详细设计中,对系统的每一个模块进行了分析与设计,每一个模块的开发过程及开发中所有用到的类、JSP页面及相关的配置都做了详细的说明。接着按照详细设计的规划对系统进行编码、实现。最后,通过测试并完善本系统,最终设计并实现顺达汽车租赁管理系统。顺达汽车租赁管理系统分为前台客户系统和后台管理系统。前台客户系统主要有用户登录、车辆预定等功能。后台主要是对车辆信息处理,后台系统不仅能够对系统的管理员进行管理,前台会员进行管理,而且可以对车辆进行增、删、改、查等操作;车辆出租、归还、维护、预定等信息进行处理。1.4论文结构安排本论文主要分为绪论、可行性分析、需求分析、概要设计、详细设计、系统实现和测试。阐述如下:⑴绪论:介绍课题研究背景、目的、意义、发展现状等相关内容。⑵相关技术介绍:介绍系统实现过程中用到的所有技术和系统运行环境。⑶需求分析:详细介绍功能需求,并说明系统性能要求,对系统的可行性进行分析。⑷概要设计:划分系统功能模块、E-R图绘制和数据库结构进行设计。⑸详细设计:详细阐述系统每一个功能模块的实现过程和显示页面等内容。⑹系统实现:介绍系统实现的页面效果图和每一个页面所实现的功能。⑺测试:编写测试用例,执行测试,并对bug进行修复,直到完全达到测试用例的预期效果。相关技术介绍2相关技术介绍本章将详细介绍系统实现过程中会用到的主要技术:MyEclipse、Struts2、Hibernate、Spring、Tomcat服务器以及数据库SQLServer,并说明系统的运行环境。2.1MyEclipse简介MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate[1]。2.2Struts2简介Struts2是Struts的下一代产品。是在Struts和WebWork的技术基础上进行了合并的全新的Struts框架。其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。因为Struts2和Struts1有着太大的变化,但是相对于WebWork,Struts2只有很小的变化[2]。
2.3Hibernate简介Hibernate[3]是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。2.4Spring简介简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架[4]。Spring的主要特点如下:轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持[4]。2.5SQLServerSQLServer是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言(XML)的核心支持以及在Internet上和防火墙外进行查询的能力,提供了以Web标准为基础的扩展数据库编程功能。丰富的XML和Internet标准支持允许使用内置的存储过程以XML格式轻松存储和检索数据[5]。SQLServer提供强大的开发工具和各类开发特性,在大大提高开发效率的同时,进一步拓展应用空间,带来新的商业应用机遇。例如,XML数据库与WebService的支持将使您的应用实现Internet数据互联,.Net集成极大的扩展了开发空间,异构数据集成、ServiceBroker使您的数据和其它应用无缝集成,各种新数据类型和T-SQL扩展带来了诸多灵活性。C#、JSP、XQuery、XMLA、ADO.Net2.0、SMO、AMO等都将成为SQLServer数据平台上开发数据相关应用的有力工具。2.6Tomcat服务器简介Tomcat服务器是一个免费的开放源代码的Web应用服务器。Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。2.7系统运行环境开发环境选用WindowsXP系统,JSP作为开发语言,Tomcat作为测试服务器,SQLServer2005作为数据库服务器。正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据完好无损,对数据的精确度、时间特性、适应性等都有一定要求,要求系统运行时能够保证正确性、可靠性、高效性、完整性、易使用性、可维护性、可测试性、复用性、安全保密性、可移植性、互联性。概要设计3需求分析需求分析是软件定义的最后一个阶段,它的基本任务是准确地回答“系统必须要做什么”这个问题[12]。用户对软件的功能需求是需求分析最基本的一项要求。通过对顺达汽车租赁公司考察,得到该公司具体需求分析。3.1可行性分析可行性分析的目的是确定问题是否值得去解决,分析澄清问题定义,然后导出一种系统的逻辑模型。对这种逻辑模型的解法,至少从技术、操作、经济方面进行可行性的分析。具体如下。3.1.1技术可行性分析开发系统主要使用了css[6]、html[7]、JavaScript[8]等前台页面技术,为了系统以后功能的扩展和维护,后台使用编程语言Java作为主要实现手段。JSP作为一种Web实现技术,它的效率是很高的。网站前台页面主要包括,会员注册、汽车信息显示、用户预定模块,后台主要是管理员对用户管理、汽车信息管理、汽车租赁管理等内容。数据库使用SQLServer2005。所使用技术都相当成熟,保证能完成预期的效果。3.1.2操作可行性分析信息管理系统目前已经非常成熟,在软件应用开发领域中,主要B/S[9]和C/S[10]的开发模式,从安全性和易维护性考虑,选择了Web实现技术。简单的说就是将系统做成一种B/S模式,可以让用户通过浏览器直接访问位于服务器上的汽车信息以及管理员对系统的远程维护。3.1.3经济可行性分析系统设计和实现过程中所用到的开发环境、开发工具都是开源的,用到的数据库以及服务器都是免费,具体的实现工作有个人完成,因而在开发开放中不涉及人员成本问题。在系统设计中不涉及知识产权的费用,最大程度的减小了开发成本,所以从经济的角度来看,该系统可行。3.2运行环境本系统采用联网多机多用户操作方式,系统的运行环境包括硬件、操作系统、关系数据库等软件。CPU:奔4以上的处理器;硬盘:250G以上硬盘;内存:2G以上显示器:19寸显示器操作系统:WindowsXP,Win7数据库:SQLServer2005应用服务器:Tomcat3.3系统功能需求通过对顺达汽车租赁公司的实际需求的研究,该系统角色主要有用户和管理员,所以系统需要划分为两大模块,分别为前台客户系统模块和后台管理系统模块。3.2.1前台客户系统前台客户系统应实现以下功能:(1)普通用户通过注册成为系统会员,登录后能够查看和修改会员信息。(2)会员登录后能够查看车辆信息并进行车辆预定。没有登录的用户没有预定车辆的权限,系统将给出相应提示。3.2.2后台管理系统后台管理系统应实现以下功能:(1)管理员登录后新增管理员并对其他管理员信息进行修改、删除操作。(2)管理员新增、查找、修改、删除车辆信息,新增的车辆状态设为空闲。(3)管理员新增、查找、修改、删除车辆租赁信息。系统对租赁人信息进行验证通过后添加出租车辆信息,否则不予办理。新增出租车辆状态该为出租,该车辆不能够被预定。系统根据出租日期、归还日期、系统当前时间计算出车辆出租剩余时间。(4)管理员新增、查找、删除车辆维护信息,新增信息后对应的车辆状态该为维护,不能够被预定和出租。(5)管理员新增、查找、删除车辆损坏信息,新增信息后对应车辆状态该为损坏,不能够被预定和出租。(6)管理员新增、查找、删除车辆归还信息,车辆归还时,系统根据出租日期、归还日期计算租金。(7)管理员新增、删除用户信息,管理员删除长期没有登录的用户。(8)管理员查找、删除车辆预定信息,用户不能够重复预定,删除预定信息后车辆状态该为空闲。3.3软件性能需求系统运行后,上网人员通过网络访问系统。在人员访问页面时,必须在8秒内给出响应。系统允许的并发访问数量为1000,该系统服务器必须至少达到这个要求。后台管理系统,安全是非常重要的,没有登录的用户是绝对不能访问到后台页面的。管理员权限与角色的分配必须进行控制,不同权限的管理员能够使用的操作不同。4概要设计经过需求分析阶段的工作已经了解系统应该做什么,现在是解决该怎样做的时候了[13]。概要设计的目的就是解决如何实现系统的。在该阶段中通过对系统功能分析、系统接口、E-R图、数据库设计的阐述来说明系统是如何实现的。4.1功能模块分析由需求分析可知,系统主要划分为两大功能模块。以下将详细阐述每个功能模块具体能够完成的功能。系统具体功能模块图如图4-1所示。管理员信息管理模块车辆信息管理员信息管理模块车辆信息管理模块车辆出租信息管理模块车辆归还信息管理模块车辆损坏信息管理模块注册用户信息管理模块车辆维护信息管理模块车辆预定信息管理模块会员功能模块车辆预定功能模块汽车租赁管理系统前台客户系统后台管理系统4.1.1会员功能(1)会员注册如果是新用户,则需要先注册,注册时应该填写用户名、密码、真实姓名、联系方式、Email等信息。注册成功后,可以用注册的会员名进行登录。(2)会员登录当用户预定车辆时必须先登录,由系统验证登录信息是否正确,若正确则转到登录后的界面,否则继续转到登录界面。对于不合法的信息录入,系统给出相应的错误提示。(3)会员信息管理用户在登录状态下能够查看基本信息(包括用户名、密码、真实姓名、联系方式、Email)并能够进行修改。4.1.2车辆预定(1)车辆信息前台设计中应包含汽车的车牌、出租价格、图片等信息。用户可以点击汽车图片获取更多的相关信息,除了以上信息外,还应有汽车车型、生产厂商、出厂日期、出租状态等信息。(2)车辆预定处理用户在登录状态下,能够在前台预定所需的汽车,对于非空闲状态下的车辆不能预订,车辆不能够被重复预定。预定成功后,系统会给出相应提示,预定信息写入后台预定信息列表中。4.1.3管理员信息管理(1)管理员信息查看能够查看系统当前的所有管理员。(2)管理员信息修改能够修改当前登录管理员的相关信息(包括用户名、密码),如果登录者身份是一个超级管理员的身份,还能够对其他管理员进行管理,包括删除与修改。(3)注册新的管理员添加新的管理员信息。4.1.4会员管理(1)查看会员信息查看该系统注册了多少会员,和每一个会员的详细信息。(2)删除会员信息对操作不正常的会员和长期未登录的会员,管理员可以将该会员删除掉。4.1.5车辆基本信息管理系统可以添加、删除、查询汽车信息,同时可以根据不同的查询条件进行汽车信息查询。4.1.6车辆出租信息管理能够新增、查询、删除已经出租的汽车信息,能够显示全部已出租的汽车信息,能够根据不同的查询条件进行已出租汽车信息查询。添加信息成功后,车辆状态该为出租,删除信息成功后,车辆状态该为空闲。4.1.7车辆归还信息管理能够显示已归还汽车信息,能够对其进行删除操作。根据不同的条件查询已归还汽车信息,车辆归还后系统自动计算出车辆的租金。归还成功后,车辆状态该为空闲。4.1.8车辆损坏信息管理能够新增、查询、删除已损坏汽车信息,根据不同的条件进行查询操作,能够显示全部损坏汽车的信息列表。系统录入车辆损坏原因,并更改车辆状态。4.1.9车辆维护信息管理能够新增、查询、删除车辆维护信息,根据不同的条件进行查询操作,能够显示全部维护汽车的信息列表。系统录入车辆维护的项目,并更改车辆状态。4.1.10预定信息管理能够查看全部预订信息列表并能够进行删除操作,成功删除车辆预定信息后,车辆状态该为空闲,前台用户可以对该车辆进行预定。4.2系统接口设计用户界面设计在用户界面部分,根据分析的结果,用户需要一个友善的界面。在界面设计上,应该做到简单明了,易于操作,并且要注意到界面的布局。考虑到该系统的用户为互联网的使用者,决定采用浏览器搭建Web应用程序。系统用户界面简单、易于操作学习。软件接口数据库服务器通过持久层Hibernate调用JDBC驱动操作SQLServer2005数据库。硬件接口采用键盘、鼠标进行输入。4.3E-R图E-R是实体-联系图的简称,它描述现实世界概念结构模型的有效方法,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型[14]。⑴用户、管理员、车辆之间E-R图实体类用户所具有的属性有用户名、真实姓名、密码、联系方式、Emall。实体汽车类所具有的属性有车牌、车型、序号、生产厂商、生产日期、出租价格、押金、状态。实体类管理员所具有的属性有名称、序号、密码。一个用户可以预定多辆汽车,一个用户可以租赁多辆汽车;一个管理员可以管理多个用户,一个管理员可以管理多辆汽车。具体如图4-2所示:11NN租赁预定11NN租赁预定管理管理NN11汽车车牌出租价格生产日期生产厂商状态车型用户用户名Emall密码联系方式真实姓名密码名称管理员序号真实姓名序号序号⑵车辆出租、归还、损坏、维护、预定、管理员之间E-R图实体类管理员所具有的属性有序号、名称、密码、真实姓名;实体类车辆预定所具有的属性有序号、用户、预定日期、车牌号;实体类车辆出租所具有的属性有序号、车牌号、出租日期、归还日期、剩余日期、租赁人、押金、身份证号;实体类车辆维护所具有的属性有序号、车牌号、保养日期、保养项目、经手人。一个管理员能够处理多个车辆预定、车辆出租、车辆归还、车辆损坏车辆维护信息。以下列出了实体类管理员、车辆预定、车辆出租、车辆归还、车辆损坏、车辆维修只见到关系。具体如图4-3:管理员管理员管理1车辆出租车辆维护车辆预定车辆损坏车辆归还NNNNN图4-3车辆出租、归还、损坏、维护、预定、管理员之间E-R图4.4数据库逻辑结构设计数据库在一个系统中占有非常重要的作用,数据库结构设计的好坏将直接的影响到系统得效率,以及实现的效果。合理的数据库设计可以提高数据存储的效率,保证数据的完整和一致性[14]。⑴管理员表表名:c_admin说明:该表中ID是该表的主键,保存管理员信息,如表4-1所示:表4-1管理员信息表列名称类型宽度允许空值主键IdInt11否是UsernameVarchar50否否PasswordVarchar50否否realnameVarchar50否否regdateVarchar50否否⑵车辆归还信息表表名:c_back说明:该表中ID是该表的主键,用来保存车辆归还信息,如表4-2所示:表4-2车辆归还信息表列名称类型宽度允许空值主键IdInt11否是c_noVarchar50否否续表4-2c_startVarchar50否否c_endVarchar50否否c_moneyVarchar50否否c_othersVarchar50否否⑶出租信息表表名:c_borrow说明:该表中ID是该表的主键,保存出租信息。如表4-3所示:表4-3出租信息表列名称类型宽度允许空值主键IdInt11否是c_noVarchar50否否c_dateVarchar50否否c_manVarchar50否否c_idcardVarchar50否否c_moneyVarchar50否否c_othersVarchar50否否⑷损坏信息表表名:c_broken说明:该表中ID是该表的主键,用来保存损坏信息。如表4-4所示:表4-4损坏信息表列名称类型宽度允许空值主键IdInt11否是c_noVarchar50否否c_dateVarchar50否否c_reasonVarchar50否否c_moneyVarchar50否否c_manVarchar50否否⑸车辆信息表表名:c_info说明:该表中ID是该表的主键,用来保存车辆信息。如表4-5所示:表4-5车辆信息表列名称类型宽度允许空值主键IdInt11否是c_noVarchar50否否c_typeVarchar50否否c_productorVarchar50否否c_birthVarchar50否否c_moneyVarchar50否否c_priceVarchar50否否c_ststusVarchar50否否c_pathVarchar50否否⑹会员信息表表名:c_user说明:该表中ID是该表的主键,用来保存会员信息。如表4-6所示:表4-6会员信息表列名称类型宽度允许空值主键IdInt11否是c_usernameVarchar50否否c_passwordVarchar50否否c_realnameVarchar50否否C_idcardVarchar50否否c_regdateVarchar50否否c_linkVarchar50否否c_levelVarchar50否否c_emailVarchar50否否⑺车辆维护信息表表名:c_repaired说明:该表中ID是该表的主键,用来保存车辆维护信息。如表4-7所示:表4-7车辆维护信息表列名称类型宽度允许空值主键IdInt11否是续表4-7c_noVarchar50否否c_dateVarchar50否否c_itemsVarchar50否否c_managerVarchar50否否⑻预订信息表表名:c_orders说明:该表中ID是该表的主键,用来保存预订信息。如表4-8所示:表4-8预订信息表列名称类型宽度允许空值主键IdInt11否是c_userVarchar50否否c_noVarchar50否否c_dateVarchar50否否详细设计5详细设计详细设计阶段的根本目标是确定应该怎么具体地实现所要求的系统。本章将分别从系统各个模块的功能、主要流程图说明系统的设计方案。5.1前台客户系统功能模块设计5.1.1会员模块会员模块主要包括用户注册、登录以及对客户基本信息的处理。用户通过用户注册功能在系统中建立属于用户的空间。登录的用户可以查看自己的基本信息并对其进行修改。具体流程见图5-1。用户注册过程中,系统调用C_usersAction中的login方法验证数据的合法性,合法性验证通过后还要检测要注册的用户名是否已经存在,如果不存在则进行正常注册,如果存在则给出提示。开始开始用户信息输入数据通过验证显示错误信息数据不存在写入用户信息结束NYYN图5-1用户注册流程图5.1.2车辆预定模块用户登录系统,预定处于空闲状态下的车辆,系统在indes.jsp页面中读取数据库表c_info对应车辆状态,判断车辆是否处于空闲状态,如果车辆不在空闲状态,系统给予相应的提示并不接受预定信息,否则预定成功。具体流程图如图5-2所示。NNNN开始用户登录登录成功车辆空闲预定写入预定信息结束YY图5-2车辆预定流程图5.2后台管理系统功能模块设计5.2.1管理员信息管理模块该模块用于添加新管理员、修改密码、查看管理员列表。新增用户时需填写用户名和密码,此时系统对新输入信息进行验证,查看是否符合规则;是否与已存在用户信息相同。验证成功后写入新增用户信息。流程如如图5-3所示。管理员修改密码,为了保证系统和数据的安全,管理员输入旧密码和新密码,通过系统验证后完成密码修改操作。管理员可以查看全部管理员的信息,有权限对去查看删除操作。管理员登录Y出错提示结束写入数据库信息验证成功输入信息开始NNY登录成功管理员登录Y出错提示结束写入数据库信息验证成功输入信息开始NNY登录成功图5-3新增管理员流程图5.2.2车辆信息管理模块该模块主要是对汽车基本信息处理,能够新增、修改、查询、删除汽车信息。新增车辆信息,系统通过浏览器接受管理员输入的车辆信息,系统验证车辆信息是否符合基本规则,如车牌只能够以字母开头,生产厂商和生产日期是否符合规则,通过后写入数据库,如果不符合系统要求将给予出错提示,管理员重新写入车辆信息进行信息录入。流程图如图5-4所示。为了提高系统的管理效率,在查询功能中提供了车辆基本信息的删除和修改接口,在查询的同时直接对信息处理。管理员可以通过不同的查询条件进行车辆信息查询操作,如通过车牌、生产商、租金进行车辆查询,同时可以对其进行修改、删除等操作。流程图如图5-5所示。添加车辆信息添加车辆信息开始验证错误提示写入信息结束NY图5-4添加车辆信息流程图开始开始输入查询信息验证显示车辆信息错误提示操作车辆信息写入数据库结束YN图5-5车辆信息查询模块流程图5.2.3车辆出租信息管理模块该模块用于登记用户租赁的车辆信息,并对信息进行增、删、该操作。管理员在登录状态下,在添加出租车辆信息同时,系统对信息进行验证,通过后写入数据库。添加完成后系统将出租车辆的状态该为使用。在前台客户端,用户将不再看到此车辆的基本信息,不能够对其进行预订操作。流程图如图5-6所示。开始开始验证错误提示写入信息修改车辆状态NY添加出租信息结束图5-6添加车辆出租信息流程图管理员可以查看全部的已出租车辆信息列表,并根据不同的查询条件进行查询,在查询功能中提供了对出租车辆信息删除和修改的接口,方便用户操作,提高了系统的管理效率。这里不再提供流程图。5.2.4车辆归还信息管理模块该模块用于纪录车辆归还信息,并对信息进行增、删、该操作。用户归还车辆时,管理员录入车辆归还信息。管理员可以查看全部车辆归还情况,并能够对其进行查询、删除操作。车辆归还后,管理员要修改相应车辆的状态为空闲,从而保证数据的正确性,为系统提供一个良好的运行环境。主要流程图如图5-7所示。5.2.5车辆损坏信息管理模块该模块用于纪录车辆损坏情况,并对信息进行增、删、该操作。用户归还车辆时如有损坏,管理员纪录相关信息并录入系统。录入的信息通过系统检测后,对损坏的车辆应给予及时维修。此时车辆将不再对外出租,系统管理员修改车辆状态为损坏。系统管理员可以查看全部损坏的车辆纪录,有权对信息进行删除、修改操作。为了提高管理效率,在查询功能中同时提供信息删除、修改的接口。由于此模块功能与上述模块功能类似,不再提供流程图。开始开始录入车辆归还信息验证信息写入数据库修改车辆状态错误提示结束NY图5-7车辆归还流程图5.2.6车辆维护信息管理模块该模块用于纪录车辆维护信息,并对信息增、删、该操作。对于已有损坏的车辆,管理员纪录维修车辆基本信息并录入系统。录入的信息通过系统检测后,管理员修改车辆状态为维护。系统管理员可以查看全部车辆维护纪录,并能够对信息进行修改、删除操作。管理员可以依据时间、维护项目类型、维护费用的不同查找相关纪录。由于此模块功能与上述模块功能类似,不再提供流程图。5.2.7车辆预定信息管理模块该模块用于处理、纪录、管理用户从前台请求的车辆预定信息。为了保障系统的安全运行,前台客户预定车辆时,系统检测车辆状态,如果处于空闲状态则系统录入一条预定信息,同时修改车辆状态为预定;否则提示用户重新预定。管理员可以查看全部的预订信息,并进行删除、修改操作。流程图如图5-8所示。开始用户预定车辆开始用户预定车辆车辆空闲状态重新预定录入预定信息修改车辆状态结束NY图5-8车辆预定流程图5.2.8会员管理模块该模块用于对用户信息修改、删除操作。流程图如图5-9所示。开始开始用户注册注册成功操作用户信息结束NY图5-9会员功能流程图系统实现6系统实现系统实现,主要是参照系统详细设计,进行编码、实现。系统实现时,分为前台系统实现和后台管理系统实现,这里只对主要的页面的设计效果以及主要算法进行说明,具体情况如下。6.1前台客户系统6.1.1主页页面图6-1为前台客户系统主页,显示车辆相关信息并为用户提供登录和预定车辆接口。会员进入系统需要进行身份验证,在系统首页输入用户名和密码与数据库中的注册信息进行比较。接到登录请求,调用ActionForwardlogin控制,若通过验证则将进入index.jsp页面,如果失败则重新回到登录页面,并显示错误提示信息。会员登录后可以点击预订按钮进行车辆预定。实现模块的具体算法:publicActionForwardlogin()throwsException{//接收并验证用户信息}图6-1汽车租赁网站主页 6.1.2会员注册页面图6-2为会员注册页面,该页面为会员注册时填写的页面,会员填完每一项信息时,系统会自动判断填写信息是否符合要求,在所有填写内容都符合要求时,点击提交,会成功注册一个会员。实现模块的具体算法如下:publicActionForwardsave()throwsException{//接收用户注册信息returnmapping.findForward("save");}图6-2会员注册页6.2后台管理系统页面6.2.1登录页面图6-3为系统后台管理登录页面,为系统管理员提供登录接口。输入用户名密码能够进行登录,当用户名和密码有错时,系统会给予提示。实现模块的具体算法:publicActionForwardlogin(){ //接收管理员提交的信息 if(){//验证信息 request.getSession().setAttribute(); returnmapping.findForward("login"); } request.setAttribute("message","用户名或密码错误,请重新登录"); returnmapping.findForward("error");}图6-3汽车租赁管理系统登录页面6.2.2系统初始页面图6-4为系统初始页面,该页面左边为菜单栏,右边为主显示区域,上方为导航栏。左边为各个菜单以及子菜单,右边显示子菜单相应的内容,上方有前进、后退、刷新、退出等导航键,有利于管理员操作。图6-4系统初始页面6.2.3管理员模块页面图6-5是管理员模块页面,管理员通过该模块能够新增用户、修改密码、查看用户列表并能够对用户进行删除操作。新增用户页面显示需要填写的用户名、密码、确认密码三个文本框以及提交和重置按钮。修改密码页面显示需要填写的旧密码、新密码、确认密码、用户名三个文本框以及提交和重置按钮。用户列表中显示用户的序号、用户名、密码(加密的形式)以及删除按钮。详细功能算法:publicActionForwarddelete() //删除管理员信息throwsException{returnmapping.findForward("delete");}publicActionForwardupdate()//修改管理员信息 throwsException{ if(list.size()>0){ c_admin.setPassword(password); dao.update(c_admin);}else{request.setAttribute("用户名密码错误,不能修改密码");}publicActionForwardquery()//查询管理员信息 throwsException{}图6-5管理员模块页面6.2.4车辆基本信息页面图6-6是车辆信息页面,管理员能够新增车辆信息、查看车辆信息列表、查询车辆基本信息。新增车辆信息页面显示需要填写的车辆基本信息,点击提交按钮后新增一条信息;车辆信息列表显示每辆车的序号、车牌等信息,同时又修改和删除按钮;车辆信息查询页面显示供选择的查询条件,点击查询后显示查询结果。添加车辆信息实现代码:publicActionForwardsave() throwsException{ C_infoForminfoForm=(C_infoForm)form; C_infoDAOdao=newC_infoDAO(); C_infoc_info=newC_info(); Uploadupload=newUpload();//接收参数 FormFileformfile=infoForm.getFormfile(); Stringdir=servlet.getServletContext().getRealPath("/file"); if(formfile!=null||!"".equals(formfile)){ Stringpath=upload.upLoad(dir,formfile); c_info.setC_path("file/"+path);}图6-6车辆信息页面6.2.5车辆出租信息页面图6-7是车辆出租信息页,管理员能够新增车辆出租信息、查看出租状态下的车辆信息列表、查询车辆出租信息。新增车辆出租信息页显示需要填写的车辆信息以及租赁人信息;车辆出租信息列表显示处于出租状态下的汽车信息;车辆出租信息查询显页面显示不同的查找条件以及查找按钮。详细功能算法:publicActionForwardsave()//新增车辆信息publicActionForwarddelete()//删除车辆信息publicActionForwardupdate()//修改车辆信息publicActionForwardquery()//查询车辆信息图6-7车辆出租信息页6.2.6车辆归还信息页面图6-8是车辆归还信息页,管理员能够查看车辆归还信息列表并能够对信息进行删除操作,查询归还车辆信息。归还信息列表显示已经归还的车辆信息,同时拥有删除按钮;归还信息查询页面则显示不同的查询条件,点击查询后显示查询结果。图6-8车辆归还信息页删除车辆归还信息算法如下:publicActionForwarddelete()//删除信息throwsException{C_backDAOdao=newC_backDAO();dao.delete(id);returnmapping.findForward("delete");}6.2.7车辆损坏信息页面图6-9是车辆损坏信息页,管理员能够新增车辆损坏信息、查看损坏信息列表、查询损坏信息。新增损坏信息页显示需要填写的基本信息,点击提交后新增一条信息;损坏信息列表页显示车辆损坏纪录,同时又删除按钮,拥有删除功能;损坏信息查询显示不同的查询条件,点击查询后显示查询结果。详细功能算法:publicActionForwarddelete() //删除车辆损坏信息throwsException{//查找删除信息 returnmapping.findForward("delete");publicActionForwardupdate() //修改车辆损坏信息throwsException{//查找修改信息 returnmapping.findForward("update");publicActionForwardquery() //查询车辆损坏信息throwsException{ if(q.equals()){ list=dao.checkNo(name); }else{ list=dao.checkDate(name); } returnmapping.findForward("query");图6-9车辆损坏信息页6.2.8车辆维护信息页面图6-10是车辆维护信息页,管理员能够新增车辆维护信息、查看维护信息列表、查询维护信息。新增维护信息页显示需要填写的基本信息,点击提交后新增一条信息;维护信息列表页显示车辆损坏纪录,同时又删除和修改按钮,拥有删除、修改功能;维护信息查询显示不同的查询条件,点击查询后显示查询结果。查找车辆维护信息实现代码:publicActionForwardquery(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{ C_repairedDAOdao=newC_repairedDAO(); Listlist=null; Stringname=request.getParameter("name"); Stringq=request.getParameter("q"); if(q.equals("1")){list=dao.checkNO(name);}else{list=dao.checkDate(name);} request.setAttribute("list",list); returnmapping.findForward("query");}图6-10车辆维护信息页6.2.9注册用户信息页面图6-11是注册用户信息页,为管理员提供查看注册用户信息列表,显示前台会员的基本信息,同时最右边有删除按钮,能够执行删除操作。查找、删除用户信息实现代码:publicActionForwarddelete(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{C_usersDAOdao=newC_usersDAO();intid=Integer.parseInt(request.getParameter("id"));dao.delete(id);returnmapping.findForward("delete");}publicActionForwardquery(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{C_usersDAOdao=newC_usersDAO();Listlist=null;Stringname=request.getParameter("name");Stringq=request.getParameter("q");if(q.equals("1")){}else{}request.setAttribute("list",list);returnmapping.findForward("query");}图6-11注册用户信息页系统测试7系统测试软件开发过程必须伴有质量保证活动。软件测试是软件质量保证的关键元素,代表了规约、设计和编码的最终检查。通过测试可发现系统中存在的问题或潜在问题,帮助系统开发者解决问题,完善系统功能,保证系统的正常运行[15]。7.1测试的概念软件测试是为了发现错误而执行程序的过程;测试是为了证明程序有错,而不是证明程序无错误;一个好的测试用例是在于它能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试[16]。测试的目的就是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒测试和黑盒测试依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误[17]。7.2测试的步骤与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成[18]:模块测试在这个测试步骤中所发现的往往是编码和详细设计的错误。⑵系统测试在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误[19]。⑶验收测试在这个测试步骤中发现的往往是系统需求说明书中的错误。7.3单元测试单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。单元测试不仅仅是作为无错编码一种辅助手段在一次性的开发过程中使用,单元测试必须是可重复的,无论是在软件修改,或是移植到新的运行环境的过程中。本系统的单元测试主要是在编码阶段用JUNIT4对每一段功能代码进行测试,尽量保证每段功能代码的正确性[20]。7.4测试用例7.4.1用户注册测试⑴用户名测试用户名是由字母和数字组成的长度在3-12之间的字符串。现对用户名验证进行测试,具体测试用例如表7-1所示,由于篇幅限制此处只做简单说明,测试用例也只选取少数条目。表7-1用户名测试用例表序号测试用例预期结果1空提示用户名不可为空2E提示用户名过短3aaaaa无错误提示4长度超过12的字符串提示用户名过长5@332c提示用非法字符6已存在的用户名提示用户名已存在⑵密码测试用户密码是由字母和数字组成的长度在3-12之间的字符串。现对用户密码验证进行测试,具体测试用例如表7-2所示,由于篇幅限制此处只做简单说明,测试用例也只选取少数条目。表7-2密码测试用例序号测试用例预期结果1空提示密码不可为空2Bb提示密码过短3长度超过12的字符串提示密码过长4fgdfg无错误提示5两次输入密码不同提示两次输入密码不同。⑶邮箱测试用例用户邮箱地址是由字母和数字组成的,包含@和.域的字符串。现对用户邮箱验证进行测试,具体测试用例如表7-3所示,由于篇幅限制此处只做简单说明,测试用例也只选取少数条目。表7-3邮箱测试用例序号测试用例预期结果1空提示邮箱不能为空232bc格式错误3A3@格式错误4d@.c格式错误5db@.com无错误提示6cd@y格式错误7cf@.cn无错误提示7.4.2管理员登录测试管理员登录测试,主要测试登录过程中系统对表单提交的数据的处理能力,以及正常用户是否能够正常登录。由于篇幅限制此处只做简单说明,测试用例也只选取少数条目。如表7-4所示。表7-4管理员登录测试用例序号测试用例预期结果1用户名为空提示用户名不能为空2密码为空提示密码不能为空3输入正确的用户名和密码登录成功4输入不匹配的用户名和密码提示用户名和密码错误5输入未注册的用户名和密码提示用户不存在7.4.3管理员功能测试管理员是对整个系统信息的管理,管理员功能测试,主要测试管理员对车辆、会员、管理员等信息的操作是否正常。由于篇幅限制此处只做简单说明,测试用例也只选取少数条目。表7-5管理员功能测试序号测试用例预期结果1点击新增用户填写信息提交管理员列表中显示新增信息2点击用户列表删除用户对应信息在列表中删除3点击修改密码填写新密码提交再次登录只能用新密码登录4点击会员注册列表删除记录对应信息在列表中删除图7-1用户注册测试图图7-2用户列表测试图由测试用例,输入正确的用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026新疆双河瑞林工程管理咨询有限公司市场化招聘1人备考题库附答案详解(考试直接用)
- 2026江西新余高新区财政公共服务中心招聘见习生4人备考题库及答案详解(网校专用)
- 2026年位置轨迹数据泄露引发的安全事件与反思
- 2026浙江大学传媒与国际文化学院诚聘海内外英才备考题库及答案详解(典优)
- 广安市前锋区广兴镇片区纪检监督员招聘笔试参考题库及答案解析
- 2026浙江舟山群岛新区六横殡仪馆招聘1人备考题库附答案详解(巩固)
- 2026年滁州全椒县中医院、镇卫生院公开招聘专业技术人员18名考试模拟试题及答案解析
- 2026大唐山西发电有限公司招聘备考题库及完整答案详解1套
- 2026年智慧农业项目申报书编制指南
- 2026浙江杭州西湖区卫健局所属事业单位招聘12人备考题库含答案详解(考试直接用)
- 2025年河北省中考化学试卷真题(含答案解析)
- 军事伪装道路施工技术专题
- 良肢位摆放叙试题及答案
- 2025年高考数学全国一卷试题真题及答案详解(精校打印)
- T/CCMA 0168-2023土方机械电控手柄技术要求及试验方法
- 成人癌性疼痛护理团体标准
- 2025年统计学期末考试题库:时间序列分析核心考点解析
- 实验室生物安全应急预案
- DG-TJ08-2177-2023建筑工程消防施工质量验收标准
- 《低聚糖功能性质》课件
- 华南理工大学《工程热力学》2023-2024学年第一学期期末试卷
评论
0/150
提交评论