版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论1.1研究背景据调查,目前我国的大多数高校,仍采用传统的手工作业或者半手工作业方式来进行学生参会打卡的管理。在移动互联网快速发展的今天。信息化建设已成为必然,高校建设已将数字化校园建设放在建设的首要位置。如何对学生学习活动全过程的动态监控,成为校园管理中需要解决的重要问题,而打卡系统也成为了必不可缺少的一部分[1]。参会打卡系统设计目的主要是用来解决当前人工打卡管理过程中有效信息混乱、效率较低、数据不利于统计的现状问题不利于高校对学生管理,基于当前智能手机普遍应用的现状,将Android作为开发平台,具有较高的适用性、使用方便,具有很高的研究价值[2]。1.2发展现状分析近年来,越来越多的高校注重提高学生综合素质,在学校开展各项各类座谈会。但是因为学生个人的原因以及开会学生基数庞大且传统打卡方式效率低或者设备缺少的情况造成打卡秩序的混乱以及打卡信息不具有一定程度的真实性。而其中有相当一部分会议安排在教学时段,学生不进行打卡参会又具有极大的安全隐患。教师在学生考勤打卡时仍然采取点名、手工记载等方式,费时费力且容易代答代签。而对于指纹识别、人脸头像识别等新型技术,由于设备比较昂贵、实施成本高,不适合大规模推广。并且现有的手工方式和图像识别系统都有明显的不足,那就是信息滞后,这几类都无法在第一时间获取实时信息[3]。鉴于当前的高校参会打卡系统比较低效,以及移动终端的普及和Android技术的成熟,想开发一款基于移动终端的低成本学生参会打卡系统。以提高高校学生参会打卡的效率和准确率,降低打卡过程中对人的依赖性,提高打卡信息实时性,在智慧校园建设中,本系统探索了一种新方式和新的技术路线,为高校教学和学生日常管理提供了有力的帮助[4]。在另一方面Android平台也有较为良好的系统肉眼,移动平台设计者发布了旨在优化应用程序的具体指南和工具[5]所以基于Android系统无疑是提高用户使用体验的最好办法。云服务器又称云主机,它的出现主要面向各个企业用户与对网络数据管理有需求的用户提供基于互联网的设施服务。随着云计算科技的发展网络各家大型企业都推出了自己的云计算服务。当然云服务器就属于其中之一。因为云服务器用户群体庞大并且对用户对云主机应用的需求日益增加,云服务器的大量租用使得越来越多高品质的网页和产品呈现的我们眼前,当然用云服务器做后台的软件也是数不胜数。1.3选题的意义学生在参会时会打卡签到,效率低下的打卡方式造成打卡时人流拥挤。并且大多数同学因为自觉性不强和学校会议打卡考勤监管不力的原因造成许多代签或者浑水摸鱼等情况。使得打卡秩序混乱至极。因此提高打卡效率;检测和数据汇总成为了难点设计有效的参会打卡系统。对学生打卡信息进行统一化管理,此处列出几点明显的不足:1. 打卡工作量大,需要值守。2. 数据混乱难以管理。3. 监督不力浑水摸鱼情况多。4. 打卡费时费力且效率低。实现学生参会打卡的便利性,成为了迫切之需。本文主要是以提高学生参会打卡效率;签到打卡数据的真实性和时效性,减少或者淘汰传统的会议考勤人员。减少管理人员整理或者发布会议信息的工作压力。方便领导和辅导员能更好的对学生综合素质进行考察为目的。并且应用当下比较成熟的移动Android系统和云服务器技术,设计出一款基于Android的学生参会打卡系统。使学生参会打卡变得更加高效化智能化。1.4本论文的结构安排第一章绪论,介绍了学生参会打卡系统发展历程和本课题研究意义。第二章需求分析,详细解析了学生参会打卡系统需求,并简绍本系统关键技术。第三章系统总体设计,简单描述了本系统的基本架构和各个模块的功能。第四章系统的实现,展现了整个系统前端Android和后台云服务器的主要功能实现以及对应的功能代码的图文解析。第五章系统的测试,介绍了测试的主要功能节点以及具体的测试方法。第六章总结与展望,对基于Android的学生参会打卡系统的设计、实现和完成概况进行总结,分析当前系统有哪些不完善需要改进或者进一步研究的地方。并对未来技术的展望。2学生参会打卡系统需求分析和实现工具PAGE142学生参会打卡系统需求和实现工具2.1功能需求分析方案设计是对传统半手工和全手工参会打卡系统的不足进行优化改良的结果。在本设计设计之初对传统参会打卡方式进行了研究。发现了存在硬件设备少考勤人员但参会人员多等诸多问题。本文是针对高校参会打卡系统的智能化方便化的改良设计,同时对高校于基于Android的参会打卡系统进行了需求分析,得出一个较为完善的设计方案。2.1.1学生参会打卡流程分析传统参会打卡系统分为全手工和半手工两种详见图2.1,这是对传统参会打卡系统的一个简单的总结。全手工的方式采用部署考勤人员纸质签到打卡。这是最原始也是对资源浪费最大的方式。而半手工方式是基于校园卡-打卡机的方式最终数据汇总用Web进行查看管理,通过网络极大提高了签到效率,但因为打卡机数量有限参会学生多所以依然会存在打卡时排长队的现象。所以本文提出更加方便的基于Android的参会打卡系统。以下分为打卡过程和数据处理过程分析。图2.1参会打卡系统流程图1.打卡过程打卡过程是学生参加会议时,使用已经安装并且注册登陆好的参会打卡系统app。领导及辅导员可自行决定在会议进行的任意时间在会议室通过会议ppt或张贴的方式发布含有会议信息的二维码供学生扫描。扫描成功后学生在会议室点击定位按钮获取实时位置信息,获取成功后方可点击签到按钮,手机将发送签到信息到云服务器。App会提示服务器的反馈信息。具体过程由图2.2所示。图2.2打卡过程流程图2.出库过程云服务器在接受Android前端发来的数据后,立刻开始将数据中的信息与服务器数据库里的信息进行比对。首先是扫描二维码的会议信息通过和记录会议信息以及地点的数据库里的数据进行对比,确认会议信息是否真实有效。将定位信息即实时精确的经纬度和记录会议室经纬度的数据库数据进行对比。如果两次对比数据均真实有效则打卡成功并将打卡信息新增至学生打卡信息数据库里。并向手机端返回打卡签到成功的信息。反之信息比对不成功则直接返回打卡失败的信息。这就是数据处理流程详见图2.3.。图2.3数据处理过程流程图2.1.2用户角色需求分析通过对参会打卡流程分析后,基于Android的学生打卡系统的主要人员分配如下图图2.4所示。图2.4参会打卡系统角色需求1.参会学生参会学生时本文基于Android的学生参会打卡系统的主要服务对象。参会学生的主要任务是安装app后注册填入自己的学生信息即学号等。然后参加会议时在扫描由老师提供的含有会议信息的二维码。在正确的会议室即开会地点成功获取实时的经纬度。在一切操作都完成后点击签到按钮上传签到信息。然后查看返回的签到结果。详见下图2.5所示。图2.5参会学生权限图2.管理人员管理人员主要负责三个数据库信息的管理。如学校即将举办新的会议那么就要将会议名称和会议地点正确导入记录会议信息的数据库中。如果学校要新增会议室即开会场地将要将新的会议地点以及会议地点精确的经纬度数值正确填入记录会议室信息的数据库中。原则上管理人员对学生打卡信息数据库的数据可以不做管理。但是必要情况下还是可以进行修改等操作,并且管理人员要对整个云服务器进行维护等。管理人员权限图如图2.6所示。图2.6管理人员权限图3.领导及辅导员在领导视察学生参会情况和辅导员对学生综合素质进行考评时往往需要学生综合素质的考评。那么学生的参会信息就显得比较重要了,在传统的半手工参会打卡系统中通过Web查看数据库信息已经相对成熟。那么这里就不会进行更改在网页里领导及辅导员能更直观的查看学生的参会信息。并且在会议时领导及辅导员还充当着发布会议信息二维码的重要职务。详见图2.7图2.7领导及辅导员权限图2.1.3系统功能需求分析通过之前对传统参会打卡方式的分析和基于Android的学生参会打卡系统的打卡流程和数据处理流程的简单介绍。总结出基于Android的学生参会打卡系统的功能需求的明确概念。首先此系统分为两个部分完成。前端的Android与后端的云服务器。信息采集由手机Android完成而数据处理则由云服务器完成。通过网络传输信息能对打卡信息进行便捷的管理与修改。验证打卡地点同时也大幅度提高了数据的真实性。本文的设计对于参会打卡系统的效率有了极大的提高。具体功能需求详见图2.8。图2.8学生参会打卡系统功能需求图2.2关键技术2.2.1Android简介众所周知Android系统是基于Linux的操作系统并且因为它的开源开放受到大多数用户的喜爱。最开始Android主要使用于移动设备,但是随着技术的快速发展一些新的基于Android的智能设备也出现在我们的眼前,如智能手表;平板电脑;智能电视;机顶盒等。起初由Google公司和开放手机联盟领导到如今越来越多开发者的投入,Android系统应用开发前景极为可观。Android开发由四大组件构成它们分别是:用于表现功能的Activity(活动);只在后台运行提供前台支持的Service(服务);用于接受广播的BroadcastReceiver(广播接收者)以及最后的支持在应用中存储读取应用数据的ContentProvider(内容提供者)。采用由分层架构组建的Android系统,从最高层到最低层被分为四个部分。它们分别为:Linux内核、系统运行库层、应用程序框架层、应用程序层。图2.9能直观展示Android体系的具体结构。下面是对这几层的简单介绍。图2.9Android体系结构1.应用程序层(Application)应用程序层是最高层也是普通用户平时所接触的一层,它是核心应用程序的一个集合(如日历;闹钟;联系人等),在我们日常使用中下载安装的各式各样的软件和游戏(如QQ;微信;网易云音乐等)同样也是属于这一层。这些应用都是由Java语言编写。2. 应用程序框架层(ApplicationFramework)在这一层应用程序框架层主要是向开发人员提供了访问或自行开发程序时需要的各式API。任何应用程序都能在这一层发布自己的功能块同时也可以调用其他应用程序的功能块。但是一切的前提都是必须遵循框架的安全性。所以我们可以归纳得出每一个应用程序后都有一系列的服务(API)。那么这些API主要有:视图(Views);通知管理器(NotificationManager);活动管理器(ActivityManager);内容提供器(ContentProviders);资源管理器(ResourceManager)等,这些API促使使用者有了更好的使用体验。3. 系统运行库(Libraries)系统运行库也被称为核心类库是由C/C++库来提供支持的。通过上一层也就是应用程序框架层为Android开发者提供服务。比如3D绘图支持是由OpenGL/ES库来提供服务;Web浏览器引擎是由LibWebCore库来提供支持等。Android运行时库允许开发人员用Java语言编写应用程序。除此之外在手机内存以及CPU优化方面由库里的Dalvik虚拟机进行优化支持。4. Linux内核(LinuxKernel)Android系统是运行在LinuxKernel之上的,由Linux为Android提供各种硬件服务的底层驱动(如GPS服务;蓝牙服务;电源管理;视屏显示等)。相对完全封闭的IOS系统开源开放的Android系统的编写和应用肯定更加适合本系统的设计实验开发。在如今Android系统使用者占据绝大数移动设备使用者的今天,基于Android的学生参会打卡系统更加有研究价值。2.2.2AndroidStudio简介系统的前端Android应用程序是使用AndroidStudio来完成的。曾有很长一段时间AndroidStudio被称为当下最为完美的Android编程软件,这句话印证了它功能的强大。AndroidStudio是由谷歌公司推出的一款完全免费的Android集成开发工具。它是在IntelliJIDEA基础上改编而来,前者因为费用高昂的原因让无数草根开发人员望而却步,AndroidStudio的出现也推动了一大波Android开发热潮。AndroidStudio集成了开发Android应用时所需要的工具,但是AndroidStudio的运行需要Java环境的支持。所以使用AndroidStudio前首先应该安装至少版本为1.7以上的JDK以及2G以上的内存。AndroidStudio具有几个比较明显的特点:1.在我们使用AndroidStudio编写应用程序时更加方便灵活这是因为AndroidStudio是基于gradle的构建项目支持。2.AndroidStudio具有专属的重构和快速修复的方法,通过变量配置来适应不同版本的apk文件。AndroidStudio还能支持ProGuard和应用签名。3.AndroidStudio内置了提示工具(linktools代码优化工具)用于捕获性能、可用性、版本兼容性等问题,为新手开发人员省去查找问题的时间。4..因为AndroidStudio拥有大量的代码模块所以在模板向导来生成常用的Android应用组件和设计模块就变得快捷高效。5.可拖拽的布局UI编辑器省去了每一次需要用代码调节布局的时间。为项目的开发提供了极大的帮助。所以本文基于Android的学生参会打卡系统的前端就是使用AndroidStudio来编写的,作为一个还在校就读的大学生AndroidStudio无疑是最好的选择。2.2.3阿里云轻量应用服务器简介轻量应用服务器是由阿里云提供的一款新的云服务器产品。阿里云是阿里巴巴集团与2009年创立的。全名为阿里云计算有限公司(AlibabaCloudComputingCo.Ltd.)是全球领先的云计算科技公司。阿里云向社会提供了云服务器出租服务。因为阿里云云服务器较业内最为稳定且为大学生提供了极为优惠的云服务器出租业务。所以本文选择使用阿里云云服务器。轻量应用服务器是面向对云计算只是入门级或者不了解的使用者提供的云服务器应用部署;安全防控;域名管理;运行维护的一站式综合服务。使用轻量应用服务器的用户可以在部署云服务器是选择阿里云提供的几款成型的精品镜像。这些镜像已经内置了相应系统且提前安装了大多数项目运行的环境软件(如MySQL;wordpress等)。本文所使用的是一个基于CentOS的系统镜像,此系统镜像还可以提供数据库和服务器文件等管理的图形化界面。为项目的开发提供了极大的帮助。2.2.4IntelliJIDEA简介本文基于Android的参会打卡系统的后端云服务器的项目是在IDEA上完成的。IDEA全称IntelliJIDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一。IDEA被给予极高的评价的原因是因为它优秀的Debug(调试)功能。它拥有CVS整合;代码分析;J2EE支持等功能。可以对Java;Javascript;Ajax等技术进行调试。它的旗舰版本还可以对HTML;PHP等做支持,可谓是极为强大的编程软件。IDEA提倡智能编码,减轻开发人员的工作压力所以IDEA具有许多便捷功能如:丰富的导航模式;智能的选取;对重构的优越支持;XML的完美支持;动态语法检测;对JSP的完全支持;程序员意图支持等20多种优秀功能。本文的云服务器后台程序由Java语言编写,在编写时IDEA提供了许多智能编辑和错误提示为本文系统的云服务器后端开发提供了便利。2.2.5MySQL简介本文的学生参会打卡系统的云服务器数据是通过MySQL数据库技术来管理的。MySQL数据库是当下应用最广泛的数据库系统,虽然MySQL数据库相较于其他专业的大型数据库系统有许多不足之处(如因为体积太小不支持视图等),但是由于它是一个开源软件且在个人使用者大量增加的今天,MySQL数据库也能提供满足绝大多数使用者的服务。所以它成为了当下最受欢迎的数据库系统。MySQL数据库是一种关系数据库管理系统,用多张表储存不同种类的数据,所以它的反应速度和灵活性都相当的高。MySQL数据库虽然也有商业版但是它所提供的社区版功能也基本齐全。所以基于体积小、成本低、速度快的特点。它成为了中小型网站、个人网页、高校教学的首选。MySQL数据库作为一个优秀的数据库系统的特点如下图2.10所示。图2.10MySQL数据库特点便捷性MySQL数据库的使用操作是非常简单的,可以说是只要懂一点IT知识的人都可以无师自通。并且现在Linux系统都会预装MySQL,在业内有一个很经典的集群———LAMP(Linux、Apache、MySQL、PHP)所以MySQL使用是非常方便的。开源作为一个开源项目,MySQL旗下聚集了一大批技术爱好者或者从业者。大家提出问题共同解决问题。因为免费所以大规模部署成为可能。速度快就如前文所述MySQL数据库利用多张表储存不同种类的数据,所以它的反应速度和灵活性都相当的高。并且在社区版中MySQL开发者还去除了过剩的功能,精简了操作流程。所以操作所需要的时间也是相当短。可移植性MySQL从3.23.15版本开始支持移植,这对任何一个数据库使用者带来的好处都是无法估量的。我们能在任何一个常见的操作系统里使用MySQL数据库。也可以将数据库文件从一台设备转移到另外一台甚至操作系统不同的设备里。譬如本文使用的数据库文件就是由Windows创建转移到Linux系统里的。引擎强大MySQL数据库时插件式存储系统从而不同于其他数据库系统MySQL有许多的存储引擎诸如ndb、mylsam、tokudb等。插件式的设计使MySQL支持更多的数据库的接入。社区支持据说monty(MySQL之父)在MySQL推出之初亲自写下30000封电子邮件帮助用户使用MySQL,成为了一段佳话。但在MySQL的推广方面各个网络社区也是功不可没,随便查找都能找到各种技术文档;疑难解答;架构方案等。我们能在国内外任何网络社区(Google、Facebook、百度、阿里、腾讯)找到其他用户在使用MySQL时不断开拓创作的新功能和工具。重庆工程学院本科毕业设计3系统总体设计PAGE263系统总体设计3.1系统总体设计本论文提出的学生参会打卡系统主要是为了解决现在传统打卡系统效率低的问题,全手工的打卡方式过于老旧在此不做讨论,半手工基于校园卡-打卡机的打卡方式存在硬件设备缺少的致命问题。并且日常打卡中对于代打代签等恶劣打卡操作也无法控制,打卡信息的真实性较低且时效性不高。所以本文设计的系统是目前社会上使用最为广泛的客户机-服务器模式,通过现在学生大量使用的Android手机作为打卡设备,加上一定的位置判断功能可以在一定程度上改善目前参会打卡系统效率低下的现状。在这一章本文将根据前文总结的系统的需求分为两个部分(客户机-服务器)分别展示系统的设计。3.2客户机Android端设计学生参会打卡系统肯定需要获取学生和会议的信息,再加上本系统采取了使用定位判断打卡信息的真实性功能,信息采集尤为重要。所以本文的系统设计将信息的采集放在了客户机Android前端上。同时信息整理完成后需要将其发送至服务器同时需要一个发送信息的功能。客户机的主要功能详见图3.1。图3.1客户机的主要功能3.2.1用户信息学生参会打卡系统是为了记录学生的打卡活动而设计的,那么云服务器信息的接受和打卡信息的生成都需要登记学生的学号。所以在系统的Android应用里就必须要有学生信息的采集功能。在出于信息安全方面我们将学生信息功能设计为登陆界面的形式,在学生使用本系统的app时首先需要通过注册账号的环节因此学生信息采集功能就变得十分简单,学生使用自己的学号作为账户设置密码在每次账户登陆时系统将把登陆的账号保存至本地数据库,等待所有参会打卡步骤完成后的信息整理。3.2.2获取会议信息采集学生信息后其次就是收集学生参加会议的会议信息了。在这一步本文提出了通过扫描含有会议信息的二维码的方法来进行会议选择。在移动支付如此盛行的今天扫码操作对于当代大学生来说并不陌生,通过这个方法能节省不少的操作时间。会议信息发布和扫描二维码是获取会议信息的关键,因为本系统的会议信息是通过二维码保存的,自然在每一个会议举办前都需要生成一个二维码图片。如今在任何搜索引擎上键入二维码生成后可供选择的免费二维码生成服务多如牛毛,并且本文设计的二维码信息保存方案的信息十分简单。因此在二维码生成方面本系统不需要过多的步骤。在会议上主讲老师或者学生可以选择在合适的时间将此二维码图片发布在讲演PPT或者视频里;也可以由会议主办方在会议室布置带有二维码的告示。不同于校园卡-打卡机的一对一打卡方式,扫描二维码实现了一对多的打卡流程极大的提高打卡效率。下图3.2是二维码发布及扫描演示。图3.2二维码发布及扫描演示3.2.3定位系统本系统对打卡操作是否异常也就是数据真实性的判断是通过对比实时定位信息来完成的。现在移动设备的位置信息功能以及十分发达。民用北斗系统和GPS系统定位据可以精确到3-5m。所以在参会打卡系统中设计了通过将打卡操作时的实时位置上传给服务器对比是否相应的会议室的范围内来进行数据真实性判断。图3.3是通过定位判断数据真实性的流程图。图3.3定位判断数据真实性3.2.4数据管理由于Android前端和后台云服务器要进行数据交互,所以我们需要选择一种安全;快速;通用;体积小的数据交换格式。通过对现在应用市场的考察发现JSON格式是一个非常好的选择JSON是一种轻量级的数据交换格式,是基于JavaScript的一个子集。JSON采用完全独立于语言的文本格式,采用类似于C语言的格式。典型的JSON格式中“[]”符号对表示JSON数组,“{}”符号对表示JSON对象。JSON较之XML更小更快更易解析。Android要访问远程MySQL数据库,先要利用HTTP协议发送Request请求给后台云服务器,云服务器端根据请求访问MySQL数据库服务器。服务器数据处理完成后通过HTTP协议回传给Android终端,Android终端再对JSON解析,并进行相关的UI处理[6]。3.3服务器端设计在获取Android客户机发送来的信息后服务器需要分别将会议信息;会议室信息;与实时定位经纬度与数据库保存的信息对比。而用作解决学生日常问题的系统的后台服务器,必须选择一个相对稳定无人值守也能正常运行的云服务器。并且要在云服务器上配置正确的软件运行环境以及MySQL数据库版本使后台程序服务能够被支持。最终服务器需要对Android客户机发送来的数据进行应答发送返回值。具体功能见下图3.4。图3.4云服务器功能3.3.1服务器框架设计1.环境配置本系统的后台云服务器选用的是阿里云轻量应用服务器,在选择云服务器系统镜像时选择的宝塔可视化面板镜像。这样能更方便管理人员对云服务器的后期维护和数据库的修改操作。在系统环境方面需要安装JDK1.8和MySQL5.5及其以上版本。在数据库查看方面需要安装phpMyAdmin软件,它可以对MySQL的数据表进行面板化修改。最后需要给云服务器安装screen功能。2.建立后台运行程序本系统的后台程序是基于Java语言使用IDEA编程软件编写的。本系统的服务器应用使用了SpringBoot框架。SpringBoot是用来简化Spring应用的初始搭建以及开发过程的框架,方便开发人员,因为不需要定义样板化配置所以编写复杂程度降低不少。SpringBoot能独立创建并主动配置Spring应用,并且在使用IDEA编写时可以通过Maven快速构建。SpringBoot继承了Spring易配置易测试的优点。最后代码编写完成后需要讲程序打包为jar格式。3.服务器运行程序本系统需要无人值守时也能正常运行所以需要Screen功能,通过screen能创建一个可以在后台运行的服务,它不会因为终端的断开停止运行,具体操作如下所示。1. sudosuroot切换root账号。2. screen-l创建一个新的后台运行服务。3. 进入保存系统jar包页面。4. java-jar相应的包运行程序。3.3.2MySQL数据库设计1.环境配置学生参会打卡系统基于MySQL数据库,在数据库中分别建立会议信息表;会议室信息表和学生打卡信息表。下面依次介绍各个表的所存储的信息以及分别的作用。1. 会议信息表会议信息表由两项信息组成分别是会议名称(Varchar)和会议地点(Varchar)。会议名称时学生参加的会议的名字它将和由客户机Android手机扫码获得的信息进行对比。会议地点是参加会议所在的会议室名称同样与扫码获得的信息进行比对。2. 会议室信息会议室信息由两项信息组成分别是会议室名称(Varchar)和会议室经纬度(bigint),会议室名称和会议信息表的会议地点对应。而当确定会议室名称后,会议室经纬度将和上传的实时经纬度进行对比判断。3. 学生参会信息表学生参会信息表由学号(bigint)和会议名称(Varchar)组成。是服务器对传送来的信息比对成功后将传送来的信息中的学号和对应的会议名称分别填入建立一条新的数据。重庆工程学院本科毕业设计4系统的实现PAGE424系统的实现4.1Android前端本节主要是介绍在学生参会打卡系统中前端Android的设计实现展示。在第二章里具体分析具体流程后,分析了前端所要实现的具体功能后编写出符合系统基本要求的Android前端软件。4.1.1页面介绍1.登陆界面学生信息管理包括学生注册;登陆软件;修改密码;注销账号等功能。在主界面所有关于学生信息的功能一览无余。下面几张图片则是与学生信息功能的面板展示。图4.1学生登录主界面图4.2学生注册功能界面。图4.3学生账号密码修改界面2.登陆后学生会进入系统主界面。主界面里有本系统前端的所有功能按钮包括:会议选择(扫描二维码);定位;签到及退出功能。下面几张图片是各个功能面板的展示。图4.4参会打卡系统功能主界面进入主界面后首先应该点击会议选择按钮打开二维码扫描界面扫描在会议发布的含有会议信息的二维码。图4.5会议选择二维码扫描界面成功扫描二维码后点击定位按钮,进入页面后点击开始定位并等待显示实时定位数据的获取。图4.6实时定位界面4.1.2Android主要功能代码简介Android前端代码主要分析下如何通过Android设备的GPS获取实时定位;打开摄像机扫描二维码以及信息上传服务器的功能。1.GPS信息采集使用GPS首先要申请相关权限因为本系统的定位功能是基于百度地图SDK所以在使用前首先应该在百度地图申请APIKEY。具体申请还需要几步操作这里就不做赘述。以下几张图是申请AK及获取定位权限的示意图和代码。图4.7百度地图申请AK图4.8定位功能相关权限图4.8填入申请的百度地图AK请求定位后获取实时定位信息,分别请求接受对应的定位数据。百度SDK里有完整的定位信息获取。而我们系统只需要精确的经纬度数据即可。获取以后用SharedPreferences方法将获取到的经纬度信息先保存到本地数据库。图4.9GPS请求位置信息图4.10保存经纬度信息2.扫描二维码扫描二维码和照相机相关所以首先要获取照相机权限,在界面设置一个用于二维码扫描框的框体。再利用已经谷歌发布的Zbar库,采集二维码信息并将二维码信息解码。图4.11照相机基础功能设置图4.12二维码解码线程图4.13二维码扫描界面布局3.传送数据至云服务器在完成一切操作后Android客户机需要将数据发送到云端服务器,所以需要使用http协议来进行数据传输,而在HTTP协议的三种方法中Post是相对安全(因为Post将请求参数放到请求体里面)也是最常用的方式所以我们采用了Post方法。由于本系统采用的是C/S架构(客户机/服务器),而后台使用的是springboot框架只暴露出名为“check-in”的接口。所以直接将数据Post到接口。在数据方面通过JSONObject方法将之前所有的采集到的数据组成一个新的JSON数据。首先向云服务器Post的请求告诉服务器接下来的数据格式是json,服务器需要用json解析这次请求。然后将整理好的JSON数据用Post方法发送至check-in接口。在数据发送至服务器后会有产生一个httpResponse的对象。而本系统返回值设计的是只有ture和false所以response返回的应该是是一个Boolean。下图为具体流程图。图4.14Android客户机与服务器数据通信流程因为配置Post方法接口名和网络地址是分开在三个页面完成的所以这里将三张代码整合到一起。图4.15Post发送信息的相关设置发送消息后需要等待云服务器处理数据后发送返回值,通过得到的返回值。将打卡签到是否成功的信息发到用户界面,让打卡学生知晓自己的打卡状态。图4.16接受返回信息并反馈4.2云服务器本节主要是介绍在学生参会打卡系统中后台云服务器设计实现展示。在第二章里具体分析具体流程后,分析了云服务器所要实现的具体功能后编写出符合系统基本要求的。本系统的云服务器是阿里云服务器,服务器系统使用的宝塔可视化面板镜像(基于CentOS),云服务器的运行和维护都相对普通云服务器简单。4.2.1服务器数据库面板展示因为本文系统的云服务器使用的是宝塔可视化面板镜像。所以云服务器可以进行可视化管理,云服务器预先安装了phpMyAdmin方便管理数据库信息,省去终端操作的步骤并且对数据库里的数据可以直观监控。管理人员可以直接在云服务器管理界面中对会议信息和会议室信息数据进行增删改查,更加方便操作。下面几张图是云服务器管理界面中提取的服务器数据库面板数据库展示图(用原图缩放)。图4.17会议信息表图4.18会议室信息表图4.19学生参会打卡信息表4.2.2云服务器数据判断主要代码因为在前文Android前端代码里已经提到过数据接口而云服务器的数据接口也是相同的所以这里不再介绍。首先我们来看一下服务器是如何配置后台数据库的。首先应该设置数据库的网络位置。因为数据库是MySQL数据库系统操作十分方便,只需要设置好端口号8000和数据库的用户名和密码就大功告成。下图是配置数据库的代码图。图4.20数据库配置信息Do把数据库的每一张表映射为一个java的类这样就可以通过操作java类完成数据持久化,而非通过与复杂的SQL语句打交道。它是一种思想,是指将数据库中的每一行数据用对象的形式表现出来。Do类每一个实例都对应一行数据数据库配置信息后就建立是服务器数据库里的三张表的数据对象。以下三张图分别是会议信息表;会议室表以及学生打卡信息表。图4.21会议信息DO图4.22会议室信息DO图4.23学生参会打卡信息DO后台服务器在接受到前端信息是要将数据和服务器数据库进行判断比对。在判断发送来的信息是否真实有效后,进行对应的流程。如果数据真实有效就将学生学号和参见的会议名称作为一条新增数据添加到学生参会打卡信息表里并且向前端Android设备返回true。反之数据对比失败则直接返回false。下图是对服务器对数据信息判断的代码。后台云服务器对实时定位位置是由最初设置的会议室经纬度和实时经纬度进行的一个误差判断的简单逻辑。将上传的经纬度分解成X,Y两个数值。当实时定位的经纬度与初始值误差均在所设定的一个范围(本系统的预设误差是0.0003)内则判定定位成功,反之失败。图4.24数据判断代码会很清晰看出定位判断的逻辑。图4.24数据判断代码5系统的测试5.1测试目的本文学生参会打卡系统设计目的是为了方便高校学生的日常会议打卡,所以系统的稳定性;数据的准确性和信息的时效性成为本系统最为重要的三个考察项目。稳定性在于Android前端能否向服务器发送信息和云服务器是否能通过发送来的数据返回对应的信息。数据准确性在于Android前端实时定位数据是否可以成功获取和云服务器能否正确判断误差。信息时效性在于打卡成功后数据库能否及时将打卡信息存入数据库。在这一章我们将从实时定位获取;数据传输考察;打卡信息变化三个节点进行测试。同样在系统设计时每一个步骤都需要在在电脑编程软件和相关辅助软件上都成功运行并验证成功。其次模拟器测试成功后还需要真机测试因为当系统安装在真机上或许又会出现新的问题。云服务器是否运行正常同样也是一个需要验证的项目。为了将设计系统更加完善稳定高效下面本文又将分为PC段模拟测试和真机测试两个部分展示。5.2测试环境5.2.1硬件环境本系统两部分测试硬件需求如表5-1所示。表5-1系统测试硬件需求表硬件名称配置型号数量阿里云轻量应用服务器1核2GB内存系统盘40GSSD云盘(深圳服务器)1Android手机华为P8(GRA-UL10)1笔记本电脑华硕笔记本ZX50JX(Inteli5CPU8G内存1T硬盘)15.2.2软件环境本系统两部分测试软件环境需求如下。Android系统需求:Android6.0版本及其以上版本;服务器数据库版本要求:MySQL5.5及其以上版本;服务器其他环境需求:CentOS7.3(64位)、phpMyAdmin4.4、JDK1.8;PC端系统需求:Windows10专业版(需要安装JDK1.8);PC端辅助测试软件:AndroidStudio;Postman等。GPS定位测试环境:万寿华庭及周围100M范围内;5.3系统功能测试本文系统测试将分为两个部分:PC端软件模拟测试和真机测试。根据本系统用户使用需求分出了三个测试节点。本次测试是设计者本人进行所以测试项目可能会有局限性,本系统在成功发布后期在不断完善功能后应请专业测试人员测试。5.3.1PC端软件模拟测试因为WIN10PC端GPS获取权限与模拟器不兼容所以PC端不进行定位测试。1. Android前端数据发送断点Debug测试PC端验证Android前端是否将打卡信息发送出去可以使用AndroidStudio的断点功能和Debug测试,即将一个系统的单个步骤通过命令提示符面板显示信息进行测试。由下图5.1我们可以看见经过断点测试单步推进成功将具有必要信息的打卡请求信息发送(从代码中我们能看见单步推进运行到生成发送信息并未进行到发送信息所以数据库没有这条信息)。图5.1断点Debug测试2.PC端验证服务器功能PC端验证服务器功能,我们利用的是Postman详见下图编写一条带有正确打卡信息的json信息到发送框填入。同时正确填入云服务器网络地址和接口名称,点击Send发送查看服务器返回信息。同时到云服务器管理界面查看数据库有刚才发送的打卡信息。结果如下图5.2和5.3显示。图5.2Postman验证服务器功能图5.3查看数据库新增信息5.3.2业务功能测试真机测试是利用Android手机安装参会打卡系统软件后,通过手机获取会议相关的数据信息,然后将打卡信息推送到云服务器。因为在Android应用里我们只能看见用户界面所以这里我们就测试实时定位数值的获取功能;云服务器数据处理以及手机接收到云服务器的返回值发送到界面给参会学生的信息显示。(因为要测试服务器对实时定位是否在允许范围内所以真机测试需要在室外进行)。1.Android真机在不同地方获取实时定位实时定位功能是利用Android系统自带的功能的也是本系统最重要的功能。在不同的地方是否能获取到精确的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年护士资格考试真题(附答案)
- 2026年疾控中心出科考试题库(含答案)
- 2026年家畜饲养考试试题及答案
- 2026年江西省中小学教师招聘考试试卷及答案
- 2026年临床执业医师预防医学专项题库及答案
- 2026年煤矿培训考核试题库150道及参考答案(能力提升)
- 2026年农机驾驶员科目一考试题库模拟题及答案
- 2026年期货从业法规案例题库(含答案)
- 2026年全科医学(301)主治医师《专业实践能力》试卷真题(后附答案)
- 《数据结构》-王兆红(习题及解答)
- (一诊)绵阳市2023级高三第一次诊断考试生物试卷A卷+B卷(含答案)
- 学堂在线 人工智能 章节测试答案
- 铁路劳动安全培训内容
- 植物地理学课件 高山植物学习资料
- 08SS704 混凝土模块式化粪池
- 2024仁爱版初中英语单词表(七-九年级)中考复习必背
- 2023 年 5 月全国事业单位联考 C 类《综合应 用能力》及参考答案
- 坐标纸(A4纸直接打印就可用)
- 投笔从戎-成语故事课件
- 兽医流行病学 第七章 描述流行病学
- LY/T 2749-2016桉树速丰林配方施肥技术规程
评论
0/150
提交评论