1、本科毕业论文题 目基于Android的课堂考勤系统的设计与实现Design and Implementation of Classroom Attendance System Based on Android姓 名学 号专 业计算机科学与技术指导教师职 称副专家中国武汉五月分类号 密级华中农业大学楚天学院本科毕业论文 基于Android的课堂考勤系统的设计与实现Design and Implementation of Classroom Attendance System Based on Android学生姓名: 学生学号:学生专业:计算机科学与技术指导教师: 华中农业大学楚天学院二一七年五
2、月华中农业大学楚天学院毕业论文(设计)原创性声明本人郑重声明:所呈交的毕业论文(设计),是本人在导师的指导下,独立进行研究所取得的成果。除文中已经注明引用的内容外,本论文(设计)不包含任何其他个人或集体已经发表或撰写过的作品成果。本人完全意识到本声明的法律结果由本人承担。作者署名:日 期: 年 月 日目 录摘要I关键词IAbstractIKey wordsI1 绪论11.1 研究目的与意义11.2 国内外的研究现状11.3 本文的重要组织结构12 系统开发环境介绍22.1 Android开发平台基础知识22.1.1 Android平台简介22.1.2 Android的系统结构22.2 课题相关
3、的Android技术介绍32.2.1 Android终端与Web服务器数据交互32.3 开发工具介绍33 需求分析及系统概要设计4 3.1 系统可行性分析43.2 功能需求分析53.3 数据库设计53.4 关系模型83.5 数据库表84 系统具体设计104.1 系统整体架构设计104.1.1 系统架构设计104.1.2 系统整体架构114.2 从功能模块看核心流程124.2.1 服务端连接设计实现124.2.2 登录注册设计实现124.2.3 请假功能模块的实现134.2.4 考勤模块实现144.2.5 个人中心模块功能实现165 实验与验证176 系统测试246.1 系统测试方法246.2
4、系统测试过程246.3 测试总结277 设计总结27参考文献28致谢29摘 要本论文介绍的是基于安卓技术的课堂考勤系统,本软件可认为用户提供实时查看课程信息,进行课堂签到的功能,可以解决当前高校对考勤信息管理困难的问题,对考勤信息进行统一的管理,提高考勤信息的实时性和统一性。这样能让高校对考勤信息的管理变得更加方便快捷,节省人力物力,为需求双方提供了一个便利的平台。本软件系统采用Eclipse开发环境结合Android SDK进行设计,开发了一个基于Java语言的课堂考勤软件。系统重要实现了登录注册、请假、考勤签到、个人中心等重要功能模块。在请假和考勤签到中使用了百度定位的解决了签届时候对学生
5、位置的定位,在查询考勤信息中可以根据不同的条件获得符合规定的考勤信息,个人中心可以对账号密码等进行修改。关键词课堂考勤;Android;Android SDK;AbstractThis paper introduces a class attendance system based on Android technology.This software can provide real-time information for the user to view the curriculum,classroom attendance function and can solve the diff
6、iculties in managing current college attendance information for colleges and universities, uniformly managing the attendance information and improving the real-time and consistency of attendance information.This can make the management of attendance information more convenient and quick,and save man
7、power and material resources.It provides a convenient platform for both sides of demand.The software system has developed a classroom attendance software based on Java using Eclipse to develop environment and combining with Android SDK to design.The system mainly implements the major functional modu
8、les of login,registration,leaving,attendance,personal center and so on.In the leave and attendance registration,the use of Baidu positioning has solved the positioned position when students sign.In the inquiry of attendance information,the system can access to the attendance information that meets t
9、he requirements according to different conditions.The password of the account number can be modified in the personal center.Key wordsClass attendance;Android;Android SDK;1 绪论1.1 研究目的与意义开发本系统的目的,就是要解决目前高校中关于学生请假与上课出勤管理中所面临的一系列问题。开发出高校学生考勤管理系统能有效地提高高校办事效率,解决目前高校学生请假及上课出勤管理问题,实现学生请假及上课出勤信息对任课教师、班主任、院系领
10、导、学校领导透明,使班主任、院系领导及时把握学生的学习情况,及时与学生沟通,提高教学质量。但是传统教学中,学生的考勤信息仅作为教师课程总评结果中对学生平常表现的评价依据。并且还存在以下一些问题:(1)考勤信息由教师人工操作、管理,效率低下;(2)不同教师所掌握的考勤信息分散、缺少联系;(3)信息汇总往往发生在期末总评期间,实时性差;(4)记录形式不规范记录困难;(5)教师对教学期间的缺勤信息缺少及时的解决,运用率低下。本设计是以Android操作系统为基础的“课堂考勤”软件的设计与实现。为了方便用户可以随时随地查看考勤信息,申请请假,在线签到等,一种高效的办法就是做成应用程序拓展到用户的终端设
11、备上,并且提供一些辅助功能。所以这次毕业设计的目的就致力于开发出一款基于Android手机平台的课堂考勤系统,来满足用户的需求。1.2 国内外的研究现状就目前的情况和事实来看,Android市场正在以迅猛的方式,慢慢地扩展了它的产品,以满足不同人群的需求,而不仅仅是做一些低端的智能手机,智能机器可以满足一般人群的平常生活,涉及娱乐的需求,会产生一些比较昂贵,但高品质的高端智能手机,适合商务人士使用。智能机现在越来越多的被大家所接受,相较于其他品牌的普通机器,人们喜欢买一种便宜的,性能优异的智能机,其因素是由于他们能满足一般人谁使用手机的需求,性能特点各方面也让用户感到这是一个非常良好的感觉和行
12、动,而不是作为高端机的价格昂贵。很多人喜欢用手机玩系统,看视频等,功能有点硬件和软件的手机需要增长的需求,比如在屏幕上流畅,速度快,兼容性好等优点,对这些人来说,也有很多高端智能手机采用Android,这款手机完全可以满足人们的平常需求。现在应用的安卓系统将更加努力来改善,有许多余名的应用程序,如地图导航,视频点播系统等。现在Android的发展速度超过了所有人的想象,为安卓开发的软件也非常乐观,这是一个值得发展壮大的领域,安卓也将是一个主流系统,供市民使用。1.3 本文的重要组织结构第一章绪论:全文的研究目的与意义、国内外的研究现状是本章的重要内容。此设计的研究目的与意义在第一节做出了简朴介
13、绍,第二节对所用的工具及技术做出了简略的叙述,本文的重要组织结构在第三节做出了简朴介绍。第二章研究基础:本章重要介绍了全文用到的几个基本概念以及使用的开发工具。第一节对全文需要用到的基本概念给出了解释。第二节对完毕本次设计所需的开发工具做了简要介绍。第三章系统分析:系统的功能模块和系统使用流程在这一节进行了介绍。第四章系统设计及重要模块功能:本章对整个系统的实现、系统架构进行了介绍,并将核心内容进行了实现,如:签到、登录、查询请假、查询考勤等。第五章系统实现:这一章是对本次设计的各种功能进行细致的讲述实现过程及系统如何完毕这些功能的。第六章系统测试:这一章是对本次设计的各种功能进行细致的测试,
14、验证系统可用。第七章总结:这一章对本次毕业设计进行了自我总结。2 系统开发环境介绍2.1 Android开发平台基础知识2.1.1 Android平台简介Android属于开源移动操作系统,该系统重要在Linux平台上进行设计,Andy Rubin是该系统的最初设计主体,随后Google对其进行收购,并且在2023正式宣布该平台的建设成功,号称是首个为移动终端打造的真正开放和完整的移动软件。该平台采用软件叠层架构,由操作系统、中间件、用户界面和应用软件组成。该平台在具体实践过程中获得了快速的发展,究其因素:其一,Google非常支持该系统的发展,该公司非常关注该系统在以下两个方面的优势,即开源
15、以及标准化,同时希望在创新移动产业过程中让这一优势得到体现,借此来解决相关问题,以此来让个人也可以想享受到开放性的信息服务系统服务。其二,Android自身所具有的开放、应用程序互相平等、应用程序之间沟通无限制的优势有也是其快速发展的重要因素。2.1.2 Android的系统结构该系统架构在具体设计过程中遵循的思想为分层架构,形成了清楚的结构以及层次,做到了分工合作。具体来说,其重要由以下几个部分组成,即应用程序层、应用框架层、系统库和Android运营库以及Linux内核层,如图2-1所示。图2-1 Android系统架构图接下来对每一层的功能进行具体分析:第一,应用层,这一层的应用程序在编
16、写过程中重要使用的语言为JAVA语言,并且有非常关键性的应用程序,典型代表有通讯录管理、收发信息以及拨打电话等等。这些核心应用可以被编程人员自己用JAVA语言开发的应用程序进行替代。第二,应用程序框架层,在具体开发这一系统时,这一层发挥着基础性作用,相称数量核心应用程序来实现核心功能过程中,都需要依托这一层才可以实现。立足于该层中的重用机制,开发人员对其给予的组件部分,可以使开发应用程序快速的实现,同时可以方便地替换平台自身的各种应用程序组件。第三,系统库以及Android运营库,系统库在应用程序中发挥着决定性影响,并且连接以下两个层,即框架层以及Linux内核层。在对该系统进行运营过程中,其
17、具体组成内容有核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又涉及了Android的核心库。第四,Linux内核层,该系统的关键功能实现都需要依托这一层次来实现,典型代表有安全性、相关进程、管理以及网络协议等等。Linux内核也同时作为硬件和软件栈之间的抽象层。本文重要是在Android应用基础上来进行相关软件开发,这意味着有必要介绍Android的应用程序基础知识和相关组件。2.2 课题相关的Android技术介绍2.2.1 Android终端与Web服务器数据交互在android中发布应用的途径重要有:第一,客户端应用程序,依托Android SDK来完毕
18、开发,在用户设备安装过程中,其后缀为.apk。第二,作为web应用程序,使用web标准制定和通过web浏览器访问一一不需安装任何东西。在最终决定应用程序方法时,受到诸多因素影响,但是为可以支持viewport属性等等,以此来进一步简便web应用程序开发。除此之外,能实现根据屏幕大小拟定web应用的适当尺寸、根据屏幕分辨率提供图片和不同风格等功能。在这种情况下,提出屏幕考虑因素可以让web应用程序开发难度进一步减少。由于所有Android类型的款的屏幕可以帮你将web页面设计的很好。在客户端以及web端中建立相应的程序并不需要对相关程序进行设计,这也是该系统的特点之一。据此可以综合使用这两方面内
19、容,以此来对相关客户端进行开发,并且在程序中添加web页。下图直观显示如何可以访问web页从web浏览器或Android的应用程序。如图2-2所示。图2-2 Android终端与Web服务器端数据交互2.3 开发工具介绍(1) Eclipse介绍Eclipse源代码具有开放性的特点,从本质上看,其仅仅包含了一个框架以及一组服务,然而其存在相应的标准插件集,可以据此来对开发环境进行构建,是一个基于Java的可扩展开发平台。Eclipse重要选择了轻型软件组件化架构来建立插件集,据此来在客户机中增长相应的功能,例如可以支持更多的开发语言。现阶段,已经存在的插件可以对如下内容进行使用,即C/C+(C
20、DT)、Ruby等等,同时也可以开发数据库。插件架构可以在当前环境中增长任何内容,具体来说,可以实现配置管理等等,并不仅仅是对相关编程语言进行使用。其重要结合如下思想进行设计,即依托插件来实现所有的功能,其不具有较大的核心,重要通过插件方式来在核心中添加相关的功能。Eclipse基本内核涉及:图形API,Java开发环境插件(JDT),插件开发环境(PDE)等。Eclipse是一个开放源代码的软件开发项目。它具体涉及四个部分:Eclipse Platform,JDT,CDT和PDE,重要由以下几个项目组成:Eclipse项目、工具项目和技术项目。PDE用来支持插件开发、CDT支持C开发、JDT
21、支持Java开发、Eclipse Platform则提供了一个通用的开发平台,是一个开放的可扩展IDE。要据此来编写Android工程,一方面需要形成相应的开发环境,在这一过程中,一方面需要对该工具进行安装,然后在其上安装ADT插件,再指定SDK对的的途径,这样变可以创建android虚拟机了。(2)关键技术介绍Android平台开发方面包含基本的应用功能开发、数据存储、网络访问这三大块。如图2-3所示。图 2-3 Android平台开发(3)功能开发标准的Android程序由如下4部分组成即Activity、Broadcast Intent Receiver、Service、Content
22、Provider来实现。(4)数据存储在Android,可供选择的存储方式涉及了SharedPreferences、文献存储、SQLite数据库存储方式、内容提供器方式(Content Provider)以及网络方式5种,本系统网络方式重要是通过网络访问该网络提供的网络服务接口实现数据的读写服务。(5)网络访问方面重要是Http访问技术的封装,通过java.NET.*;以及A.*;下面提供的HttpPost、DefaultHttpClient、HttpResponse等类提供的访问接口来实现具体的web服务访问。本软件采用Java作为开发语言,布局和数据存储是开发本软件的关键技术,布局用来设计
23、用户交互界面,使用xml技术设计,而xml中控件的位置和状态则离不开布局的使用,用户界面的设计是否美观和合理直接影响用户体验,因此运用好布局技术是直接和用户相关的,而数据存储技术则记录了用户所有的操作数据和用户所需要提取的数据。3 需求分析及系统概要设计3.1 系统可行性分析(1)技术可行性Java提供了稳定的性能、优秀的升级性、更快速的开发、更简便的管理、全新的语言以及服务。整个系统帮用户做了大部分不重要的琐碎的工作。且关于这方面的书籍、资料比较齐全。(2)操作可行性本系统采用基于安卓客户端,运用安卓手机安装软件就可以进行访问和操作,且界面简朴易操作,用户只要平时有在用过智能手机,都能进行访
24、问和操作。本系统具有易操作、易管理、交互性好的特点,在操作上是非常简朴的。因此本系统可以进行开发。并且对于目前高校考勤信息管理困难的问题可以进行有效的解决,提高考勤信息的实时性和统一性。(3)经济可行性系统是基于Android的软件,采用Eclipse平台。所以系统在开发人力、财力规定不高。且可以有效减少高校中对考勤花费的人力物力。具有经济可行性。3.2 功能需求分析用户使用考勤系统,一方面需要登录成功。通过http协议发送post请求给后台服务器,后台服务器通过controller接受登录的用户名和密码选择相应方法验证是否登录成功。当学生没有账号时,可以点击学生注册进行注册。输入所有信息后,
25、且账号名不为空,两次密码相同,则将注册信息通过异步post提交给后台,后台调用数据库添加学生信息。教师、辅导员以及领导需要在后台由管理员进行添加。系统重要分为考勤、请假、个人信息三个模块。进入系统首页后可以选择这三个功能模块。在学生登录后,点击请假可以查看请假状态(请假是否通过审核),并且可以添加请假的申请或者删除之前的请假申请;当点击考勤时根据课程、时间、当前定位地点来拟定学生是否签到成功。在教师登录后,点击查看请假信息可以查看当前通过审核的请假信息。当点击查看考勤信息可查看此教师专家课程的所有考勤信息,教师也可以根据学号添加缺勤信息,或者点击记录然后根据学生姓名搜此学生的各种考勤信息。辅导
26、员和领导登录后,点击查看请假信息可以查看所有请假信息,并且可以选择是否通过请假申请;而点击查看考勤信息可以查看所有学生的考勤信息,并且可以根据课程、时间来查询所有相应的考勤信息。用户登录后都可以在个人界面查看到昵称和账号,也可以直接修改昵称和密码。图 3-1 系统功能结构图3.3 数据库设计(1)学生实体属性图,如下图3-2所示。图 3-2 学生实体属性图(2)教师实体属性图,如下图3-3所示。图 3-3 教师实体属性图(3)辅导员实体属性图,如下图3-4所示。图 3-4 辅导员实体属性图(4)领导实体属性图,如下图3-5所示。图 3-5 领导实体属性图(5)学生、课程考勤局部E-R图,如下图
27、3-6所示。图 3-6 学生、课程考勤局部E-R图(6)教师、课程局部E-R图,如下图3-7所示。图 3-7 教师、课程局部E-R图(7)学生、课程请假局部E-R图,如下图3-8所示。图 3-8 学生、课程请假局部E-R图(8)总体E-R图,如下图3-9所示。图 3-9 总体E-R图3.4 关系模型由以上实体和E-R图可导出如下关系模型。学生(编号,学号,密码,姓名,角色,班级,电话,密保,经度,纬度)教师(编号,工号,密码,姓名,角色,课程,电话,密保,经度,纬度)辅导员(编号,工号,密码,姓名,角色,电话,密保,经度,纬度)领导(编号,工号,密码,姓名,角色,电话,密保,经度,纬度)考勤(
28、编号,学号,教师工号,地址,时间,学生姓名,课程,状态,经度,纬度)请假(编号,学号,教师工号,备注,时间,地址,审核状态,图片)3.5 数据库表用户表,如下表3-1所示。表 3-1 学生表字段字段名类型意义id编号int自增长gonghao学号varchar(20)主键pass密码varchar(50)name姓名varchar(50)type角色varchar(20)辨认身份banji班级varchar(20)学生所在班级tel电话varchar(50)mibao密保varchar(50)找回密码需验证lat经度varchar(20)lng纬度varchar(20)教师表,如下表3-2所示
29、。表 3-2 教师表字段字段名类型意义id编号int自增长gonghao工号varchar(20)主键pass密码varchar(50)name姓名varchar(50)type角色varchar(20)辨认身份kecheng课程varchar(50)教师专家的课程名tel电话varchar(50)mibao密保varchar(20)找回密码需验证lat经度varchar(20)lng纬度varchar(50)辅导员表,如下表3-3所示。表 3-3 辅导员表字段字段名类型意义id编号int自增长gonghao工号varchar(20)主键pass密码varchar(50)name姓名varch
30、ar(50)type角色varchar(20)辨认身份tel电话varchar(50)mibao密保varchar(50)找回密码需验证lat经度varchar(20)lng纬度varchar(20)领导表,如下表3-4所示。表 3-4 领导表字段字段名类型意义id编号int自增长gonghao工号varchar(20)主键pass密码varchar(50)name姓名varchar(50)type角色varchar(20)辨认身份tel电话varchar(50)mibao密保varchar(50)找回密码需验证lat经度varchar(20)lng纬度varchar(20)考勤表,如下表3-
31、5所示。表 3-5 考勤表字段字段名类型意义id编号int自增长uid学生学号号varchar(20)tid教师工号varchar(20)根据教师拟定课程address地址varchar(50)签到地点time时间varchar(50)签届时间uname学生姓名varchar(50)签到学生姓名state状态varchar(20)签到状态kc课程varchar(50)签到课程lat经度varchar(20)lng纬度varchar(20)请假表,如下表3-6所示。表 3-6 请假表字段字段名类型意义id编号int自增长uid学生工号varchar(20)tid教师工号varchar(20)be
32、izhu备注varchar(50)请假因素data时间varchar(50)请假时间address地址varchar(50)请假地点type审核状态varchar(20)审核状态,默认审核中pic图片varchar(50)头像4 系统具体设计4.1 系统整体架构设计4.1.1 系统架构设计若拟定软件具有若干个部分,则其中最高层次必然为系统架构。软件系统的核心内容之一即为元件,再设计系统架构过程中,需要对元件之间的关系进行拟定。系统架构设计除了对己拟定的需求的技术实现构架、作好规划外,对其可扩展行、稳定性和安全性也要给予足够的重视。本系统重要存在前台以及后台,即客户端以及服务器端,彼此之间具有相
33、对独立性。在设计客户端过程中,要对使用者的可操作性进行关注,后台服务端设计着重功能实现上的逻辑合理性,兼顾与数据库的数据交互。本基于Android手机的课堂考勤系统后台的开发便是采用了Spring MVC的框架来进行实现的。Spring MVC是服务者到工作者模式的实现。前端控制器是DispatcherServlet;应用控制器其实可以拆为解决器映射器(Handler Mapping)进行解决器管理和视图解析器(View Resolver)来进行视图管理;页面控制器/动作/解决器为Controller接口(仅包含ModelAndView handleRequest(request,respon
34、se) 方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文献上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。图 4-1 Spring MVC应用结构核心架构的具体流程环节如下:(1)一方面用户发送请求至DispatcherServlet,前端控制器收到请求后自己不进行解决,而是委托给其他的解析器进行解决,作为统一访问点,进行全局的流程控制;(2)DispatcherServlet至HandlerMapping,HandlerMapping将会把请求映射为HandlerExecut
35、ionChain对象(包含一个Handler解决器(页面控制器)对象、多个HandlerInterceptor拦截器)对象,通过这种策略模式,很容易添加新的映射策略;(3)DispatcherServlet至HandlerAdapter,HandlerAdapter将会把解决器包装为适配器,从而支持多种类型的解决器,即适配器设计模式的应用,从而很容易支持很多类型的解决器;(4)HandlerAdapter至解决器功能解决方法的调用,HandlerAdapter将会根据适配的结果调用真正的解决器的功能解决方法,完毕功能解决;并返回一个ModelAndView对象(包含模型数据、逻辑视图名);(5
36、)ModelAndView的逻辑视图名至ViewResolver,ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;(6)View至渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术;(7)返回控制权给DispatcherServlet,并且由DispatcherServlet返回响应给用户,到此一个流程结束。图 4-2 系统数据流向在本系统中,用Spring MVC开发框架来构建后台服务端,运用了其提供了基于Java的高效开发的特点,可以快速构建稳定、功能强大的后台应
37、用服务。如图所示,本系统从Android端直接向由Spring MVC搭建的服务端获取请求,服务端接受请求过后或调用远程WEB接口获取数据,或调用本地数据库获取数据,然后返回JSON数据结构的返回数据给Android端。如此一来,就形成了一个运转良好的信息回路。不仅把原有系统进行了整合,并且还加入了一些新功能。4.1.2 系统整体架构基于Android手机的课堂考勤系统的层次和布局如图4-3所示:图 4-3 系统结构图由上图可见系统是由三个部分组成,客户端、服务端和数据端,三个层次在系统中承担的角色各不相同。客户端就是指移动终端,用户通过3G或者WIFI运用移动设备进入系统,与系统建立通信。对
38、于本系统来说,该层是基于安卓的应用程序搭建,其中涉及应用程序的界面部分(Android View)和应用程序的逻辑控制(Android Controller)搭建。该层通过调用服务端接口获取信息。服务端是一个基于Java平台的WEB应用,与传统的网络应用程序不同的是,该层不包含界面的展示,只是为前台提供JSON数据接口。该层涉及控制层和业务逻辑层,控制层负责提供外部接口以及对接口进行数据定义,业务逻辑类定义了访问获取数据库信息的逻辑和访问数据库的方式。数据层包含两个数据源,一部分是本地数据库的访问,另一部分是对现有的基于Android平台的课堂考勤系统数据库的访问。无论是数据的交互还是界面以及
39、流程的设计,本系统都遵循了MVC设计原则,尽把系统的功能流程拆提成为具有单独功能的层次,这样一来,当未来需要对系统进行修改或者扩展的时候就会变得非常方便,简而言之,提高了系统的扩展性。同时,系统安全设计需要贯穿整个数据流程,为信息系统的存储、传递、运用提供安全性保障。4.2 从功能模块看核心流程4.2.1 服务端连接设计实现在本系统我们是使用Http网络协议技术,它具有GET和POST两种请求方式,对于服务器交互的数据,我们使用JSON字符串,Gson框架对它进行解析和转换,这些方法都分别封装在HttpsUtil.java和JsonUtils.java两个工具类中。4.2.2 登录注册设计实现
40、点击课堂考勤APP的桌面程序图标进入登录界面即login_main.xml界面,先从SharedPreferences中取出上次登录的用户名、密码,如不为空则赋值给相应的输入框,如为空则规定用户输入自己用户名密码,点击登录按钮执行validate() 验证用户、密码是否规范,符合规定后调用UserClient.get()方法,启动一个异步任务将数据通过Http传服务器与数据库的用户信息进行匹配,若用户名、密码对的无误则用户登录成功,同时也将本次用户、密码也保存到SharedPreference中。用户登录的流程图如4-4所示。图 4-4 用户登录流程图假如是新用户,则点击登录界面上的注册按钮,
41、进入到activity_register.xml页面在RegisterActivity.java中进行注册,此时用户需要输入基本信息,分别为用户名、密码、确认密码等信息。点击注册按钮验证信息的规范性后将注册信息封装提交服务器并保存到数据库中。注册成功后返回登录界面。如下图4-5所示。图 4-5 用户注册流程图假如忘掉密码,则可以点击找回密码来通过密保找回密码。在点击提交时会验证是否为空,当两个EditText都不为空的时候才干提交。服务器去数据库查询,假如查到相应用户,则返回当前用户的姓名。如下图4-6所示。图 4-6 用户注册流程图4.2.3 请假功能模块的实现请假功能模块重要实现了用户查看
42、请假记录,学生可以发起请假信息,辅导员和领导对学生的请假信息进行审核。学生申请请假的界面是功能实现在qingjia_add.java中,界面为一个ImageView、日期为两个TestView、备注则为一个EditText控件。当提交的时候会通过UserClient.java中的get方法发出一个异步请求提交请假信息,后台接受后将数据写入数据库中。请假功能模块实现流程如图4-7所示。图 4-7 学生请假流程图当学生提交申请后,辅导员和领导可以在查询请假中看到未审核的请假信息,辅导员和领导可以选择是否通过审核,审核流程如图4-8所示。图 4-8 审核流程图教师可以在查询请假里面查看到自己所专家课
43、程的请假信息,这里只显示请假通过审核的信息;学生可以查看自己请假状态是否被审核通过;辅导员和领导可以查看所有未审核请假信息。至此请假功能模块结束。4.2.4 考勤模块实现考勤模块重要实现了用户查看考勤记录的功能,学生进行签到,教师对学生签到信息进行审核。在学生签到中通过课程、时间以及地点来进行拟定学生是否能签到成功,这里面课程通过学生选择,时间自动在提交的时候获取,而地点则由百度定位来实现。签届时可以根据控件com.baidu.mapapi.map.MapView这个百度控件来查看当前自己在地图上的大体位置,在定位中定位会在BDLocationListener中获得返回的经纬度和地址描述,通过
44、重写onReceiveLocation方法来获取定位的信息,然后调用服务器方法来和教师位置作对比,假如在该课程签届时间内且地理位置相差距离在30米内。则算签到成功,否则记为迟到。如图4-9所示。图 4-9 学生签到流程图而在教师查询考勤信息时,默认显示的是当前课的所有考勤信息。可以点击记录进入按学生姓名查询考勤信息。相称于在默认情况下加了查询条件,使得教师可以更快速的找到想要的信息。如图4-10所示。图 4-10 教师查看及添加考勤流程图当辅导员和领导查询考勤信息时,默认显示所有考勤信息。同样可以点击进入一个新的Activity按照课程、时间、类别的方式来指定条件查询。如图4-11所示。图 4
45、-11 辅导员、领导考勤流程图4.2.5 个人中心模块功能实现个人中心模块重要实现了用户查看个人基本信息、修改个人信息的功能。在这里可以查看到当前账号的账号名和昵称,可以直接对昵称和密码进行修改,当需要修改的时候会验证两个EditText控件中的内容是否为空,不为空的时候才会进行提交修改。Android会把这个请求提交给服务器,让服务器自己选择UserController中相应的方法解决。个人中心模块流程图如图4-12所示。图 4-12 个人中心流程图这里根据当前登录账号,对此账号的昵称和密码进行修改。这里也使用AsyncHttpClient进行异步请求修改账号昵称和密码并根据返回的json拟定是否修改成功。5 实验与验证这里本人将从四个角色分别测试本程序是否可以完毕其所有功能,每个角色在这个系统中的功能不同需要分开来演示。(1)学生身份实现的功能一方面启动应用,就会启动LoginActivity这个Activity,这个界面重要部分是图片TextV