【《基于Java web的停车管理系统设计》10000字(论文)】_第1页
【《基于Java web的停车管理系统设计》10000字(论文)】_第2页
【《基于Java web的停车管理系统设计》10000字(论文)】_第3页
【《基于Java web的停车管理系统设计》10000字(论文)】_第4页
【《基于Java web的停车管理系统设计》10000字(论文)】_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

第[10](DataFlowDiagram),DFD是数据流图的缩写。它用图形描述了系统的逻辑功能,描述了系统中数据的流向和逻辑转换,因为这种方法可以表达难以解释的问题,是开发人员广泛使用的一种结构化分析方法,过程中最抽象的一层是零级数据处理,它包括管理员登录管理、管理员功能管理、修改和维护管理等功能模块。登录模块中使用的数据存储管理员帐户文档和管理员信息文档。管理模块的管理员功能需要管理员通过添加业务文档、查阅业务文档和删除业务文档来存储,恢复和维护则是通过对文档上方的信息进行关键字搜索。系统的顶层数据流图如图3-5所示:图3-5系统顶层数据流图系统的底层数据流图如图3-6所示:图3-6系统顶层数据流图3.5本章小结本章对城市智慧停车管理系统做了详细地需求分析,包括接口需求分析、系统的功能需求分析和非功能性需求分析。也对系统的主要功能的业务流程分析做了部分解释。在用例图中展示了高级管理员和管理员的用例。

4系统设计4.1系统结构设计系统设计主要是管理员登录后对整个智慧停车系统相关操作进行处理,可进行管理员的添加和删除,停车信息管理,车费结算信息管理,停车区信息管理等操作。系统的功能结构图如图4-1所示。图4-1系统功能结构图4.2功能模块设计1.系统登录:系统登录是管理员访问系统第一步,设计了系统登陆界面,包括管理员账户、密码和验证码,系统会对登陆的账号进行判断,判断其对应的身份和权限。系统登录时序图如图4-2所示。图4-2系统登录时序图人员管理:高级管理员可以对系统中管理员的账号进行管理,包括新管理员的录入、现有管理员的排除、管理员信息的修改、管理员权限和使用权的变更等。管理员管理的类图如图4-3所示:如图4-3管理员管理类图人员管理时序图如图4-4、4-5、4-6所示:图4-4添加管理员时序图图4-5删除管理员时序图图4-6修改管理员信息时序图车位管理:高级管理员可以对停车区的信息进行正确的管理,包括:查询停车库的信息;修改停车区、停车位信息;增加停车区、停车位信息;删除停车区、停车位信息等。车位管理类图如图4-7所示:图4-7车位管理类图车位管理时序图如图4-8、4-9、4-10、4-11所示:图4-8添加停车区信息时序图图4-9删除停车区信息时序图图4-10查询停车区信息时序图图4-11修改停车区信息时序图录入管理:有车辆停到相应停车位后,管理员使用系统对车辆信息进行录入,也可以使用拍照识别功能对车牌号进行拍照上传,系统会自动识别到车辆的车牌号信息,然后将停车信息进行录入,然后该订单会上传至服务器并且可以在车辆信息搜索中查询到。录入管理时序图如图4-12所示:图4-12录入管理时序图结算管理:有车辆需要驶离停车位时,管理员使用系统对车辆信息进行查询,也可以使用拍照识别功能对车牌号进行拍照上传,系统会自动识别到车辆的车牌号信息,然后会生存结算信息,驾驶员可以通过现金或者扫码进行缴费。完成缴费后该停车订单会保存在后台服务器并且可以在今日工作中查询。结算管理时序图如图4-13所示:图4-13结算管理时序图4.3系统界面设计本系统主要界面包括以下几种:(1)主页面:系统信息以及退出系统;(2)人员管理界面:管理员信息的增删改查;(3)车位管理界面:停车区的增删改查(4)录入停车信息界面:添加新的停车信息;(5)停车费用结算界面:停车费用计算;(6)今日工作界面:当日工作的汇总查询;(7)地图搜索界面:搜索自己所在地理位置;本系统有以下几种界面序列:(1)不同类型管理员的登录界面序列:登录—进入主页面;(2)管理员按钮—添加用户/查询用户界面—主页面;(3)主页面和用户管理界面序列:主页面—账户管理按钮—添加管理员/查询管理员界面—主页面;(4)主页面和系统用户管理界面序列:主页面—系统用户管理按钮—添加管理员/修改密码界面—主页面;(5)主页面和录入车位界面序列:主页面—录入停车信息按钮—添加相关信息界面—主页面;(6)主页面和停车费用结算界面序列:主页面—费用结算按钮—用户付款界面—主页面;(7)主页面和车位管理界面序列:主页面—车位管理按钮—增加,删除停车区—主页面;(8)主页面和今日工作界面:主页面—今日工作按钮—今日订单查询—主页面;(9)主页面和地图搜索界面:主页面—地图按钮—主页面;(10)主页面和硬件检测界面:主页面—硬件检测界面—主页面;4.4数据库设计4.4.1E-R图设计系统ER图如图4-14所示:图4-14系统ER图该系统共包含三个实体,其中管理员实体包括管理员名称、密码和权限三个属性。停车区信息实体主要用来保存停车场相关属性,包含停车场名称、总停车位数、停车场类别等相关信息。停车订单实体主要用来保存停车业务相关属性,包含停车场名称、车主名称、车主电话,总费用,开始时间,结束时间等相关信息。4.4.2表设计我们在设计数据库时候,要充分考虑其特点,使用不同的表类型。城市智慧停车管理系统中涉及的表众多,本毕设涉及的核心信息表如下:1.管理员信息表:主要用来保存系统管理员的基本信息,包括主键、用户名称、密码、姓名、性别和权限等相关信息,如表4-1所示。表4-1管理员信息表属性名称类型说明(属性的业务含义)idint主键usernamevarchar用户名称passwordvarchar密码namevarchar姓名sexint性别emailvarchar邮箱phonevarchar电话statevarchar状态(是否可用)typeint类型(普通管理员或高级管理员)2.停车区信息表:用来存储停车区的基本信息,包括停车位所属停车区、停车去名称、停车区拥有的总车位数、停车价格等相关信息。停车区信息表如表4-2所示。表4-2停车区信息表属性名称类型说明(属性的业务含义)c_idint主键c_namevarchar用户名称c_locationvarchar密码c_descriptionvarchar描述停车区字段c_totalint数量c_pricedouble总价c_pricetimedouble小时单价3.停车位信息表:用来要进行停车业务的相关车辆信息信息,包括车主姓名,车牌编号、车位状态、停车开始时间、停车结束时间等相关信息。停车信息表如表4-3所示。表4-3停车订单信息表属性名称类型说明(属性的业务含义)Idint主键Provincevarchar车牌号所属省份carNumbervarchar车牌号customerNamevarchar车主名称customerPhonevarchar车主电话startTimedatetime开始停车时间endTimedatetime结束停车时间costdouble本次停车费用timedouble订单创建时间stateint订单状态cidint停车区主键sidint停车位主键uidint用户主键4.停车位信息表:具体某个停车位的相关信息:该停车位所处停车区,以及车位状态,车位价格,车位类型等,如表4-4所示表4-4停车位信息表属性名称类型说明(属性的业务含义)s_idint主键s_namevarchar停车名称s_locationvarchar停车具体位置s_stateint状态(是否可用)s_typevarchar类型s_pricedouble价格s_pricetimedouble小时单价c_idint停车区主键4.5硬件设计按照系统设计功能的要求,采用小白派QuecPhython4G开发板、HX711模块和1kg压力传感器组成。4.5.1开发版介绍EC600X_QuecPython_EVB_V1.x开发板是一款搭载多款传感器的Cat.1通信模块开发板。EC600S_QuecPython_EVB_V1.x开发板是专门针对EC600S制造,是一款小巧便携的“口袋型”开发板。体型虽小,但是功能丰富,拥有温湿度传感器、SIM卡座、板载天线、LCD接口、光敏电阻、MIC、等元件。开发者仅需一条USBType-C数据线即可轻松玩转开发板。开发板功能如图4-15所示图4-15小白派功能结构图4.5.2HX711HX711芯片全称为XFW-HX711,是一款24位A/D转换器芯片,专为高精度的电子秤而设计。HX711芯片如图4-16所示图4-16HX711芯片图4.5.3压力传感器该传感器上下表面各有一个应变片,每个应变片内有2个压力电阻。一共为4个压力电阻,组成的全桥式电路。全桥电路可以提高所测的精度。全桥电路如图4-17所示图4-17全桥电路4.7本章小结本章在需求分析阶段的基础上对该系统做进一步的设计,主要包括“城市智慧停车系统”的结果设计、模块设计、界面设计、数据库的设计和硬件设计。重点为硬件的设计需要对三个硬件进行详细的了解和设计,从而完成全部的相应设计。

5系统实现5.1登录模块的实现为确保系统安全性,系统操作员只有在登录界面输入正确的账号、密码以及验证码,并且验证码分大小写,然后点击“登录”按钮后就够进入本系统的主界面。核心代码如下:Stringmsg=request.getParameter("msg");if(msg!=null){model.addAttribute("msg",msg);}return"login";}<selectid="findUser"parameterType="String"resultType="user">select*fromuserwhereusername=#{username}andpassword=#{password}andstate='1'</select>用户登录界面如图5-1所示:图5-1用户登录界面图图5-2用户登录成功界面图5.2注册模块的实现如果想添加新的管理员需要使用高级管理员的页面,填入相应信息后如果没有输错的情况下,就会添加成功,并且显示的结果如下。核心代码如下:@RequestMapping(value="/addUser.action",method=RequestMethod.POST)@ResponseBodypublicStringaddUser(Stringusername,Stringcode,Stringname,Stringsex,Stringemail,Stringphone){user.setName(name);user.setSex(Integer.parseInt(sex));user.setEmail(email);user.setPhone(phone);user.setHeadImg("headImgs/1.png");user.setState(1);user.setType(0);intflag=userService.insertUser(user);Stringmsg=null;if(flag==1){msg="OK";returnmsg;}else{returnmsg;}}<insertid="insertUser"parameterType="user">Insertintouservalues(null,#{code},#{username},#{password},#{name},#{sex},#{email},#{phone},#{headImg},#{say},#{state},#{type})添加管理员如图所示:图5-3添加用户界面图图5-4添加用户成功界面图5.3录入管理模块的实现管理员可以通过手动输入停车的车辆信息,并且可以通过对车牌号进行拍照,系统会自动识别车牌号信息,随后会将车辆信息上传至服务器。核心代码如下:@RequestMapping(value="addCarorder.action",method=RequestMethod.POST)@ResponseBodypublicStringaddCarorder(intsid,intcid,intuid,StringselectId,Stringcar_number,Stringcar_name,Stringcar_phone){Carorderco=newCarorder();co.setProvince(selectId);co.setCarNumber(car_number);co.setCustomerName(car_name);co.setCustomerPhone(car_phone);co.setCost(0.0);co.setTime(0.0);co.setCid(cid);co.setSid(sid);co.setUid(uid);co.setStartTime(newTimestamp(newDate().getTime()));co.setState(0);intflag=carorderService.insertCarorder(co);Stringmsg=null;if(flag==1){msg="OK";returnmsg;}else{returnmsg;}}<insertid="insertCarorder">insertintocarordervalues(null,#{province},#{carNumber},#{customerName},#{customerPhone},#{startTime},null,#{cost},#{time},#{state},#{cid},#{sid},#{uid})</insert>拍照录入车牌号界面如图所示:图5-5拍照录入车牌号界面图图5-6停车信息添加成功界面图5.4结算管理模块的实现停车管理员对当前泊位订单进行结算,驾驶员可通过手机端进行停车缴费。核心代码如下:结算管理界面如图5-7所示:图5-7结算管理界面图5.5今日工作管理模块的实现管理员可以对当日工作总量的总查询,显示结果如下。 核心代码如下:}else{returnmsg;}}今日工作管理界面如图5-8所示:图5-8今日工作管理界面图5.6人员管理模块的实现高级管理员对管理人员的增删查改管理,显示结果如下。核心代码如下:<selectid="findByUsername"parameterType="String"resultType="user">select*fromuserwhereusername=#{username}andstate='1'</select><selectid="findByCode"parameterType="String"resultType="user">select*fromuserwherecode=#{code}</select><updateid="updatePassword">updateusersetpassword=#{password}whereid=#{id}</update><updateid="updateUserInfo"parameterType="user"> Updateusersetname=#{name},email=#{email},phone=#{phone},say=#{say}whereid=#{id}</update><deleteid="deleteUser">

deletefromuserwhereid=#{id}

</delete>

<updateid="updateUserState">

updateusersetstate=#{state}whereid=#{id}

</update>

<updateid="updateUserType">

updateusersettype=#{type}whereid=#{id}

</update>

<insertid="insertUser"parameterType="user">

insertintouservalues(null,#{code},#{username},#{password},#{name},#{sex},#{email},#{phone},#{headImg},#{say},#{state},#{type})

</insert>人员管理界面如图所示:图5-9人员管理界面图图5-10修改用户信息界面图图5-11删除用户信息界面图图5-12查询用户信息界面图5.7车位管理模块的实现高级管理员对停车区域的增删查改管理,显示结果如下。核心代码如下:<insertid="insertCarspace"parameterType="carspace">

insertintocarspace

values(null,#{s_name},#{s_location},#{s_state},#{s_type},#{s_price},#{s_pricetime},#{c_id})

</insert><updateid="updateCarspace"parameterType="carspace">

updatecarspacesets_name=#{s_name},s_location=#{s_location},s_type=#{s_type},s_price=#{s_price},s_pricetime=#{s_pricetime}wheres_id=#{s_id}

</update><deleteid="deleteCarspace">

deletefromcarspacewheres_id=#{id}

</delete><selectid="selectCpAndCsById"resultMap="carCpAndCsResult">

select*fromcarspacesjoincarstationcons.c_id=c.c_idwhere

s.s_id=#{id}

</select>

<selectid="selectByName"resultMap="carCpAndCsResult">

select*fromcarspacesjoincarstationcons.c_id=c.c_idwhere

s.s_name=#{name}

</select>车位管理模块界面如图所示。图5-13车位管理模块界面图图5-14添加停车区信息界面图图5-15添加停车区信息成功界面图图5-16修改停车区信息界面图图5-17修改停车区成功信息界面图图5-18修改停车位信息界面图图5-19修改停车位信息成功界面图图5-20删除停车位信息界面图图5-21删除停车位信息成功界面图图5-22删除停车区信息界面图图5-23删除停车区信息成功界面5.8车位检测模块的实现当硬件检测到车位有汽车停车时,web端发出提示弹窗,提醒工作人员即时处理,核心代码如下:

publicintreadData()throwsIOException{

try{

BufferedReaderin=newBufferedReader(newFileReader("C:\\Users\\XX\\Desktop\\233.log"));

Stringstr;String[]s=newString[0];

while((str=in.readLine())!=null){

if(str.contains("weight")){

if(str.length()>0){

s=Arrays.copyOf(s,s.length+1);s[s.length-1]=str.substring(10,16);

}

}

}

in.close();

for(inti=0;i<s.length;i++){

System.out.println(s[i]);

}

if(s.length>2){

Strings1=s[s.length-1];

Strings2="215.0";

System.out.println(s1);

System.out.println(s2);

System.out.println(s2.equals(s1));

if(s2.equals(s1)){

System.out.println("3333");

return1;

}

}

}catch(IOExceptione){

}

return0;

}

}车位检测界面如图5-24所示:图5-24车位检测界面图5.9接口实现开发板采用端口(COM和LPT)和电脑进行连接,成功安装相应驱动后,右键我的电脑后点击管理,打开“设备管理器”,进入电脑的设备管理器,点击“端口(COM和LPT)”,端口展开后会显示三个USB串口设备,如图5-25所示。图5-25端口图QPYcom是开发板共享的一款交互软件可以对开发板进行串口通讯和运行硬件py文件。软件与硬件串口通讯如图5-26所示图5-26QPYcom运行图此软件可以直接将通讯数据保存到本地log文件中,后由智慧停车管理系统直接读取本地文件即可。5.10本章小结系统实现是新系统开发工作的最后一个阶段,主要分别从系统的具体功能、系统功能模块和硬件与电脑的接口实现来介绍的。

6系统测试6.1测试目的测试是证明程序有错误,而不是证明程序没有错误。一个很好的证明例子是,它可以发现在开发中没有注意到的错误。通过对软件测试的过程,我们可以真正总结软件测试的目的,用最少的人力、物力和时间发现软件中的各种潜在错误和缺陷,通过纠正各类错误和缺陷,确保软件的质量,避免软件发布后潜在的错误和缺陷所带来的商业风险,试验过程中获得的试验结果和试验信息应作为后续改进设计和试验过程的重要输入,以避免在今后的项目开发和试验中重复同样的错误。城市智慧停车管理系统,主要测试登录、车位管理、用户管理、车辆录入和结算功能是否可以正常运行。6.2测试概述6.2.1.测试的原则(1)测试可以显示缺陷的存在,但不能证明没有缺陷。测试降低了软件中没有检测到缺陷的可能性,但即使没有缺陷,也不能证明软件是完全正确的。(2)穷尽测试是不可能的,这个原则非常重要。他不仅告诉我们有许多可能的测试,而且还说,根据这一原则,测试团队必须不断改进测试活动,以便尽可能利用现有资源执行最有价值的测试。(3)尽早的测试可以节约时间和成本,大量数据表明,在软件开发早期发现并修复缺陷可以节省后期大量的人力物力。6.2.2.测试的方法用一个黑色不透明的盒子来比做程序的黑盒测试,测试人员首先将数据输入并且操作,然后看程序输出的结果,将输出结果和预期结果进行比较。与白盒测试稍有不同,黑盒测试不看程序的代码问题,只要能运行输出结果即可。6.3单元测试6.3.1登录测试登录模块需要测试的功能有:是否能够正确的检测数据库有的用户名、密码。并做出正确的反应或提示。管理员登录测试用例如表6-1所示:表6-1登录测试用例图6-1登录测试6.3.2车位管理测试管理员可以对停车区管理,对停车区进行增加,删除,查询,修改等操作。车位管理测试用例如表6-2所示:表6-2车位管理测试用例图6-2车位管理测试图6.3.3用户管理测试管理员可以进行用户管理,对用户进行增加,删除,查询,修改等操作。用户管理测试用例如表6-3所示:表6-3用户管理测试用例图6-3添加员工测试图6.3.4车辆停车模块测试管理员可以进行车辆信息录入,对车辆信息进行录入等操作。车辆停车模块测试用例如表6-4所示:表6-4车辆停车管理测试用例图6-4车辆停车管理测试图6.3.5停车结算模块测试管理员可以对已经停车的用户进行结算功能停车费用结算测试用例如表6-5所示:表6-5停车费用结算测试用例图6-3停车费用结算测试图6.4本章小结本章节主要介绍系统开发完成后,对系统功能和用户体验等的测试,主要包含测试目的、测试概述、单元测试以及测试结果等。7总结开始做这个题目时,从一开始对硬件的迷茫,到渐渐的进入状态,中间询问过老师和专业对口的学长后,思路逐渐的清晰,在对硬件的编码和让硬件与电脑连接的过程中遇到了很多难题,难以用语言来表达。在历经了这一段时间的奋战后,紧张而又富饶的毕设计即将结束。回顾这段日子的经历和感受,虽然我已经尽力了,但是由于个人对硬件的理论知识与实践水平有限和在系统开发过程中对软件专业知识的局限性,导致我做的智慧停车系统并不完善。在硬件方面因为地磁传感器的不

温馨提示

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

评论

0/150

提交评论