关于基于Web停车场管理系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89365923
基于Web停车场管理系统的设计与实现
摘要
随着现代社会的快速发展,人民生活水平快速提高,汽车的数量飞速增加,在生活小区、办公场所、商场、景点等地方,停车难问题也日益突出。为了解决停车难的问题,结合一些当前的停车场模式和现状开发出本停车场管理系统。主要功能包括场内车辆管理和后台数据库管理,其中场内车辆管理又分为车位管理模块、收费管理模块、停车场数据管理模块、系统功能操作模块、用户信息管理模块等。我们从系统的功能实现和设计方面阐述了管理系统软件的开发过程。
系统采用了B/S架构,Tomcat8.0作为运行服务器,基于J2EE标准。Eclipse4.6开发环境,数据库采用Mysql-5.5.37。开发过程利用MVC开发模式,层次分明。成功实现了该系统。试运行结果表明,该系统具有良好的性能和扩展性,较高的响应速度和效率,该系统符合实际的停车场管理系统,为停车场管理供一个快速,简单规范的管理平台。这对提高信息化程度,降低人力成本有着重要的意义。
关键词:J2EE;B/S结构;Mysql;MVC;
ABSTRACT
With the rapid development of modern society, people's living standards increasing quickly, the number of vehicles increased rapidly, the living community, office space, shopping malls, scenic spots, such as local, parking problem is increasingly outstanding.In order to solve the problem of parking difficulty, combined with some parking mode and the status quo of the current developed this parking lot management system.Main functions include floor vehicle management and background database management, including internal vehicle management is divided into parking management module, data management module, system of parking charge management module, function module, user information management module, etc.We this paper expounds the realization of the function of the system and the design management system software development process.
System USES the B/S architecture, Tomcat8.0 as to run the server, based on the J2EE standard.Eclipse4.6 development environment, using Mysql database - 5.5.37.Development process using MVC development mode, distinct.The system is implemented.Trial operation results show that the system has good performance and scalability, high response speed and efficiency of the system in accordance with the actual car park management system, for parking management for a rapid, simple and standardized management platform.This to improve the informationization level, reduce the manpower cost has an important significance.
Keywords:J2EE; B / S structure;Mysql;MVC;
近年来,随着我国经济的快速发展,人们生活水平的不断提高,物质需求和生活方式也发生着深刻的变化,以前属于奢侈品的汽车己经逐步走入了市民的日常生活。伴随汽车消费大众化和各种机动车辆大范围内的迅速普及,车辆对其配套设施特别是停车场提出了更高的要求。停车是"速度为零的交通”,停车场及附属相关设施是静态交通的重要组成部分。停车场收费管理系统是伴随着公用收费停车场这一新生事物而诞生的。
目前的多数停车场存在着以下几个问题,管理漏洞、系统的可靠性、独立性强、收费过程比较繁琐、劳动强度高、停车场利用率低下、票款易流失等。针对这些问题该停车场系统从以下方面进行设计。针对管理进行了优化,采用划卡消费和现金支付相结合,系统计时计费。采用Java高级编程语言和WEB相关技术开发设计管理系统软件,实现网络管理操作。优化后的系统使用方便、服务高效、收费透明、防止票款的流失,提高可靠性同时也提高了操作者的工作效率。
停车场管理其实也就是信息化管理。在停车场的信息化中,包括停车场车位管理、停车信息管理、车主管理等信息化,信息化工作的开展有利于提高停车场的管理效率,提升停车场的竞争力。
要提高竞争力,首先要有良好的硬件环境,同时也要有好的客户服务,而要实现这些的办法就是信息化。本选题,针对停车场管理过程中的一些信息,对其进行信息化处理。在停车场管理过程中,主要涉及固定车位信息、临时车位信息、停车信息、车主信息等,通过对以上各个环节的信息化,提高档案的规范化管理,为以后的查询、统计作下基础。
停车场智能管理是现代化停车场车辆收费及设备全自动管理的统称,是将停车场基于计算机处理下的高科技机电一体自动化产品。根据恒业国际控股集团有限产品经理罗海江说明,其起源于2001年,发展的到现在日渐趋于完美,功能越来越面向国内外需求,系统操作也更加人性化。如今的停车场智能管理经过了早期对国外产品的模仿和学习阶段,目前进入到了一个产品创新阶段,紧跟市场需求步伐。目前国内听策划出系统生成企业有400多家,其中国产停车场系统产品约占市场比重的80%左右,国外停车场系统占20%。,据了解,在欧美地区,欧洲一些国家的停车产业发展已经有了50年的历史,已经达到了一种良性循环和有序发展。停车产业也已经成为年产值十亿美元的大产业。美国的停车产业每年收入越达到260亿美元,占全美GDP的3.25%。而我国的停车场车牌识别,牢牢占据主唱的位置。读卡器在停车场管理系统中扮演着重要的角色,如今它已由早期简单的接触式卡(磁卡/ID卡等),发展到感应式IC卡,再到RFID卡。而RFID卡是最具有话语权。
传统的停车场管理系统入口的部分主要由车辆检测器、读卡器、车场控制器、自动道闸、车辆检测线圈组成,读卡器采用的是感应式IC卡,传统的停车场大多数采用近距离读卡的方式,必须停车刷卡通行,使用不方便,需要摇下车窗伸出手刷卡,有时还需要下车刷卡。下雨天易被淋打湿,上下坡道停车刷卡容易造成碰撞、溜车等事故,坡起对于新司机也是非常可怕的。停车刷卡更有通行速度慢的缺点,尤其是在进出高峰容易造成拥堵。停车场采用的是全过程视频监控,动态的反馈信息,在安全方面还是有一定的保障。 因此,在优化上,本系统采用卡票结合的方式,在读卡器方面,采用RFID卡,解决了感应式近距离IC卡的问题,极大程度地提高了效率。对于车辆进入加入了车牌识别功能,识别车牌,进出停车场,针对于在停车场有会员的用户使用。对于临时用户来说,有读取票功能,动态的反应当前的车位情况,全过程采用视频监控,全方位,尽量做到无死角。
传统的停车场管理系统无法实时的动态处理,对于车主的信息也无法进行很好地保护、对于管理者的权限处理不当等问题,本系统都有很好地处理这些问题。其中的系统信息管理功能、车位信息管理功能、IC卡信息管理等功能良好的解决了这个问题。系统信息管理功能包括添加角色信息、管理角色信息、添加用户信息、管理用户信息、管理角色信息和管理用户信息模块可以对角色和用户进行增、删、改。车位信息管理包括添加车位信息、管理车位信息,管理车位信息模块可以对车主车位信息进行增、删、改。IC卡信息管理包括添加IC卡类型,管理IC卡类型。管理IC卡信息可以对车主的IC卡信息进行增、删、改。收费可以分为现金收费和卡收费,通常VIP用户进行卡收费,临时用户进行现金收费,软件管理实行分级权限制。对出口值班员来讲,其登录后可进入收费管理,期间该出口所有收费均自动记入该值班员名下并存入电脑数据库。由于值班员受权限限制,不能进入系统中更高的软件菜单项,所以对电脑所记录的数据无法干涉;上级管理者可以随时查询,核对或打印一个值班段或任何一段时间乃至整个停车场的工作记录。这样就从根本上杜绝了停车费用流失和财务统计的失误,同时系统自动运行,杜绝了人情车、霸王车造成的经济损失。设计一系列简约不简单的页面,与功能相对,提高信息处理的速度和准确性,能够准确、高效的查询和修改停车场的情况,从而提高效率。
第二章是介绍开发停车场管理系统所需要用的相关技术,前端用的是JSP和CSS3相结合,采用jQuery来处理数据,动态交互;后台用java编写,采用B/S架构,MVC模式,整体架构清晰,层次分明,易操作,易更改。
- 是系统分析,根据市场调研、查阅相关资料从技术、经济、操作三个层次来调查系统,得知停车场管理系统目前需要去完善和设计,并且根据总结规划出对应的需求分析,用用例图来将其描述出来。
- 是停车场管理系统的系统设计,一个User类算是核心,贯穿着整个系统;数据库设计了用户类,IC卡类,车位信息类、固定车主信息等类。
- 是停车场管理系统的功能实现。根据调研和对其他停车场管理系统的调查,添加了登录管理、车位管理、固定车主等模块。
- 是系统测设和维护。测试主要做了出入场设置、车位信息的测试。
- 是系统维护和评价。任何一个系统都需要去维护,在运行过程中出现问题才能及时的处理,更加的完善。
J2EE作为一个企业级的开放式应用规范,为公司和企业提供了大量的开发技术规范和一个多层次的分布式应用模型,具有良好的兼容性、安全性和可移植性。
不同的开发商遵循J2EE的开发规范,由于J2EE兼容性,使得数据信息具有很好良好的兼容性、安全性和可移植性。适用于各个平台。现如今,得到了大家的一致肯定,被大多数企业应用,提高开发效率。而停车场管理系统采用这个规范,其优良的可移植性和兼容性得到了很好的应用,易操作和学习。
Java虚拟机:JDK1.8
java开发工具:Eclipse4.6
web服务器:Tomcat8.0
环境配置过程:安装好JDK1.8后,选择Eclipse4.6的Project->Web Project, 构建工程。
MVC是Model View Controller 模型-视图-控制器的简称。其用于设计Web程序的模式。Model(模型)是程序处理代码逻辑的部分。View(模型)是程序处理数据部分。Controller(控制器)是处理数据传输过来与业务逻辑进行交互的部分。停车场管理系统采用MVC设计模式,方便开发人员修改或者调试代码,避免代码杂糅在一起。遇到问题时无法快速定位。而且MVC分层也简化了开发。不同的开发人员可以同时开发这三个逻辑,提高了开发效率,为开发商节约时间。
JSP其实是一个简单化的Servlet设计,一种面向对象的动态网页技术标准。其以Java为脚本语言,可以将java代码嵌入jsp页面,将代码和业务逻辑分离开来,实现动态交互。用户通过表单或者超链接提交数据,数据传到对应的Servlet中,通过Java代码处理,形成动态交互。JSP现今被大多数企业所应用,对于J2EE来说必不可缺。它使Web开发简化,提高效率,减少企业支出。
Query就是查询的意思,更加方便快捷的查询页面控件,语法简单。jQuery是继prototype之后有一个优秀的JavaScript框架,兼容了多种browse(IE6.0+),不但能够方便的操作文档和DOM、处理事件、实现动画效果,而且很方便的实现AJAX交互、兼容CSS3[4]。jQuery也提供了给开发人员在其上创建插件的能力,封装了JavaScript的函数,write less ..do more ...就是jQuery的宗旨。
RFID即为射频识别是一种无线通信技术,它是通过将无线电的电信号转化成无线电频率的电磁场,把在物品上标签附着的数据传输出去,用此来达到自动识别和追踪。它与条形码不同的是,不需要再识别器范围之内,也可以加入追踪器之内。
现今,大多数行业多运用了RFID技术。将数据标签附着在一套正在生产中的机器,便于厂家在线跟踪生产进度。当前也可以将其应用在图书馆中,便于管理和阅读者寻找书籍等等方面。停车场上也可以使用,汽车上装载的射频应答器,可便于进出车场的收费管理,避免难以预测的问题。提高停车场的效率。
-
-
- 车牌识别功能介绍
-
车牌识别技术是通过监控车辆并自动提取车牌信息进行处理的技术。车牌识别在在现在交通系统中扮演着重要的角色,它以图形化处理、模式识别等技术作为基础,对得到定位车辆图像进行分析,从而得到每辆车的车牌号码,完成识别过程。再通过一些手段的处理可以实现停车场收费管理。停车场管理系统采用该项技术可以更加方便快捷的管理进出场车辆。
在停车场管理系统的设计中,MVC(Model-View-Control)设计模式贯穿了整系统,框架采用SpringMVC+JDBC组合结构。
- 模型层
模型层主要是逻辑处理。 在本系统中,提供处理数据持久化,JavaBean对业务逻辑Service封装。
- 视图层
停车场管理系统采用JSP来实现视图层。
- 控制层
采用SpringMVC技术来处理前台请求与业务逻辑层的交互。
在停车场管理系统的设计中应用MVC设计模式,便于开发人员设计代码,由于这三个逻辑可以同时进行,提高了效率,节省时间,且由于分层,将代码隔离开来,方便开发人员操作。且停车场管理系统采用RFID卡等等技术,方便车辆出入,增加智能化,便于管理。可以从这个角度得出,开发智能停车场是可行的。
-
-
- 经济可行性
-
主要是对开发本系统的经济效益进行评价。根据调查了解到,大多数公共场所出现停车难、车位少等问题,停车场的效率十分低下,导致停车场的收益降低,且不安全。针对这种情况,有必要对停车场低效率的原因进程分析,并为提高停车场的效率提出改进的对策。经过分析调查,我们得出的停车场管理系统相当的有用,从这个角度来说,开发智能停车场管理系统是可行的。根据花费的查阅资料时间和框架设计时间,基本的功能实现需要差不多3个月左右,从2017年1月到4月,实现再加上相关功能的测试以及代码实现要两个2星期左右,对于那些智能化功能写的接口,待技术引进再后期磨合,实现需待定。总的来说4月份可设计完毕。根据系统要求规定,系统需要配合摄像头、引进RFID卡技术等,需要花费一笔费用,再预估计范围之内,从此看来,开发智能停车场是可行的。
-
-
- 操作可行性
-
开发所用的开发工具是eclipse,这个软件在各种计算机上都可以支持运行,并且操作方便,用户易上手。操作员经过简单的讲解就可以使用此系统,从这个方面而言,开发智能停车场管理系统是可行的。
系统信息管理:包括添加角色、管理角色、添加用户、管理用户、管理角色和管理用户模块可以对角色和用户进行增、删、改。
IC卡信息管理:添加IC卡类型,管理IC卡类型。管理IC卡信息可以对车主的IC卡信息进行增、删、改。
车位信息管理:管理车位、添加车位,管理车位信息模块可以对车主车位信息进行增、删、改。
固定车主停车管理:出入场设置、停车场信息管理。出入场设置可以设用户的入场和出场,相应的在停车信息中有一个展现。停车信息管理可以对车主的停车信息进行查询和删除。
临时车辆信息管理:车主入场信息,车主出场设置。设置车主入场,在相应的表中展现,在车主出场时进行收费,临时车主停车信息管理可以对临时车主的信息进行删除和查询。
收费管理:管理收费、添加收费信息。管理收费信息可以对车主的费用进行一个收费,可以对车主的收费信息进行查询和删除。
打印报表:查看报表信息,对固定车主和临时车主相关信息进行打印。
系统功能操作:修改密码、退出系统。
本章内容包括系统类分析、核心业务设计、数据库设计三个部分,其中系统类分析需要给出系统类图和类的说明,需要注意在给出类图的时候只需要给出核心业务类,对辅助类如界面类、数据库连接类这种类型的不需要给出,如果所涉及的类(包括类当中的内容)较多时,应首先给出类间关系图(图中的类只有名称没有属性和方法),之后在单个类说明中给出具体类的类图,类图同样需要用WORD进行绘制。
核心业务设计主要描述的是完成某项具体业务时,类之间的消息配合,用时序图进行表述,时序图可以用其他工具绘制,但不能够有其他的颜色出现。
数据库设计主要描述在系统中需要持久化的对象,需要给出ER图,如果系统所涉及的实体(或实体的属性)较多时同样采用分层绘制的方法,顶层图给出实体间关系,下层图针对每一个实体进行具体绘制。
USER类用于记录系统的用户信息,并完成登陆和注销的操作。具体说明如表4-2所示。
-
-
-
-
-
-
-
- USER类功能表
-
-
-
-
-
-
类功能描述 | 处理和用户相关的业务操作 | |||||
所在包名称 | DAL | |||||
继承对象 | 无 | |||||
实现对象 | ||||||
类属性 | ||||||
保护属性 | 类型 | 名称 | 描述 | 备注 | ||
Public | String | ID | 用户ID | 长度限制20位 | ||
Public | String | Name | 姓名 | 长度限制20位 | ||
public | String | Password | 密码 | 长度限制20位 | ||
主要实现方法 | ||||||
保护属性 | 方法名 | 输入参数 | 输出参数 | 方法功能描述 | ||
Public | login | string id,string pwd | String" | 登陆系统,用户输入ID和PASSWORD后进行验证,验证通过返回用户名,并登记日志,验证失败返回空串。 | ||
public | logout | string id | Void | 注销系统,注销成功清理用户的相关信息并登记日志。 |
JOURNAL类由5个类组成。分别是Fixed类、Temp类、Role类、Card类、Seat类 。
Fixed类记录固定车主信息,具体情况下如表4-3所示。
-
-
-
-
-
-
-
- FIxed类功能表
-
-
-
-
-
-
类功能描述 | 处理和固定车主的业务操作 | ||||||
所在包名称 | DAL | ||||||
继承对象 | 无 | ||||||
实现对象 | 表4-3FIxed类功能表 | ||||||
类属性 | |||||||
保护属性 | 类型 | 名称 | 描述 | 备注 | |||
Public | String | Fix_id | 记录编号 | 长度限制20位 | |||
Public | String | Card_id | IC卡号 | 长度限制20位 | |||
主要实现方法 | |||||||
保护属性 | 方法名 | 输入参数 | 输出参数 | 方法功能描述 | |||
Public | Update | string Fix_id,string pwd | int | 进入固定车主信息中,点击编辑,可修改固定车主信息 | |||
public | Delete | string Fix_id | Void | 进入固定车主信息中,点击删除,可删除固定车主信息 |
Temp类记录临时车主信息,具体情况如表4-4所示。
-
-
-
-
-
-
-
- Temp类功能表
-
-
-
-
-
-
类功能描述 | 处理临时车主的业务操作 | |||
所在包名称 | DAL | |||
继承对象 | 无 | |||
实现对象 | ||||
类属性 | ||||
保护属性 | 类型 | 名称 | 描述 | 备注 |
Public | String | Temp_id | 记录编号 | 长度限制20位 |
主要实现方法 | ||||
保护属性 | 方法名 | 输入参数 | 输出参数 | 方法功能描述 |
Public | Update | string Temp_id | int | 进入临时车主信息中,点击编辑,可修改固定车主信息 |
public | Delete | string Temp | Void | 进入固定车主信息中,点击删除,可删除固定车主信息 |
Role类管理角色信息,具体情况如表4-5所示。
-
-
-
-
-
-
-
- Role类功能表
-
-
-
-
-
-
类功能描述 | 角色管理 | |||||
所在包名称 | DAL | |||||
继承对象 | 无 | |||||
实现对象 | ||||||
类属性 | ||||||
保护属性 | 类型 | 名称 | 描述 | 备注 | ||
Public | String | Role_id | 记录编号 | 长度限制20位 | ||
主要实现方法 | ||||||
保护属性 | 方法名 | 输入参数 | 输出参数 | 方法功能描述 | ||
Public | Insert | string Role_id | int | 增加角色 | ||
public | Delete | string Role_id | Void | 删除角色 |
Card类记录IC卡信息,具体情况如表4-6所示。
-
-
-
-
-
-
-
- Card类功能表
-
-
-
-
-
-
类功能描述 | 处理IC卡相关业务 | |||||
所在包名称 | DAL | |||||
继承对象 | 无 | |||||
实现对象 | ||||||
类属性 | ||||||
保护属性 | 类型 | 名称 | 描述 | 备注 | ||
Public | String | Card_id | 记录编号 | 长度限制20位 | ||
主要实现方法 | ||||||
保护属性 | 方法名 | 输入参数 | 输出参数 | 方法功能描述 | ||
Public | Update | string Card_id | int | 进入IC卡信息中,点击编辑,可修改IC卡信息 | ||
public | Delete | string Card_id | Void | 进入IC卡信息中,点击删除,可删除IC卡信息 |
Seat类记录车位信息,具体情况如表4-7所示。
-
-
-
-
-
-
-
- Seat类功能表
-
-
-
-
-
-
类功能描述 | 处理车位信息相关业务 | ||||||
所在包名称 | DAL | ||||||
继承对象 | 无 | ||||||
实现对象 | |||||||
类属性 | |||||||
保护属性 | 类型 | 名称 | 描述 | 备注 | |||
Public | String | Seat_id | 记录编号 | 长度限制20位 | |||
主要实现方法 | |||||||
保护属性 | 方法名 | 输入参数 | 输出参数 | 方法功能描述 | |||
Public | Update | string Seat_id,string Seat_name | int | 进入车位信息中,点击编辑,可修改车位信息 | |||
public | Delete | string Seat_id | Void | 进入车位哦信息中,点击删除,可删除车位信息 |
管理员通过UI界面输入用户名,密码,调用USER类LOGIN方法,在LOGIN方法中调用DATABASE的checklogin方法,最后返回成功。
-
- 数据库设计
- 数据需求分析
- 数据库设计
系统E-R图表明了实体与实体之间的关系,根据系统的功能需求,系统有用户、IC卡、临时车主、固定车主、车位、收费信息六个实体。一个固定车主拥有一张IC卡和一个车位,一个临时车主拥有一个车位和临时IC卡。固定车主和临时车主产生收费信息。实体关系属性图如图4.3所示[11]
图4.3停车场管理系统E-R图
用户表:储存用户信息。
角色表:储存角色信息。
车位管理表:管理车位信息以及车位状态。
IC卡管理表:管理IC卡信息。
临时车辆记录表:记录临时车辆的信息。
固定车主表:记录固定车主信息及出入场信息。
收费表:记录用户们的收费信息。
用户表用于记录用户的编号、姓名、电话等属性信息,如表4-8所示。
表4-8用户表
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 外键 | 说明 |
1 | user_id | Varchar2 | 50 | 0 | 是 | 是 | 否 | ||
2 | role_id | Varchar2 | 50 | 0 | 否 | 是 | |||
3 | user_name | Varchar2 | 50 | 0 | 否 | ||||
4 | real_name | Varchar2 | 50 | 0 | 否 | ||||
5 | user_pwd | Varchar2 | 20 | 0 | 否 | ||||
6 | user_phone | Varchar2 | 50 | 0 | 是 |
角色表储存角色的编号、名字等信息,如表4-9所示。
表4-9角色表
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 外键 | 说明 |
1 | role_id | Varchar2 | 50 | 0 | 是 | 是 | 否 | ||
2 | role_name | Varchar2 | 50 | 0 | 否 |
车位管理表记录车位的编号、ID、状态等属性信息,如表4-10所示。
表4-10车位管理表
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 外键 | 说明 |
1 | seat_id | Varchar2 | 50 | 0 | 是 | 是 | 否 | ||
2 | seat_num | Varchar2 | 50 | 0 | 否 | ||||
3 | seat_setion | Varchar2 | 50 | 0 | 否 | ||||
4 | seat_state | int | 11 | 0 | 否 | ||||
5 | seat_tag | Varchar2 | 50 | 0 | 是 |
IC卡表记录IC卡的ID、车位ID、姓名、车牌号等属性信息,如表4-11所示。
表4-11 IC卡表
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 外键 | 说明 |
1 | card_id | varchar2 | 50 | 0 | 是 | 是 | 否 | ||
2 | seat_id | Varchar2 | 50 | 0 | 否 | 是 | |||
3 | user_name | Varchar2 | 50 | 0 | 否 | ||||
4 | user_gender | Varchar2 | 1 | 0 | 否 | ||||
5 | user_addr | Varchar2 | 50 | 0 | 否 | ||||
6 | car_num | Varchar2 | 50 | 0 | 否 |
临时车辆记录表,用于记录临时车主的编号、车牌号、出入场时间等属性信息,用户如表4-12所示。
表4-12临时车辆表
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 外键 | 说明 |
1 | temp_id | Varchar2 | 50 | 0 | 是 | 是 | 否 | ||
2 | card_id | Varchar2 | 50 | 0 | 否 | ||||
3 | car_num | Varchar2 | 50 | 0 | 否 | ||||
4 | entry_date | date | 0 | 0 | 否 | ||||
5 | entery_time | time | 0 | 0 | 否 | ||||
6 | out_date | date | 0 | 0 | 是 | ||||
7 | out_time | time | 0 | 0 | 是 | ||||
8 | temp_money | float | 0 | 4 | 是 |
固定车主表用于记录固定固定车主的编号、IC卡编号、出入场时间等属性信息,如表4-13所示。
表4-13固定车主表
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 外键 | 说明 |
1 | fixed_id | Varchar2 | 50 | 0 | 是 | 是 | 否 | ||
2 | card_id | Varchar2 | 50 | 0 | 否 | 是 | |||
3 | entry_date | date | 0 | 0 | 否 | ||||
4 | entery_time | time | 0 | 0 | 否 | ||||
5 | out_date | date | 0 | 0 | 是 | ||||
6 | out_time | time | 0 | 0 | 是 |
收费表用于记录收费的编号、车主姓名、车牌号、收费金额等属性信息,如表4-14所示。
表4-14收费表
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 外键 | 说明 |
1 | role_id | Varchar2 | 25 | 0 | 是 | 是 | 否 | ||
2 | role_name | Varchar2 | 255 | 0 | 是 | ||||
3 | role_type | Varchar2 | 255 | 0 | 是 | ||||
4 | car_num | Varchar2 | 25 | 0 | 是 | ||||
5 | car_money | Varchar2 | 255 | 0 | 是 | ||||
6 | car_time | Varchar2 | 255 | 0 | 是 |
登录模块界面如图5.1所示:
图5.1 用户登录
功能描述:登陆页面需要用户名、密码进行登录。登录的同时对输入的用户名和密码进行验证,首先我们要保证用户名和密码不能为空。其次是对数据库的验证,系统在数据库中搜索用户输入的用户名是否存在,若不存在,则提示出错。并且重新登录,系统不允许两个用户同时登录,该操作在一定程度上使系统的安全性有所提高。
登录主要代码位置:TestPark/src/DAL/login.java。主要封装了对登录数据的操,该类中有三个方法分别用于检查用户登录信息是否合法,根据用户编号和角色编号获取用户名和角色信息。
publicclass Login {
publicboolean checkLogin(String user_id,String user_pwd)
{
String sqlCmd="select count(*) from user where user_id=? and user_pwd=?";
Object[] objList=new Object[2];
objList[0]=user_id;
objList[1]=user_pwd;
String result=SQLUtil.excuteScalar(sqlCmd,objList).toString(); if(result.equals("1"))
{
returntrue;
}
else {
returnfalse;
}
}
public String getName(String user_id)
{
String sqlCmd="select user_name from user where user_id='"+user_id+"'";
String result=SQLUtil.excuteScalar(sqlCmd, null).toString();
return result;
}
public String getSysLevel(String user_id)
{
String sqlCmd="select role_id from user where user_id='"+user_id+"'";
String result=SQLUtil.excuteScalar(sqlCmd, null).toString();
return result;
}
}
添加角色信息如图5.3所示:
图5.3 添加角色信息
管理角色如图5.4所示:
图5.4 管理角色信息
添加用户信息界面如图5.5所示:
图5.5 添加用户信息
管理用户信息界面如图5.6所示:
图5.6 管理用户信息
功能描述:该模块是对系统信息的一个管理,添加角色输入编号和名称,后台数据库进行验证,若角色没有存在则添加数据成功,跳转到管理界面。管理角色信息可以根据用户的编号,角色名称进行查询操作、编辑、和删除操作。添加用户信息输入用户编号、名称、昵称、姓名、密码电话点击确定进行后台数据库的验证,若成功添加则跳转到管理界面。管理用户界面可根据用户编号、角色名称、用户名称、真实姓名进行查询、编辑和删除操作。
添加停车位信息如图5.8所示:
图5.8 添加车位
管理车位信息如图5.9所示:
图5.9 管理车位信息页面
功能描述:该模块是对车位的一个管理。点击添加车位信息,输入编号选择是A区还是B区,添加成功则会跳转到管理界面。管理界面可根据车位ID、车位编号、所属区域、车位备注进行查询,还可对车位信息进行编辑和删除。
对车位数据的操作封装在:seat.java类中。该类中主要封装了分页和对车位信息的增、删、改、查等方法。首先获取车位信息列表,然后获取未分配的车位列表,根据查询条件获取获取分页后的信息列表,数据的更新、插入、删除,获取分页总数,根据查询条件获取分页总数。
publicclass Seat {
public List<Object> getEntity()
{
String sqlCmd="select *from Seat";
return DBUtil.SQLUtil.executeQuery(sqlCmd, null);
}
public List<Object> getNoUseSeat()
{
String sqlCmd="SELECT *FROM Seat WHERE seat_id NOT IN(SELECT seat_id FROM card)";
return DBUtil.SQLUtil.executeQuery(sqlCmd, null);
}
public List<Object> getEntity(int page)
{
int size=(page-1)*15;
String sqlCmd="select *from Seat limit "+size+",15";
return DBUtil.SQLUtil.executeQuery(sqlCmd, null);
}
public List<Object> getEntityByWhere(String sqlWhere,int page)
{
int size=(page-1)*15;
String sqlCmd="select *from Seat where "+sqlWhere+" limit "+ size+",15";
return DBUtil.SQLUtil.executeQuery(sqlCmd, null);
}
publicint deleteEntity(String seat_id)
{
String sqlCmd="delete from Seat where seat_id='"+seat_id+"'";
return DBUtil.SQLUtil.executeNonQuery(sqlCmd, null);
}
public List<Object> getEntityById(String seat_id)
{
String sqlCmd="select *From Seat where seat_id='"+seat_id+"'";
return DBUtil.SQLUtil.executeQuery(sqlCmd, null);
}
publicint updateEntity(String seat_id,String seat_num,String seat_section,String seat_state,String seat_tag)
{
String sqlCmd="Update Seat set seat_num='" + seat_num + "',seat_section='" + seat_section + "',seat_state='" + seat_state + "',seat_tag='" + seat_tag + "' where seat_id='"+seat_id+"'";
return SQLUtil.executeNonQuery(sqlCmd, null);
}
publicint insertEntity(String seat_id,String seat_num,String seat_section,String seat_state,String seat_tag)
{
String sqlCmd="Insert into Seat values('" + seat_id + "','" + seat_num + "','" + seat_section + "','" + seat_state + "','"+seat_tag+"')";
return SQLUtil.executeNonQuery(sqlCmd, null);
}
publicboolean checkExist(String seat_id)
{
String sqlCmd="select count(*) from Seat where seat_id='"+seat_id+"'";
if(1==Integer.parseInt(SQLUtil.excuteScalar(sqlCmd, null).toString()) )
{
returntrue;
}
returnfalse;
}
public Object getPageCount()
{
String sqlCmd="SELECT CEIL( COUNT(*)/15.0) FROM Seat ";
return SQLUtil.excuteScalar(sqlCmd, null);
}
public Object getPageCountByWhere(String sqlWhere)
{
String sqlCmd="SELECT CEIL( COUNT(*)/15.0) FROM Seat where "+sqlWhere;
return SQLUtil.excuteScalar(sqlCmd, null);
}
}
车位信息流程图如图5.10所示:
图5.10 车位信息流程图
添加IC卡界面如图5.11所示:
图5.11 添加IC卡界面
功能描述:该功能模块是对IC卡信息的管理,点击添加IC卡输入如图5.11所示的信息,添加成功后,跳转到图5.12的界面。管理界面可根据IC卡编号、车位编号、用户名称、车牌号码进行查询。也可进行相应的编辑和删除操作。
临时车主入场信息界面如图5.14所示:
图5.14临时车主入场页面
车主出场信息界面如图5.15所示:
图5.15临时车主出场页面
结算页面如图5.16所示
图5.16 结算页面
功能描述:该模块是对临时车主出入场的管理。点击入场管理,出现如图5.14所示的界面,输入信息,如果输入成功就会跳转到如图5.15的界面,出场日期,日期显示未出场,停车费用显示待结算。点击结算出现如图5.16界面。
固定车主出入场设置界面如图5.18所示:
图5.18 固定车主出入场设置界面
停车信息管理界面如图5.19所示:
图5.19管理停车场信息界面
功能描述:该模块是对固定车主的出入场设置以及停车信息进行管理。如图5.18所示,对车主进行入场设置,点击确定后就会在下面的表格中显示,点击停车信息管理按钮,就会出现如图5.19所示。设置出场,出场时间就会出现在停车信息表中。
功能描述:临时用户是一小时3元收费,固定用户是按次数收费。
查看打印信息如图5.22所示:
功能描述:该模块可以将用户的消费情况进行打印,公开,透明清楚。
密码修改、退出系统界面如图5.23所示:
5.23 系统功能操作界面
功能描述:该模块是对系统功能的一个操作,可进行修改密码。点击退出系统则会跳转到如图5.1的登录界面。
停车场管理系统设计完之后需要进行一系列的测试,调试过程中内部环境和外界因素的变化,会影响系统的运行和操作,当系统适应这些变化后,慢慢趋于完善,达到预期想要的结果,这就是系统测试从头到尾一直要做的工作。
根据本系统的功能情况,以黑盒测试为主,白盒测试为辅。黑盒测试:将项目看成一个黑盒子,在不去考虑项目其他情况、只知道系统功能进行的测试。它的任务就是检测系统的每个功能是否可以正常运行以及操作结果是否正确。白盒测试:与黑盒测试相反,是将项目看成一个透明的白盒子,要求操作员必须知道项目流程、项目代码,按照规格说明书的规定检测功能是否符合要求,对操作员要求较高。
表 6-1 用户登录
功能测试 | ||||||
概述 | ||||||
测试编号 | ZL001 | |||||
功能描述 | 用户登录 | |||||
功能URL | ||||||
用例目的 | 测试用户是否能登录成功 | |||||
前提条件 | ||||||
测试操作 | ||||||
编号 | 输入/动作 | 期望的输出响应 | 实际情况 | 是否正确 | 错误编号 | |
1 | 输入不存在的用户名,不填写密码 | 系统提示用户名或密码错误 | 系统提示登录名或密码错误 | 正确 | ||
2 | 输入正确的用户名输入错误的密码 | 系统提示用户名或密码错误 | 系统提示登录名或密码错误 | 正确 | ||
3 | 输入错误的用户名输入正确的密码 | 系统提示用户名或密码错误 | 系统提示登录名或密码错误 | 正确 | ||
4 | 不填写用户名及密码 | 系统提示用户名或密码错误 | 系统提示用户名或密码错误 | 正确 |
图6.1 登录密码错误功能图
图6.2 登录账号错误功能图
-
-
- 添加临时车主
-
表 6-2 用户登录
功能测试 | ||||||
概述 | ||||||
测试编号 | ZL002 | |||||
功能描述 | 添加临时车主 | |||||
功能URL | ||||||
用例目的 | 测试添加临时车主是否能成功 | |||||
前提条件 | 进入添加临时车主界面 | |||||
测试操作 | ||||||
编号 | 输入/动作 | 期望的输出响应 | 实际情况 | 是否正确 | 错误编号 | |
1 | 不输入临时IC卡及车牌号 | 临时IC卡号或者车牌号不能为空 | 临时IC卡号或者车牌号不能为空 | 正确 | ||
2 | 不输入临时IC卡卡号 | 临时IC卡号或者车牌号不能为空 | 临时IC卡号或者车牌号不能为空 | 正确 | ||
3 | 输入的临时卡号重复 | 主键重复,数据添加失败! | 主键重复,数据添加失败! | 正确 |
图6.3 添加车主临时IC卡号或车牌号为空图
图6.4 添加车主临时IC卡号重复图
-
-
- 添加角色信息
-
表 6-3 角色信息添加
功能测试 | ||||||
概述 | ||||||
测试编号 | ZL003 | |||||
功能描述 | 添加角色信息 | |||||
功能URL | ||||||
用例目的 | 测试添加角色信息 | |||||
前提条件 | 进入添加角色信息界面 | |||||
测试操作 | ||||||
编号 | 输入/动作 | 期望的输出响应 | 实际情况 | 是否正确 | 错误编号 | |
1 | 不输入角色编号 | 请填写此字段。 | 请填写此字段。 | 正确 | ||
2 | 不输入角色名称 | 请填写此字段。 | 请填写此字段。 | 正确 | ||
3 | 输入重复的角色编号 | 主键重复,数据添加失败! | 主键重复,数据添加失败! | 正确 |
图6.5 添加角色信息编号或者角色名称为空图
图6.6添加角色信息编号重复图
本系统采用MVC+J2EE+MYSQL实现。JSP用于页面的设计,Java用来处理后台跳转、对数据库操作,实现对数据库的增、删、改等操作。使用是Tomcat8.0作为WEB服务器,提供适应性强的Internet服务器功能,具有很高的执行效率。
本次停车场管理系统能够满足用户的基本需求,方便快捷,既节省了时间,提高了效率,又节约了开发成本,给人们生活带来了极大的改善。
xx年xx月,毕业论文工作伴随我而来,时至今日,论文基本完成。从当初的茫然,不知所措,到慢慢的进入状态,再到对思路逐渐的清晰掌控,整个写作过程难以启齿。几个月的艰苦奋斗,紧张而又充实的毕业设计终于画下了圆满的句号。回想起这段日子的经历,思绪万千,在这次毕设的过程中,让我收获颇丰,回忆满满。
在一开始选题的时候有点茫然,不知道该设计一个怎样的项目,想东想西,迟迟落不下决定,这个时候导师给了关键的性的建议,从生活入手,才敲定了停车场管理系统,伴随着经济发展,汽车的使用量也日益突增,停车难这个问题日益凸显,为了能为社会贡献自己的一份力,毅然决然的打算着手写一个停车场管理系统的项目。渐渐地思路明确。开题报告随之迎来,功能要求要有特色,新颖,一开始就只想到了一些基本的功能,并没有达到要求。经过导师细心的指导和提出宝贵的建议,再加上自己所查阅的资料,一遍又一遍的改正,终于将问题都解决了,自己也对这个项目有了新的认识。
随后,便开始了论文的编写和项目的设计。在写作和实际过程中遇到的问题我就及时和导师联系,或者向同学请教,相互交流,或者请教专业课老师。在大家的帮助下,一个个困难迎刃而解,论文和项目也慢慢成型。
这几个月的时间历历在目。毕业论文的制作是我人生中宝贵的回忆。为了做调查而奔波于人海之中以及在书海中寻找自己所需参考资料而往返于图书馆和宿舍。每当找到所需的参考资料时的那种兴奋心情,那是无法言语的。好像一切的一切都是值得的。在此过程中,我收获颇丰。更加熟练的掌握了java编程,B/S交互以及jQuery使用。对于UML类图的绘画更加清晰,且将之前所学的东西可以更好地融合。在今后的日子里,我要将学无止境、不耻下问、敢于创新、坚持不懈的态度继续保持下去,做一个不让自己后悔的人。
在这次毕设中使我和老师、同学的关系也更进一步了,大家相互帮助,不懂就问,倾听一下对方的看法,或许就有新的收获,所以,在这里感谢不厌其烦给我解惑的同学们。更要感谢我的导师和专业老师,细心指导,使我的论文顺利完成。同时由于技术问题和知识面的局限,项目功能不是很完善,数据安全性和网页兼容性以及效率还有待提高。争取在以后的学习中进一步将其完善,做得更加完美。
标签:Web,String,IC卡,车位,信息,停车场,源码,id From: https://blog.csdn.net/JW_559/article/details/139249807