基于Android的课堂考勤系统的设计与实现(共35页)_第1页
基于Android的课堂考勤系统的设计与实现(共35页)_第2页
基于Android的课堂考勤系统的设计与实现(共35页)_第3页
基于Android的课堂考勤系统的设计与实现(共35页)_第4页
基于Android的课堂考勤系统的设计与实现(共35页)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

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关键词IAbstra

3、ctIKey wordsI1 绪论11.1 研究目的与意义11.2 国内外的研究现状11.3 本文的主要组织结构12 系统开发环境介绍22.1 Android开发平台基础知识22.1.1 Android平台简介22.1.2 Android的系统结构22.2 课题相关的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 系统整体架构

4、114.2 从功能模块看核心流程124.2.1 服务端连接设计实现124.2.2 登录注册设计实现124.2.3 请假功能模块的实现134.2.4 考勤模块实现144.2.5 个人中心模块功能实现165 实验与验证176 系统测试246.1 系统测试方法246.2 系统测试过程246.3 测试总结277 设计总结27参考文献28致谢29摘 要本论文介绍的是基于安卓技术的课堂考勤系统,本软件能够为用户提供实时查看课程信息,进行课堂签到的功能,能够解决当前高校对考勤信息管理困难的问题,对考勤信息进行统一的管理,提高考勤信息的实时性和统一性。这样能让高校对考勤信息的管理变得更加方便快捷,节省人力物力

5、,为需求双方提供了一个便利的平台。本软件系统采用Eclipse开发环境结合Android SDK进行设计,开发了一个基于Java语言的课堂考勤软件。系统主要实现了登录注册、请假、考勤签到、个人中心等主要功能模块。在请假和考勤签到中使用了百度定位的解决了签到时候对学生位置的定位,在查询考勤信息中可以根据不同的条件获得符合要求的考勤信息,个人中心可以对账号密码等进行修改。关键词课堂考勤;Android;Android SDK;AbstractThis paper introduces a class attendance system based on Android technology.Thi

6、s software can provide real-time information for the user to view the curriculum,classroom attendance function and can solve the difficulties in managing current college attendance information for colleges and universities, uniformly managing the attendance information and improving the real-time an

7、d consistency of attendance information.This can make the management of attendance information more convenient and quick,and save manpower 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

8、 using Eclipse to develop environment and combining with Android SDK to design.The system mainly implements the major functional modules 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

9、position when students sign.In the inquiry of attendance information,the system can access to the attendance information that meets the requirements according to different conditions.The password of the account number can be modified in the personal center.Key wordsClass attendance;Android;Android S

10、DK;1 绪论1.1 研究目的与意义开发本系统的目的,就是要解决目前高校中关于学生请假与上课出勤管理中所面临的一系列问题。开发出高校学生考勤管理系统能有效地提高高校办事效率,解决目前高校学生请假及上课出勤管理问题,实现学生请假及上课出勤信息对任课教师、班主任、院系领导、学校领导透明,使班主任、院系领导及时把握学生的学习情况,及时与学生沟通,提高教学质量。但是传统教学中,学生的考勤信息仅作为教师课程总评结果中对学生日常表现的评价依据。而且还存在以下一些问题:(1)考勤信息由教师人工操作、管理,效率低下;(2)不同教师所掌握的考勤信息分散、缺乏联系;(3)信息汇总往往发生在期末总评期间,实时性差;

11、(4)记录形式不规范统计困难;(5)教师对教学期间的缺勤信息缺乏及时的处理,利用率低下。本设计是以Android操作系统为基础的“课堂考勤”软件的设计与实现。为了方便用户可以随时随地查看考勤信息,申请请假,在线签到等,一种高效的办法就是做成应用程序拓展到用户的终端设备上,并且提供一些辅助功能。所以这次毕业设计的目标就致力于开发出一款基于Android手机平台的课堂考勤系统,来满足用户的需求。1.2 国内外的研究现状就目前的情况和事实来看,Android市场正在以迅猛的方式,慢慢地扩展了它的产品,以满足不同人群的需求,而不仅仅是做一些低端的智能手机,智能机器能够满足一般人群的日常生活,包括娱乐的

12、需求,会产生一些比较昂贵,但高品质的高端智能手机,适合商务人士使用。智能机现在越来越多的被大家所接受,相较于其他品牌的普通机器,人们喜欢买一种便宜的,性能优异的智能机,其原因是因为他们能满足一般人谁使用手机的需求,性能特点各方面也让用户感到这是一个非常良好的感觉和行动,而不是作为高端机的价格昂贵。很多人喜欢用手机玩系统,看视频等,功能有点硬件和软件的手机需要增加的需求,比如在屏幕上流畅,速度快,兼容性好等优点,对这些人来说,也有很多高端智能手机采用Android,这款手机完全可以满足人们的日常需求。现在应用的安卓系统将更加努力来改善,有许多出名的应用程序,如地图导航,视频点播系统等。现在And

13、roid的发展速度超出了所有人的想象,为安卓开发的软件也非常乐观,这是一个值得发展壮大的领域,安卓也将是一个主流系统,供市民使用。1.3 本文的主要组织结构第一章绪论:全文的研究目的与意义、国内外的研究现状是本章的主要内容。此设计的研究目的与意义在第一节做出了简单介绍,第二节对所用的工具及技术做出了简略的叙述,本文的主要组织结构在第三节做出了简单介绍。第二章研究基础:本章主要介绍了全文用到的几个基本概念以及使用的开发工具。第一节对全文需要用到的基本概念给出了解释。第二节对完成本次设计所需的开发工具做了简要介绍。第三章系统分析:系统的功能模块和系统使用流程在这一节进行了介绍。第四章系统设计及主要

14、模块功能:本章对整个系统的实现、系统架构进行了介绍,并将核心内容进行了实现,如:签到、登录、查询请假、查询考勤等。第五章系统实现:这一章是对本次设计的各种功能进行细致的讲述实现过程及系统如何完成这些功能的。第六章系统测试:这一章是对本次设计的各种功能进行细致的测试,验证系统可用。第七章总结:这一章对本次毕业设计进行了自我总结。2 系统开发环境介绍2.1 Android开发平台基础知识2.1.1 Android平台简介Android属于开源移动操作系统,该系统主要在Linux平台上进行设计,Andy Rubin是该系统的最初设计主体,随后Google对其进行收购,并且在07年正式宣布该平台的建设

15、成功,号称是首个为移动终端打造的真正开放和完整的移动软件。该平台采用软件叠层架构,由操作系统、中间件、用户界面和应用软件组成。该平台在具体实践过程中获得了快速的发展,究其原因:其一,Google非常支持该系统的发展,该公司非常关注该系统在以下两个方面的优势,即开源以及标准化,同时希望在创新移动产业过程中让这一优势得到体现,借此来解决相关问题,以此来让个人也能够想享受到开放性的信息服务系统服务。其二,Android自身所具有的开放、应用程序相互平等、应用程序之间沟通无限制的优势有也是其快速发展的重要原因。2.1.2 Android的系统结构该系统架构在具体设计过程中遵循的思想为分层架构,形成了清

16、晰的结构以及层次,做到了分工合作。具体来说,其主要由以下几个部分组成,即应用程序层、应用框架层、系统库和Android运行库以及Linux内核层,如图2-1所示。图2-1 Android系统架构图接下来对每一层的功能进行具体分析:第一,应用层,这一层的应用程序在编写过程中主要使用的语言为JAVA语言,并且有非常关键性的应用程序,典型代表有通讯录管理、收发信息以及拨打电话等等。这些核心应用可以被编程人员自己用JAVA语言开发的应用程序进行替代。第二,应用程序框架层,在具体开发这一系统时,这一层发挥着基础性作用,相当数量核心应用程序来实现核心功能过程中,都需要依托这一层才能够实现。立足于该层中的重

17、用机制,开发人员对其给予的组件部分,能够使开发应用程序快速的实现,同时能够方便地替换平台本身的各种应用程序组件。第三,系统库以及Android运行库,系统库在应用程序中发挥着决定性影响,并且连接以下两个层,即框架层以及Linux内核层。在对该系统进行运行过程中,其具体组成内容有核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库。第四,Linux内核层,该系统的关键功能实现都需要依托这一层次来实现,典型代表有安全性、相关进程、管理以及网络协议等等。Linux内核也同时作为硬件和软件栈之间的抽象层。本文主要是在Android应用基础上来进

18、行相关软件开发,这意味着有必要介绍Android的应用程序基础知识和相关组件。2.2 课题相关的Android技术介绍2.2.1 Android终端与Web服务器数据交互在android中发布应用的途径主要有:第一,客户端应用程序,依托Android SDK来完成开发,在用户设备安装过程中,其后缀为.apk。第二,作为web应用程序,使用web标准制定和通过web浏览器访问一一不需安装任何东西。在最终决定应用程序方法时,受到诸多因素影响,但是为能够支持viewport属性等等,以此来进一步简便web应用程序开发。除此之外,能实现根据屏幕大小确定web应用的适当尺寸、根据屏幕分辨率提供图片和不同

19、风格等功能。在这种情况下,提出屏幕考虑因素可以让web应用程序开发难度进一步减少。因为所有Android类型的款的屏幕可以帮你将web页面设计的很好。在客户端以及web端中建立相应的程序并不需要对相关程序进行设计,这也是该系统的特点之一。据此能够综合使用这两方面内容,以此来对相关客户端进行开发,并且在程序中添加web页。下图直观显示如何可以访问web页从web浏览器或Android的应用程序。如图2-2所示。图2-2 Android终端与Web服务器端数据交互2.3 开发工具介绍(1) Eclipse介绍Eclipse源代码具有开放性的特点,从本质上看,其仅仅包含了一个框架以及一组服务,然而其

20、存在相应的标准插件集,可以据此来对开发环境进行构建,是一个基于Java的可扩展开发平台。Eclipse主要选择了轻型软件组件化架构来建立插件集,据此来在客户机中增加相应的功能,例如可以支持更多的开发语言。现阶段,已经存在的插件可以对如下内容进行使用,即C/C+(CDT)、Ruby等等,同时也可以开发数据库。插件架构可以在当前环境中增加任何内容,具体来说,可以实现配置管理等等,并不仅仅是对相关编程语言进行使用。其主要结合如下思想进行设计,即依托插件来实现所有的功能,其不具有较大的核心,主要通过插件方式来在核心中添加相关的功能。Eclipse基本内核包括:图形API,Java开发环境插件(JDT)

21、,插件开发环境(PDE)等。Eclipse是一个开放源代码的软件开发项目。它具体包括四个部分:Eclipse Platform,JDT,CDT和PDE,主要由以下几个项目组成:Eclipse项目、工具项目和技术项目。PDE用来支持插件开发、CDT支持C开发、JDT支持Java开发、Eclipse Platform则提供了一个通用的开发平台,是一个开放的可扩展IDE。要据此来编写Android工程,首先需要形成相应的开发环境,在这一过程中,首先需要对该工具进行安装,然后在其上安装ADT插件,再指定SDK正确的路径,这样变可以创建android虚拟机了。(2)关键技术介绍Android平台开发方面

22、包含基本的应用功能开发、数据存储、网络访问这三大块。如图2-3所示。图 2-3 Android平台开发(3)功能开发标准的程序由如下4部分组成即Activity、Broadcast Intent Receiver、Service、Content Provider来实现。(4)数据存储在Android,可供选择的存储方式包括了SharedPreferences、文件存储、SQLite数据库存储方式、内容提供器方式(Content Provider)以及网络方式5种,本系统网络方式主要是通过网络访问该网络提供的网络服务接口实现数据的读写服务。(5)网络访问方面主要是Http访问技术的封装,通过ja

23、va.*;以及A.*;下面提供的HttpPost、DefaultHttpClient、HttpResponse等类提供的访问接口来实现具体的服务访问。本软件采用Java作为开发语言,布局和数据存储是开发本软件的关键技术,布局用来设计用户交互界面,使用xml技术设计,而xml中控件的位置和状态则离不开布局的使用,用户界面的设计是否美观和合理直接影响用户体验,因此运用好布局技术是直接和用户相关的,而数据存储技术则记录了用户所有的操作数据和用户所需要提取的数据。3 需求分析及系统概要设计3.1 系统可行性分析(1)技术可行性Java提供了稳定的性能、优秀的升级性、更快速的开发、更简便的管理、全新的语

24、言以及服务。整个系统帮用户做了大部分不重要的琐碎的工作。且关于这方面的书籍、资料比较齐全。(2)操作可行性本系统采用基于安卓客户端,利用安卓手机安装软件就能够进行访问和操作,且界面简单易操作,用户只要平时有在用过智能手机,都能进行访问和操作。本系统具有易操作、易管理、交互性好的特点,在操作上是非常简单的。因此本系统可以进行开发。而且对于目前高校考勤信息管理困难的问题可以进行有效的解决,提高考勤信息的实时性和统一性。(3)经济可行性系统是基于Android的软件,采用Eclipse平台。所以系统在开发人力、财力要求不高。且能够有效降低高校中对考勤花费的人力物力。具有经济可行性。3.2 功能需求分

25、析用户使用考勤系统,首先需要登录成功。通过http协议发送post请求给后台服务器,后台服务器通过controller接受登录的用户名和密码选择对应方法验证是否登录成功。当学生没有账号时,可以点击学生注册进行注册。输入所有信息后,且账号名不为空,两次密码相同,则将注册信息通过异步post提交给后台,后台调用数据库添加学生信息。教师、辅导员以及领导需要在后台由管理员进行添加。系统主要分为考勤、请假、个人信息三个模块。进入系统首页后可以选择这三个功能模块。在学生登录后,点击请假可以查看请假状态(请假是否通过审核),并且可以添加请假的申请或者删除之前的请假申请;当点击考勤时根据课程、时间、当前定位地

26、点来确定学生是否签到成功。在教师登录后,点击查看请假信息可以查看当前通过审核的请假信息。当点击查看考勤信息可查看此教师教授课程的所有考勤信息,教师也可以根据学号添加缺勤信息,或者点击统计然后根据学生姓名搜此学生的各种考勤信息。辅导员和领导登录后,点击查看请假信息可以查看所有请假信息,并且可以选择是否通过请假申请;而点击查看考勤信息可以查看所有学生的考勤信息,并且可以根据课程、时间来查询所有对应的考勤信息。用户登录后都可以在个人界面查看到昵称和账号,也可以直接修改昵称和密码。图 3-1 系统功能结构图3.3 数据库设计(1)学生实体属性图,如下图3-2所示。图 3-2 学生实体属性图(2)教师实

27、体属性图,如下图3-3所示。图 3-3 教师实体属性图(3)辅导员实体属性图,如下图3-4所示。图 3-4 辅导员实体属性图(4)领导实体属性图,如下图3-5所示。图 3-5 领导实体属性图(5)学生、课程考勤局部E-R图,如下图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(2

29、0)识别身份banji班级varchar(20)学生所在班级tel电话varchar(50)mibao密保varchar(50)找回密码需验证lat经度varchar(20)lng纬度varchar(20)教师表,如下表3-2所示。表 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经度varch

30、ar(20)lng纬度varchar(50)辅导员表,如下表3-3所示。表 3-3 辅导员表字段字段名类型意义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-4所示。表 3-4 领导表字段字段名类型意义id编号int自增长gonghao工号varchar(20)主键pass密码varchar(50)name姓

31、名varchar(50)type角色varchar(20)识别身份tel电话varchar(50)mibao密保varchar(50)找回密码需验证lat经度varchar(20)lng纬度varchar(20)考勤表,如下表3-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)

32、签到课程lat经度varchar(20)lng纬度varchar(20)请假表,如下表3-6所示。表 3-6 请假表字段字段名类型意义id编号int自增长uid学生工号varchar(20)tid教师工号varchar(20)beizhu备注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

34、 Mapping)进行处理器管理和视图解析器(View Resolver)来进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request,response) 方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。图 4-1 Spring MVC应用结构核心架构的具体流程步骤如下:(1)首先用户发送请求至DispatcherServlet,前端控制器收到请求

35、后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;(2)DispatcherServlet至HandlerMapping,HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器)对象,通过这种策略模式,很容易添加新的映射策略;(3)DispatcherServlet至HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器

36、;(4)HandlerAdapter至处理器功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视图名);(5)ModelAndView的逻辑视图名至ViewResolver,ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;(6)View至渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术;(7)返回控制权给DispatcherServlet,并且由D

37、ispatcherServlet返回响应给用户,到此一个流程结束。图 4-2 系统数据流向在本系统中,用Spring MVC开发框架来构建后台服务端,利用了其提供了基于Java的高效开发的特点,可以快速构建稳定、功能强大的后台应用服务。如图所示,本系统从Android端直接向由Spring MVC搭建的服务端获取请求,服务端接受请求过后或调用远程WEB接口获取数据,或调用本地数据库获取数据,然后返回JSON数据结构的返回数据给Android端。如此一来,就形成了一个运转良好的信息回路。不但把原有系统进行了整合,而且还加入了一些新功能。4.1.2 系统整体架构基于Android手机的课堂考勤系统

38、的层次和布局如图4-3所示:图 4-3 系统结构图由上图可见系统是由三个部分组成,客户端、服务端和数据端,三个层次在系统中承担的角色各不相同。客户端就是指移动终端,用户通过3G或者WIFI利用移动设备进入系统,与系统建立通信。对于本系统来说,该层是基于安卓的应用程序搭建,其中包括应用程序的界面部分(Android View)和应用程序的逻辑控制(Android Controller)搭建。该层通过调用服务端接口获取信息。服务端是一个基于Java平台的WEB应用,与传统的网络应用程序不同的是,该层不包含界面的展示,只是为前台提供JSON数据接口。该层包括控制层和业务逻辑层,控制层负责提供外部接口

39、以及对接口进行数据定义,业务逻辑类定义了访问获取数据库信息的逻辑和访问数据库的方式。数据层包含两个数据源,一部分是本地数据库的访问,另一部分是对现有的基于Android平台的课堂考勤系统数据库的访问。无论是数据的交互还是界面以及流程的设计,本系统都遵循了MVC设计原则,尽把系统的功能流程拆分成为具有单独功能的层次,这样一来,当未来需要对系统进行修改或者扩展的时候就会变得非常方便,简而言之,提升了系统的扩展性。同时,系统安全设计需要贯穿整个数据流程,为信息系统的存储、传递、利用提供安全性保障。4.2 从功能模块看核心流程4.2.1 服务端连接设计实现在本系统我们是使用Http网络协议技术,它具有

40、GET和POST两种请求方式,对于服务器交互的数据,我们使用JSON字符串,Gson框架对它进行解析和转换,这些方法都分别封装在HttpsUtil.java和JsonUtils.java两个工具类中。4.2.2 登录注册设计实现点击课堂考勤APP的桌面程序图标进入登录界面即login_main.xml界面,先从SharedPreferences中取出上次登录的用户名、密码,如不为空则赋值给相应的输入框,如为空则要求用户输入自己用户名密码,点击登录按钮执行validate() 验证用户、密码是否规范,符合要求后调用UserClient.get()方法,开启一个异步任务将数据通过Http传服务器与

41、数据库的用户信息进行匹配,若用户名、密码正确无误则用户登录成功,同时也将本次用户、密码也保存到SharedPreference中。用户登录的流程图如4-4所示。图 4-4 用户登录流程图如果是新用户,则点击登录界面上的注册按钮,进入到activity_register.xml页面在RegisterActivity.java中进行注册,此时用户需要输入基本信息,分别为用户名、密码、确认密码等信息。点击注册按钮验证信息的规范性后将注册信息封装提交服务器并保存到数据库中。注册成功后返回登录界面。如下图4-5所示。图 4-5 用户注册流程图如果忘记密码,则可以点击找回密码来通过密保找回密码。在点击提交

42、时会验证是否为空,当两个EditText都不为空的时候才能提交。服务器去数据库查询,如果查到对应用户,则返回当前用户的姓名。如下图4-6所示。图 4-6 用户注册流程图4.2.3 请假功能模块的实现请假功能模块主要实现了用户查看请假记录,学生可以发起请假信息,辅导员和领导对学生的请假信息进行审核。学生申请请假的界面是功能实现在qingjia_add.java中,界面为一个ImageView、日期为两个TestView、备注则为一个EditText控件。当提交的时候会通过UserClient.java中的get方法发出一个异步请求提交请假信息,后台接受后将数据写入数据库中。请假功能模块实现流程如

43、图4-7所示。图 4-7 学生请假流程图当学生提交申请后,辅导员和领导可以在查询请假中看到未审核的请假信息,辅导员和领导可以选择是否通过审核,审核流程如图4-8所示。图 4-8 审核流程图教师可以在查询请假里面查看到自己所教授课程的请假信息,这里只显示请假通过审核的信息;学生可以查看自己请假状态是否被审核通过;辅导员和领导可以查看所有未审核请假信息。至此请假功能模块结束。4.2.4 考勤模块实现考勤模块主要实现了用户查看考勤记录的功能,学生进行签到,教师对学生签到信息进行审核。在学生签到中通过课程、时间以及地点来进行确定学生是否能签到成功,这里面课程通过学生选择,时间自动在提交的时候获取,而地

44、点则由百度定位来实现。签到时可以根据控件com.baidu.mapapi.map.MapView这个百度控件来查看当前自己在地图上的大致位置,在定位中定位会在BDLocationListener中获得返回的经纬度和地址描述,通过重写onReceiveLocation方法来获取定位的信息,然后调用服务器方法来和教师位置作对比,如果在该课程签到时间内且地理位置相差距离在30米内。则算签到成功,否则记为迟到。如图4-9所示。图 4-9 学生签到流程图而在教师查询考勤信息时,默认显示的是当前课的所有考勤信息。可以点击统计进入按学生姓名查询考勤信息。相当于在默认情况下加了查询条件,使得教师可以更快速的找

45、到想要的信息。如图4-10所示。图 4-10 教师查看及添加考勤流程图当辅导员和领导查询考勤信息时,默认显示全部考勤信息。同样可以点击进入一个新的Activity按照课程、时间、类别的方式来指定条件查询。如图4-11所示。图 4-11 辅导员、领导考勤流程图4.2.5 个人中心模块功能实现个人中心模块主要实现了用户查看个人基本信息、修改个人信息的功能。在这里可以查看到当前账号的账号名和昵称,可以直接对昵称和密码进行修改,当需要修改的时候会验证两个EditText控件中的内容是否为空,不为空的时候才会进行提交修改。Android会把这个请求提交给服务器,让服务器自己选择UserControlle

46、r中对应的方法解决。个人中心模块流程图如图4-12所示。图 4-12 个人中心流程图这里根据当前登录账号,对此账号的昵称和密码进行修改。这里也使用AsyncHttpClient进行异步请求修改账号昵称和密码并根据返回的json确定是否修改成功。5 实验与验证这里本人将从四个角色分别测试本程序是否能够完成其所有功能,每个角色在这个系统中的功能不同需要分开来演示。(1)学生身份实现的功能首先启动应用,就会启动LoginActivity这个Activity,这个界面主要部分是图片TextView、两个EditText、一个Button按钮,两个EditText中获取账号和密码,按钮被点击时候触发监听

47、时间去验证数据是否合法,然后提交给服务器,由服务器的select()方法在数据库中匹配是否存在这个账号,并且密码是否正确。如果正确会返回当前登录用户的角色,然后进入对应功能模块。如下图5-1所示。图 5-1 登录界面接下来点击学生注册,会调用RegistActivity这个Activity。这个Activity中当提交的时候会对各个EditText进行是否为空的验证。两次输入密码会验证两次是否相同。当两个条件都满足的时候提交才能将数据提交给服务器,让服务器对数据库进行添加操作。如下图5-2所示。图 5-2 学生注册界面输入信息后点击提交,由服务器先用select()方法验证学号是否重复,如果重

48、复则不能注册。如果不重复则执行User.add()方法添加学生信息,然后返回注册成功消息,成功后自动返回登录界面,这里成功后会将注册这个界面的Activity用finish()方法结束掉。如下图5-3所示。图 5-3 注册成功后返回登录界面登录进入系统,这里会发送异步请求给服务器,服务器在数据库中查询,匹配则登录成功,并按照不同角色登入不同Activity。学生登录的是com.example.qingjia包下的MainActivity这个Activity。如下图5-4所示。图 5-4 学生登录界面在请假中可以看请假结果,点击请假后会通过Intent跳转到qingjia_list.java这个

49、Activity中,并发出异步请求获取所有的请假信息,然后通过返回的json数据将数据再用adapter添加成一个个view,然后显示上去。如下图5-5所示。图 5-5 查看自己请假状态点击右上角加号可以申请请假。点击右上角加号跳转到qingjia_add.java中,当填写了请假信息后,点击提交时会验证时间和请假原因是否为空,不为空则发送请求给服务器,执行添加操作。如下图5-6所示。 (a) 未填写请假 (b) 填写后图 5-6 申请请假界面选择请假课程、图片、时间、请假原因后点击提交,即可申请请假。这里选图片的时候,如果图片过大,可以通过cropImage()方法对图片进行剪切。成功添加后

50、如下图5-7所示。在提交后会从服务器获取一个返回值,当返回值为1的时候就会代表请假成功,用MyToastUtil.java中这个ShowToast方法来显示一个成功提示的吐司提示。图 5-7 申请成功点击请假信息可以选择是否取消请假。当选择删除的时候,就将删除的信息提交到服务器执行kaoqingController.deleteById()方法执行删除操作。删除完了后会自动刷新页面,重新使用异步请求获取请假数据,然后显示在界面上。如下图5-8所示。(a) 选择操作 (b) 选择删除后图 5-8 删除请假申请在登录界面点击考勤,并选择课程后即可签到,如果此时离这节课的老师太远则会记为迟到。这个过

51、程中调用了百度定位的接口,通过重写onReceiveLocation方法获取BDLocationListener中返回的地址信息。这个地址信息中有三个需要的数据分别为:address、lat、lng,address是当前位置的大致信息,lat和lng分别是经度和纬度,定位主要靠经度和纬度进行计算距离来判断是否符合签到。然后finish()掉这个Activity。如下图5-9所示。 (a) 选择课程并提交 (b) 成功提交图 5-9 考勤签到点击个人信息,里面可以修改当前账号密码。打开mycenter.java这个Activity,如果修改用户信息不为空,则提交要求改的昵称和密码。服务器通过js

52、on中的数据自动匹配kaoqingController中的update()方法更新信息。然后根据返回json判断是否修改成功,用吐司提示。如下图5-10所示。 (a) 个人信息界面 (b) 修改信息图 5-10 更新昵称和密码提交后根据服务器返回的json数据来判断是否修改成功,当返回1的时候就提示成功。如下图5-11所示。图 5-11 更新成功(2)教师身份实现的功能教师登录后点击请假记录可以查看已通过审核的请假信息。这里跳转的是com.example.qingjia.jiaoshi包下的qingjia_list.java这个Activity。如下图5-12。图 5-12 查看通过审核的请假

53、点击查询考勤记录可以看教授课程的考勤情况,通过UserClient中的get方法发出异步请求获取考勤信息。如果点击统计则跳转到tongji_list.java中,点击可以根据学生信息将考勤信息进行筛选,然后显示。如下图5-13。 (a) 显示考勤 (b) 按姓名查询图 5-13 查看所有本课考勤信息教师可以自己添加缺勤记录。这里通过学号添加缺勤信息,将学号通过异步请求发送给服务器,然后调用kaoqingController中的buchong()方法添加缺勤信息。如下图5-14所示。(a) 填写缺勤学生学号(b) 成功添加并刷新图 5-14 添加缺勤信息注:教师个人信息部分和学生相同,在此就不多

54、做赘述。(3)辅导员、领导身份实现的功能请假信息中可以查看所有请假信息,点击可以选择是否审核通过。这里先跳转到com.example.qt包下的qingjia_list.java这个Activity,这里默认条件只显示需要审核的请假信息。点击确认删除后将请求提交给服务器,服务器执行qingjiaController中的update()方法修改请假信息的状态。处理完成后,如果成功会返回1的结果表示操作成功,由此完成对请假的审核。如下图5-15所示。 (a) 审核请假 (b) 批准请假图 5-15 审核请假审核通过后学生这里显示的请假信息。审核后会自动调用UserClient中的get方法重新获取请假信息,然后刷新界面。如下图5-16所示。图 5-16 审核通过后显示结果如果点击查询考勤信息,可以查看所有课程的迟到和缺勤的信息。当点击统计时候跳转到tongji_list.java中,然后可以根据课程、时间和类别对考勤信息进行筛选。这里同样使用UserClient中的get方法进行异步请求

温馨提示

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

评论

0/150

提交评论