【《基于JAVA的保安巡逻打卡系统设计与实现》10000字(论文)】_第1页
【《基于JAVA的保安巡逻打卡系统设计与实现》10000字(论文)】_第2页
【《基于JAVA的保安巡逻打卡系统设计与实现》10000字(论文)】_第3页
【《基于JAVA的保安巡逻打卡系统设计与实现》10000字(论文)】_第4页
【《基于JAVA的保安巡逻打卡系统设计与实现》10000字(论文)】_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

基于JAVA的保安巡逻打卡系统设计与实现目录TOC\o"1-3"\h\u80121.前言 【内容摘要】本文阐述了如何解决保安巡逻是否在岗的问题。该系统使用高德地理围栏API、JAVA语言、MySQL数据库等技术开发一个基于高德地图API的地理围栏打卡APP(Application)。此APP实现了用户注册登录界面,运用高德地图API创建一个地理围栏,通过定位保安的位置,判断保安是否处于地理围栏内,保安进入围栏打卡成功;并使用MySQL数据库进行打卡数据的存储。【关键词】保安巡逻打卡、高德地理围栏前言1.1选题的目的和意义如今,互联网技术正猛烈地发展起来,地理围栏技术逐渐深入到人们的生活中。地理围栏是LBS(LocationBasedService)的一种新型应用,它随着GPS(全球定位技术)和数据处理技术的不断成熟得到了进一步发展。近几年,这方面的技术已经取得了一定的突破,国内以及国外的许多互联网公司都在利用地理围栏技术来开发自己的产品。[2]地理围栏技术在用户进入某个特定的区域后,就会自动给用户的手机推送相关服务信息,比如商场里的各种店铺的分布情况等等;运输行业中,机场、火车站、地铁转运站针对旅客进行信息推送;幼稚园和老人院可以使用地理围栏技术来设置安全区域,老人和儿童可以安全活动的地方,也可以设置一个危险区域,当老人和儿童去到危险区域时就能够及时发现,避免意外发生,从而确保老人和儿童的安全。保安巡逻就是指保安公司派遣保安到客户居住生活的场所进行巡逻、查看等任务,而且必须根据服务合同执行,确保客户的生命财产安全。[1]目前的保安巡逻打卡就是简单的在工位上进行签名签到,无法保证保安本人是否签完到后能在岗位上继续巡逻的工作。地理围栏的运用,就是在一个固定的区域用一个虚拟的围栏,围出一个基本上是圆形的虚拟地理范围边界,只有当保安进入围栏内时,才会通过GPS进行定位,打卡成功。这样,用地理围栏技术就能保证保安在对应的地理围栏内打卡签到。1.2前人研究现状在我国,第一个能够实现地理围栏服务功能并且提供给开发人员使用的就是百度的地理围栏技术。很多的开发人员已经开始使用这个技术开发了许多相关的应用。近期很火的使用到地理位置服务的社交应用,如GeGe,Miracle,GitHub等,都使用了百度的地理围栏技术来实现各种基于位置服务的功能。[2]Intel地理围栏技术能够在移动应用的平台上,把用户以及用户周边的各种位置信息整合起来,从而使得移动平台应用能够更加便利地为各种用户群体服务。Intel地理围栏技术的有着它自身的亮点,能够适中地调节系统的待机时间,降低系统耗电量,也能调节系统的响应时间,使得用户有一个更舒适的使用过程。该系统具有多地理隔离,情景感知等特点。[2]如今,共享单车随处可见,数量不断增多,这就导致了许多城市都出现了共享单车的管理问题,一直困扰着相关人员。为了解决这个问题,提出了利用百度地图上的电子地图的功能;这个电子地图能够在一个固定位置区域随机地划分出一个虚拟的电子围栏,通过GPS技术,定位到每一辆共享单车的位置;市民使用完共享单车之后,就要放到附近的划分的虚拟围栏内,当共享单车进入围栏后,就会被允许可以停放在此围栏内;但是共享单车不在地理围栏区域的时候就不会允许上锁,也就不能停放。使用这种地理围栏技术就能保证市民能将共享单车规范的停到指定的位置区域。[3]1.3地理围栏简介地理围栏技术将虚拟栅栏与地理边界隔开,是用虚拟的围栏围出一个虚拟的地理界限。[4]当我们的移动设备就是手机进入或者远离某个设定的区域时,通过定位,我们就可以自动收到关于这个位置区域的通知和劝告,在该区域活动时同样也会收到信息。地理围栏技术把地理区域划分为一个个网格,在被网格化之后,每个围栏内都有独立的应用需求分组图,终端用户可以通过自身或借助网络进行识别,用户的围栏信息可以共享,是一种双向互动。1.4本文主要研究内容在通过对目前的保安巡逻方面的搜索与研究,发现目前的保安巡逻大多数还停留在用纸质版签到的方式进行简单的到岗巡逻。随着社会经济的发展,各种地区也逐渐快速发展起来,就像我们身边的学校、小区等等,这些地方的占地面积会不断的扩大,那么随之而来的安保问题也就越来越受到重视,保安巡逻是在这些地区预防犯罪的主要手段之一。在基于高德地图API的地理围栏功能上,本课题开发了一个基于电子围栏的保安巡逻打卡的APP。系统分为三个模块,用户模块,地理围栏打卡模块,打卡数据存储模块。APP运用Androidstudio来进行开发,在高德平台上下载相关的定位SDK进行定位,创建地理围栏,并设置用户的登录界面,通过JDBC连接云服务器上的数据库来进行保安巡逻打卡数据的存储。本课题的目的就在于使用地理围栏来规范保安的巡逻制度,确保保安能够真正的到岗巡逻,确保客户的安全,而不是在签到过后就不知道去向,这样学校、小区等等这些地方的人员安全无法保证,危险的情况随时发生,在定位的基础上实现地理围栏功能,保安在岗巡逻的问题可以随时解决。图STYLEREF1\s1-SEQ图\*ARABIC\s11保安巡逻打卡系统功能模块图保安巡逻特点及出现的问题2.1保安巡逻的特点(1)安全巡逻需要范围广泛的目标。与其他职责相比,治安巡逻的对象和范围更加广泛。[1](2)还有很多不确定性。由于保安巡逻的范围很广,在巡逻时难免会发生一些不可预料的突发事件。所以就需要保安应对突发事件是能够沉着冷静,对一些比较危险的地方多加注意。(3)保安巡逻并不是一个静态的过程。整个巡逻队就是一个动态的管理系统,保安巡逻需要较长的一段时间,因此,保安就需要对自己保护的对象以及周围的环境、范围等等有一个全面的了解,以便实施各种安保措施。[1](4)具有特异性特征。安保巡逻的范围和目的都是明确的,就是要确保客户的生命财产安全,保证客户生活在一个健康安全的环境内。2.2保安巡逻打卡中会出现的问题警备巡逻队是指巡视所在地区或某地区的治安状况,排查各种违法犯罪行为。随着现在经济的快速发展,各种小区、学校等公共场所的规模逐步扩大,随之也会建起许多居民住宅楼,新型公寓楼等等,人口也越来越多,外来人作案的几率就会高很多,且很难被发现,居民的家中长时间没有人,空隙死角多等原因,大大提高了治安管理的难度,各种治安形势日趋复杂。[5]因此,保安巡逻在维护社会稳定和日常生活管理中都有着非常重要的作用。但也会存在着一些问题,主要表现在:(1)保安人员管理体制不够完善。目前的保卫人员,并没有经过专门人员的训练,也没有专门进行培训,当遇到紧急情况或者发生突发事件的时候,不能够冷静处理。(2)未采取可靠的安全措施。对于一些突如其来的案件,比如偷盗抢劫等,应对的反应比较慢,不能及时有效地采取相对应的措施。(3)保安签到制度不够完善。目前的绝大多数实行的是纸质版签到,无法确保保安在岗巡逻,如遇突发事件无法及时解决,人员的安全极易收到威胁。[5]相关技术3.1Android布局框架3.1.1相对布局RelativeLayout布局框架RelativeLayout是Androidstudio里五种框架界面设计之一,是相对布局框架。要开发一个安卓APP,首先得要有一个简洁美观的界面,要设计这些界面,就要根据APP的功能需要来掌握相对应的框架布局。RelativeLayout布局是目前开发者经常使用的,它可以根据相对位置来计算控件的位置,而后者的位置取决于前者的位置。所以说它相对于其他布局来说是比较机敏的。在此应用中使用相对布局来设计打卡界面、用户的登录界面和查看打卡记录的界面。3.1.2线性布局LinearLayoutLinearLayout是Androidstudio里的线性布局框架,也是最简单常用的一种框架。线性布局会让控件能在线性方向上依次排列,可以提供水平或者垂直排列。通过设置控件中的width参数来设置布局容器的宽度,height设置布局容器的高度。现行布局的定义方式有两种,一种是在xml布局文件中进行定义,另一种就是在程序中使用代码来动态定义。最为便捷的就是创建xml布局资源文件。3.2生命周期感知框架大多数程序组件都具有Android框架的生命周期。如果程序不依赖生命周期进行工作那么应用就有可能会崩溃。识别生命周期的一个常见模式是使用activity和fragment的生命周期方法来实现监听组件的各种功能。通常activity都继承于AppCompatActivity,AppCompatActivity实现了LifecycleOwner接口。[7]创建好Activity之后,还需要在配置文件中注册要运行的Activity。如REF_Ref24698\h图STYLEREF1\s3-1是Activity的生命周期图:图STYLEREF1\s3-SEQ图\*ARABIC\s11Activity的生命周期高德地图API4.1高德地图API简介高德地图API是一套用户开发应用程序的应用接口。它可以提供定位、地图、导航、实现室内定位等各种各样的定位服务。具有定制地图、高德商务车等特色产品。[8]现在这个发展飞速时代,我们依靠着互联网产品来丰富我们的生活,当我们去旅游的时候,就需要用到定位技术来查找附近相关的景点、美食、酒店等等,这都是必不可少的。这些应用的执行必须知道我们的具体位置,才能为我们推荐各种服务,所以,定位技术已经深入到我们的日常生活中去了。高德定位技术就被运用到现在的许多领域中,比如出行、社交、新闻、天气等等。[9]高德地图以各种各样的定位为基础,正是因为有了基于混合定位模式的高德地图SDK,不论你是在家里还是在外面工作的高楼里,亦或者是在密林深山里面都能够实现准确定位。4.2地理围栏API运用本设计使用高德开发平台提供的Android定位SDK以及地图API的地理围栏功能来实现基本的定位和围栏内打卡的功能。[10]首先,在高德开发平台注册一个自己的账号,在官方网站的控制台上取得高德Key,拿到秘钥后就可以开始调用。(1)创建一个新的项目,进去首页就可以创建一个新的

EmptyActivity的应用程序项目。(2)高德平台提供有相对应的开发包,我们只要下载相对应的开发包就可以了。如REF_Ref508\h图STYLEREF1\s4-1所示:图STYLEREF1\s4-SEQ图\*ARABIC\s11下载开发包(3)Androidstudio配置工程首先需要通过复制集成定位SDK。将下载的jar文件复制到工程中的libs目录中,[11]如果还有旧版本的定位jar文件,需要将它删除。接下来就可以配置build.gradle文件,这样,Androidstudio的环境配置就基本完成了。(4)Android配置完成后,就可以在这套定位SDK的基础上使用地理围栏功能,将代码写入,创建自定义的地理围栏。系统需求分析本系统是基于电子围栏以及Android定位来开发的保安巡逻打卡系统。主要是运用地理围栏功能来确保保安能够在岗巡逻,同时在远程也能够查看到保安的登录记录以及打卡记录。系统的主要功能就是地理围栏打卡功能,通过高德地图的定位功能,来实现定位,还具备有用户登录注册功能,打卡记录查询功能。需求分析分为功能分析和系统的可行性分析两个部分。5.1功能分析5.1.1定位功能地理围栏打卡功能要在能实现用户定位的基础上进行。定位功能的实现依靠高德地图提供的Android定位SDK,利用接收到的经纬度信息在地图上显示。地图能够缩放大小,实时显示用户即保安的位置,在地图上也能够显示设定好的地理围栏的位置。保安在定位之后开始巡逻,进入地图上的地理围栏范围后就可以打卡。5.1.2地理围栏打卡功能本系统主要的功能就是在基于地理围栏的基础上实现保安巡逻过程中的打卡。同样是使用高德开发平台上提供的地理围栏功能,创建自定义的围栏,同时创建一个保安打卡的活动,活动按钮在定位界面显示。当保安进入到围栏范围或者停留在围栏内是,系统就会弹窗显示保安当前的状态;保安进入围栏就可以进行打卡,打卡记录就会存储在数据库中。5.1.3查看打卡记录功能打卡记录查看分为保安在应用中查看以及远程查看。保安可以在成功打卡之后点击“打卡记录”按钮查看到自己当前的打卡记录,打卡记录通过数据库显示,打卡账号、时间以及在哪个围栏内打了卡这些都可以看到。远程查看就是在云端的数据库中查看到保安的打卡记录。5.2可行性分析5.2.1技术可行性从技术方面看,本系统基本都是在安卓平台进行开发,使用Java语言写入程序,系统是一个打卡APP,整体难度不是很大,软件环境的开发并不是很难。需要下载Android定位SDK以及使用云端数据库来对保安的登录以及打卡数据进行存储、查阅。学习好Android技术,具备一定的开发经验就可以进行系统的开发。系统开发平台(1)硬件平台CPU:AMDA6-7310APUwithAMDRadeonR4Graphics2.00GHz;内存(RAM):4GB;(2)运行环境操作系统:Windows7旗舰版64位操作系统;开发语言:Java;系统设计与实现系统客户端实现保安的注册登录功能以及打卡功能。登录打卡数据通过云服务器存储到数据库中。通过GPS定位到保安的位置,高德地理围栏功能判断保安是否进入围栏。如REF_Ref635\h图STYLEREF1\s7-1是系统的整体架构图。图STYLEREF1\s7-SEQ图\*ARABIC\s11系统架构图7.1数据库7.1.1MySQLMySQL是一种关系型数据库管理系统,可以使用SQL进行操作和管理,拥有体积小,易于维护,占用空间小等特点,在软件系统中得到了广泛的应用。MySQL多种编程语言提供了相应的API,开发人员只需设置相应的驱动程序,就可以编写SQL语言对数据库进行增删改查,利用Java语言进行保安打卡系统应用的开发,可以通过MySQL厂商提供的JDBC驱动jar包,用Java语言操作数据库。[12]在官网上下载好MySQL,并对MySQL进行基本的配置。[13]7.1.2NavicatpremiumNavicatpremium是一款用来管理数据库的工具,本系统使用这款工具来实现远程查阅保安的登录以及打卡的信息,这样就确保了保安打卡的唯一性。打开软件后就可以在里面连接到自己的数据库,也可以在里面登录自己的数据库进行操作。它可以很多资料库之间简单快速地传输资料,比如MySQL数据等。因此,它能更方便的管理不同类型的资料库。[14]7.1.3数据库设计使用JDBC在Android上直接操作MySQL数据库。就是用Java语言来执行SQL命令,非常的方便。通过这种方式,就可以在Navicatpremium远程查看到用户的登录信息以及打卡记录。[15]在官网上下载好“mysql-connector-java-5.1.48-bin.jar”这个包,将它添加到Androidstudio中的libs目录里面。写入访问数据库的代码。之后就设置好主要的连接信息;选择连接到云服务器的IP。添加JDBC驱动,通过JDBC连接数据库。[16]当保安成功打卡之后,打卡数据就会通过云服务器存储到数据库中,在可视化工具里就可以查看到保安的具体打卡数据。7.1.4数据表设计对系统进行了功能需求分析,得到系统需要的数据,设计数据库。系统实体主要包括下列对象,用户对象user,打卡记录对象history。在这里,根据用户对象以及打卡记录对象设计了两个数据库表。包括用户登录信息表(userinfor),用户打卡记录信息表(history)。7.1.5数据表详情1.用户登录信息表用户登录信息表(userinfor)如REF_Ref1853\h表STYLEREF1\s7-1,用来记录用户注册以及登录的信息,用户id为该表的主键。表STYLEREF1\s7-SEQ表\*ARABIC\s11用户登录信息表参数名称数据类型字段大小是否为主键描述idint10是用户idaccounttest255否账号passwordtest255否密码2.用户打卡信息表用户打卡信息表(history)如REF_Ref922\h表STYLEREF1\s7-2,存储用户的ID(id),打卡地点的名称(name),用户账号名(user),打卡时间(time),用户id为该表的主键。表STYLEREF1\s7-SEQ表\*ARABIC\s12用户打卡信息表参数名称数据类型字段大小是否为主键描述idint10是用户idnametest255否打卡地点名usertest255否用户账号timedatetime10否打卡时间7.2用户注册功能设计保安需要先注册属于自己的一个账号。在AndroidMainfest文件中将注册账号的activity添加进去,在布局文件activity_register.xml中添加TestView、EditTest、Button等控件,并设置相应的属性。用户填写注册信息后,向服务器发送请求。图STYLEREF1\s7-SEQ图\*ARABIC\s12注册界面图STYLEREF1\s7-SEQ图\*ARABIC\s13注册流程图注册主要实现代码:publicvoidonClick(){if("".equals(account)){Toast.makeText(this,"要输入账号哦",Toast.LENGTH_SHORT).show();return;}elseif("".equals(password)){Toast.makeText(this,"要输入密码哦",Toast.LENGTH_SHORT).show();return;}DialogUIUtils.dismiss(mBuildBean);Toast.makeText(getApplicationContext(),“此账号已存在”,Toast.LENGTH_LONG).show();Toast.makeText(getApplicationContext(),state?"注册成功,请登录":“注册失败”,Toast.LENGTH_LONG).show();DialogUIUtils.dismiss(mBuildBean);if(state){finish();17.}18.}19.});7.3用户登录功能设计用户注册后可以进行登录。登录功能逻辑与注册相似。用户正确输入登录信息后,向服务器发送登录请求,没有问题就可以登录成功。图STYLEREF1\s7-SEQ图\*ARABIC\s14登录界面图STYLEREF1\s7-SEQ图\*ARABIC\s15登录流程图登录功能主要实现代码:publicvoidonClick(Viewview){if("".equals(account)){Toast.makeText(this,"请您输入账号",Toast.LENGTH_SHORT).show();return;}elseif("".equals(password)){Toast.makeText(this,"请您输入密码",Toast.LENGTH_SHORT).show();return;}Toast.makeText(getApplicationContext(),"对不起,密码错误啦!",Toast.makeText(getApplicationContext(),"密码错误或无此账户!",Toast.makeText(getApplicationContext(),"对不起,登录失败啦",Toast.LENGTH_SHORT).show();DialogUIUtils.dismiss(mBuildBean);}});7.4地理围栏打卡模块设计与实现用户登录成功后点击登录按钮进入到地图定位页面,运用Android定位SDK实现定位功能。(1)打卡界面设置打卡界面如REF_Ref1889\h图STYLEREF1\s7-6,在activity_main.xml中设计定位打卡的界面,通过TestView控件在界面正下方设置一个“未到打卡点”的标签,用户在进入定位打卡界面后就会看到。在界面的右上角也设置一个“打卡记录”的标签,方便用户在打卡成功后查看到自己的打卡记录。图STYLEREF1\s7-SEQ图\*ARABIC\s16打卡界面(2)获取定位数据需要配置AndroidManifest.xml文件,第一步,声明service组件,然后声明好各种权限;加入自己申请的高德Key。声明AMapLocationClient类对象,创建AMapLocationClientOption对象,设置发起定位的模式和相关参数。使用setLocationListener()方法来设置定位监听,setInterval(1000)设置定位间隔为1000ms,setLocationMode()设置为高精度定位模式,setLocationListener()方法设置定位监听,startLocation()方法来启动定位,onLocationChanged()定位成功后回调函数,此方法每隔1000ms就会发起一次定位请求。激活定位的主要实现代码:1.publicvoidactivate(OnLocationChangedListenerlistener){2.mListener=listener;3.if(mlocationClient==null){4.mlocationClient=newAMapLocationClient(this);5.mLocationOption=newAMapLocationClientOption();6.mlocationClient.setLocationListener(this);7.mLocationOption.setInterval(1000);8.mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);9.mLocationOption.setOnceLocation(false);10.mlocationClient.setLocationOption(mLocationOption);11.mlocationClient.startLocation();12.}13.}(3)创建地理围栏只有定位开启成功后才能使用地理围栏的功能。声明地理围栏客户端fenceClient,定义地理围栏的中心点DPoint,创建围栏半径;将触发行为设置为进入围栏;主要方法如下:fenceClient.setActivateAction(GeoFenceClient.GEOFENCE_IN);使用drawFence()方法设置根据围栏类型决定绘制圆形围栏还是多边形围栏,drawCircle()绘制圆形围栏,drawPolygon()绘制多边形围栏,drawFence2Map()函数向地图添加围栏。绘制地理围栏主要实现代码:privatevoiddrawCircle(GeoFencefence){LatLngcenter=newLatLng(fence.getCenter().getLatitude(),fence.getCenter().getLongitude());mAMap.addCircle(newCircleOptions().center(center)5..radius(fence.getRadius()).strokeColor(Const.STROKE_COLOR)6..fillColor(Const.FILL_COLOR).strokeWidth(Const.STROKE_WIDTH));7.boundsBuilder.include(center);8.}使用onMapClick()方法在地图上点击标记地点,在logcat中查看标记地点的经纬度,将选中的经纬度写入DPoint中,就会在选中的地点创建围栏。此系统创建了三个地理围栏,分别命名为“一号点”(广西师范大学育才校区15舍公寓楼)、“二号点”(广西师范大学第二文科综合楼)、“三号点”(广西师范大学育才校区图书馆)。接收触发围栏后的广播,应用intent.getAction()方法接收广播。(4)打卡功能通过button.setOnClickListener将设置好的打卡按钮依赖到活动中,使用onClick(Viewview)的方法实现保安打卡事件的监听。线程类publicvoidrun()函数实现保安打卡功能。打卡功能主要实现代码:publicvoidrun(){if(state){Toast.makeText(MainActivity.this,enclosure1.getName()+"打卡成功",Toast.LENGTH_SHORT).show();}else{Toast.makeText(MainActivity.this,enclosure1.getName()+"网络不稳,请重新打卡",Toast.LENGTH_SHORT).show();}}});if(!isSuccess){runOnUiThread(newRunnable(){@Overridepublicvoidrun(){Toast.makeText(MainActivity.this,"未在区域,打卡失败",Toast.LENGTH_SHORT).show();}});7.5用户的打卡记录模块设计与实现在地理围栏打卡模块的右上角设置了一个activity即“打卡记录”的活动,用户在打卡成功之后会在打卡记录页面显示用户的打卡记录,包括用户的账号名,打卡的地点以及打卡的时间。(1)打卡记录界面设计在layout中使用相关布局架构RelativeLayout通过ListView组件能让打卡记录逐行列下来。只要打卡成功,记录就会存在其中。在左侧显示的是用户的名字,右侧显示打卡的地点和时间,这些信息会逐条显示在记录中。(2)打卡记录存储功能通过安卓的JDBC直接操作数据库,数据库连接到云服务器中,将保安的登录以及打卡数据存储到数据库中。使用ConnectionlikMySql()的方法连接数据库。主要实现代码:publicstaticConnectionlikMySql(){try{Class.forName(DBDRIVER);Log.e(TAG,"驱动加载成功");}catch(Exceptione){Log.e(TAG,"驱动加载失败\n"+e.toString());}try{conn=(Connection)DriverManager.getConnection(url,user,password);10.Log.d("DAO","连接成功!");11.returnconn;12.}catch(SQLExceptione){13.Log.d("MainActivity","连接失败!");14.}15.returnnull;16.}(3)保安自行查看打卡记录功能在打卡界面的右上角通过TextView组件设置一个打卡记录按钮。使用List这个类的方法,新建一个类MyListAdapte,写入getView方法,将云服务器数据库中的值存放在ListView中。新建一个HistoryActivity的类来显示保安的打卡记录。通过onCreate()函数进行一些初始化,设置一个标题栏,显示是哪个用户的打卡记录;Connectionconnection=DAO.likMySql()连接到数据库,通过run()函数查询用户的打卡记录。主要实现代码:publicvoidrun(){2.try{3.Connectionconnection=DAO.likMySql();4.ResultSetrSet=DAO.mysqlQuery("SELECT*FROMhistorywhereuser='"+account+"'",connection);5.if(rSet!=null){6.while(rSet.next()){7.Historyhistory=newHistory();8.history.setUser(rSet.getString("user"));9.history.setName(rSet.getString("name"));10.history.setTime(rSet.getString("time"));11.mList.add(history);12.}显示打卡记录信息界面如REF_Ref2000\h图STYLEREF1\s7-7:图STYLEREF1\s7-SEQ图\*ARABIC\s17打卡记录界面系统测试8.1测试说明系统测试是软件或者项目开发中不可缺少的一部分。[16]为了能够发现系统在实现和设计上的缺陷,一个好的测试计划可以极大地减少系统后期维护和升级的时间成本,提高开发效率。系统测试计划选择单元测试。测试时如果发现问题,就进行调试和修正。系统测试如REF_Ref2095\h图STYLEREF1\s8-1所示:图STYLEREF1\s8-SEQ图\*ARABIC\s11系统测试图8.2测试用例8.2.1注册功能测试表用例名称注册功能测试测试条件打开Androidstudio,连接云服务器上的数据库,连接到手机(小米8),开始运行应用测试地点三号点(广西师范大学育才校区图书馆)测试步骤1.填写好注册信息,包括账号和密码2.单击注册测试结果若账号没有输入,则显示“账号不能为空”若密码没有输入,则显示“密码不能为空”若注册账户已存在,则显示“账号已存在”若注册账号密码无误,跳出提示“注册成功,请登录!”测试结论符合预期要求表STYLEREF1\s8-SEQ表\*ARABIC\s11注册功能测试表测试抓图如REF_Ref2470\h图STYLEREF1\s8-2、REF_Ref2542\h图STYLEREF1\s8-3、REF_Ref2572\h图STYLEREF1\s8-4、REF_Ref2598\h图STYLEREF1\s8-5:图STYLEREF1\s8-SEQ图\*ARABIC\s12账号不为空图STYLEREF1\s8-SEQ图\*ARABIC\s13密码不为空图STYLEREF1\s8-SEQ图\*ARABIC\s14账号存在图STYLEREF1\s8-SEQ图\*ARABIC\s15注册成功8.2.2登录功能测试表用例名称登录功能测试测试条件打开Androidstudio,连接云服务器上的数据库,连接到手机(小米8),开始运行应用测试地点三号点(广西师范大学育才校区图书馆)测试步骤1.用户输入账号以及密码2.单击登录测试结果若账号密码为空,则显示“请输入账号或密码”若密码输错,则显示“密码错误”若账号还没有注册,则显示“密码错误或无此账号”测试结论符合预期要求表STYLEREF1\s8-SEQ表\*ARABIC\s12登录功能测试表测试抓图如REF_Ref2879\h图STYLEREF1\s8-6、REF_Ref2908\h图STYLEREF1\s8-7、REF_Ref2931\h图STYLEREF1\s8-8:图STYLEREF1\s8-SEQ图\*ARABIC\s16输入账号图STYLEREF1\s8-SEQ图\*ARABIC\s17输入密码图STYLEREF1\s8-SEQ图\*ARABIC\s18密码错误8.2.3围栏打卡功能测试表表STYLEREF1\s8-SEQ表\*ARABIC\s13围栏打卡功能测试表用例名称围栏打卡功能测试测试条件打开Androidstudio,连接云服务器上的数据库,连接到手机(小米8),开始运行应用测试地点三号点(广西师范大学育才校区图书馆)测试步骤1.进入到围栏打卡界面,开始定位2.没进入地理围栏范围内时点击“未到打卡点”按钮3.进入围栏范围后点击“打卡”按钮测试结果若应用定位失败,则系统提示“定位失败”若未进入围栏就打卡,则系统提示“未在区域,打卡失败”若进入围栏打卡,则系统提示“打卡成功”测试结论符合预期要求测试抓图如REF_Ref3176\h图STYLEREF1\s8-9、REF_Ref3202\h图STYLEREF1\s8-10、REF_Ref3231\h图STYLEREF1\s8-11:图STYLEREF1\s8-SEQ图\*ARABIC\s19未在区域打卡图STYLEREF1\s8-SEQ图\*ARABIC\s110进入围栏图STYLEREF1\s8-SEQ图\*ARABIC\s111打卡成功8.2.4用户查看打卡记录测试表表STYLEREF1\s8-SEQ表\*ARABIC\s14用户查看打卡记录测试表用例名称用户查看打卡记录测试测试条件打开Androidstudio,连接云服务器上的数据库,连接到手机(小米8),开始运行应用测试地点三号点(广西师范大学育才校区图书馆)测试步骤1.进入到围栏打卡界面,开始定位2.进入围栏范围后点击“打卡”按钮3.点击右上角“打卡记录”,进入打卡记录界面测试结果在打卡记录界面可以看到用户刚刚打卡成功的记录,包括用户名、打卡地点以及打卡时间测试结论符合预期要求测试抓图如REF_Ref3368\h图STYLEREF1\s8-12:图STYLEREF1\s8-SEQ图\*ARABIC\s112打卡记录8.3测试数据表表STYLEREF1\s8-SEQ表\*ARABIC\s15测试数据表测试设备打卡时间测试地点测试结果数据存储MI8Lite2021.04.2916:48广西师大图书馆进入围栏后打卡成功打卡信息成功存到数据库中MI8Lite2021.04.2913:30广西师大15舍进入围栏后打卡成功打卡信息成功存到数据库中MI8Lite2021.04.2917:32广西师大二文楼进入围栏后打卡成功打卡信息成功存到数据库中HUAWEIMED-AL202021.04.3015:35广西师大图书馆进入围栏后打卡成功打卡信息成功存到数据库中HUAWEIMED-AL202021.

温馨提示

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

评论

0/150

提交评论