




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
盐 城 师 范 学 院毕业设计 基于Android的学勤系统的设计与实现学生姓名 学 院 信息工程学院 专 业 软件工程 班 级 12(3) 学 号 指导教师 2016年 5 月16日盐城师范学院毕业设计基于Android的学勤系统的设计与实现摘 要国家对于教育行业的大力支持以及我国教育行业的逐渐成熟,对于学生学习管理提出了新的考验。学勤管理作为提高学生学习质量的重要环节,越来越受到学校的重视。学勤系统是在学生管理中引入了计算机与智能手机等高科技设备,替代了部分的人力劳动。传统的考勤管理比较繁琐,一般需要授课老师拿着名单和笔进行记录,请假的学生需要同学帮忙将请假条拿给老师查看并记录,课后教师还需要将请假和缺勤的学生名单统计出来,完成这些工作需要花费大量的时间。为了提高学校管理工作效率,实现考勤、请假、统计、信息交流的一体化,本文设计并实现了一个基于Android的学勤系统。本系统运用了Android开发、Java Web开发等技术。系统分为Android手机客户端和Web服务端两部分,在Android客户端,主要完成了学生用户注册、登录、签到、请假申请、个人信息、考勤记录查询、信息交流等各项功能。在Web服务端,主要完成了管理员对考勤管理相关信息的增加、删除、修改等功能以及教师和学生查看功能。【关键词】Android;学勤系统;MySQL1全套设计加扣 3012250582Design and implementation of attendancechecksystemforteachingbased on android AbstractThe countrys strong support for the education industry and the gradual maturity of Chinas education industry have being put forward a new test for students learning management. As an important link to improve the quality of student learning, attendance check management for teachingteaching has been paid more and more attention by the school. High-tech equipment such as computer and smart phone is introduced in the education and management of students to replace the part of the human labor. The traditional attendance management is trivial. Generally, it needs the instructors to take a list and pen to record. Someonewhoasks for leave should ask for classmates to help in taking the excuse to instructors. Instructors also need to figure out the list of leave and student absences, After-school. Completion of these tasks will consume a lot of time. It cannot meet the fast-paced life now. In order to improve the efficiency of the school management work, and realize the integration of attendance, leave, statistics, information exchange, this paper designed and implemented an attendancecheck system for teaching based on android.The system uses Android development, Java Web development and other technology. It is divided into Android client and Web server. In the Android client, the system mainly completed the student user registration, login, attendance, leave requests, personal information, attendance records check, exchange of information and other functions. In the Web server, the system mainly completed the administrator adding, deleting, modifying, and other functions as well as teachers and students viewing. Keywords Android, Attendancechecksystemforteaching, MySQL目 录1 绪论11.1 背景11.2 主要研究内容11.3 本文的主要工作21.4 本文组织结构32 开发环境与相关技术概述32.1 开发环境32.1.1 Eclipse32.1.2 MyEclipse32.1.3 MySQL32.2 相关技术42.2.1 Servlet技术42.2.2 JSP技术42.2.3 Camera应用技术52.2.4 Zxing库的使用52.3 本章小结53 系统分析与设计63.1 系统功能需求分析63.1.1 用户及角色63.1.2 功能需求73.1.3 非功能需求83.2 系统总体结构设计93.2.1 登录注册93.2.2 我要签到模块103.2.3 请假申请模块113.2.4 个人信息模块113.2.5 客户端其他模块123.2.6 考勤管理模块123.2.7 统计管理模块133.2.8 信息交流模块133.2.9 信息管理功能143.3 数据库设计143.3.1 系统E-R图设计143.3.2 数据库表设计173.4本章小结204 系统实现204.1 我要签到204.1.1 二维码的生成204.1.3 Camera管理204.1.4 Camera自动对焦214.1.5 解码线程214.1.6 返回解码结果214.2 请假申请224.2.1 使用权限设置224.2.2 Camera调用224.2.3 获取bitmap格式的图片234.2.4 保存图片234.2.5 上传图片234.3 客户端与服务端的数据连接244.3.1 权限设置244.3.2 HttpClient框架中Get方法请求数据244.3.3 HttpClient框架中Post方法请求数据244.4 服务端功能实现254.4.1 登录模块254.4.2 信息管理模块274.4.3 考勤管理模块284.4.4 信息交流模块304.5 本章小结305 系统测试与结果分析315.1 功能测试315.2测试结果分析35结 论37参考文献38致 谢391 绪论1.1 背景传统的考勤管理比较繁琐,一般需要授课老师拿着名单和笔进行记录,请假的学生需要同学帮忙将请假条拿给老师查看并记录,课后教师还需要将请假和缺勤的学生名单统计出来。这些工作的完成将会消耗大量的时间,已不能满足现在快节奏的生活。信息化的浪潮对学校管理发生着潜移默化的改变。在教育业发展日益成熟的今天,学校考勤管理在学校教育中越来越重要,要想提高学生的水平,学校的考勤管理必不可少,而且必须做到位。由于科技和经济水平的发展,现在的在校大学生基本每人都配有属于自己的智能手机和笔记本,随身携带手机已成为大多数人的习惯。而Android开发技术日渐成熟,书籍、报刊等资料也可在大多数的图书馆找到,因此设计并实现一个基于Android的学勤系统能够普遍运用并且在技术也是可行的。1.2 主要研究内容基于Android的学勤系统主要解决如下几个问题:(1) 客户端1) 登录注册功能:新用户能够注册,老用户根据已注册的账号登录;2) 我要签到功能:调用摄像头,扫描服务端提供的二维码;3) 请假申请功能:通过填写请假原因、请假开始时间和请假结束时间,并且上传请假条完成请假功能;4) 个人信息功能:用户可对本人的信息进行查看、修改,信息项包括用户名、班 级、学号、密码、手机号等信息;5) 考勤查询功能:显示用户本人的签到情况,并且可以通过选择时间查询用户自己的签到信息;6) 信息交流功能:用户能够发送信息,也能够接收其他用户发送的信息,如在线讨论问题或通知课程变化;7) 密码修改功能:用户登录后可以根据需要更改密码,增加信息的安全性。(2)服务端1) 学生管理功能:管理员对所有的学生信息进行查询、添加、修改、删除操作; 教师、学生对所有的学生信息进行查询操作;2) 教师管理功能:管理员对所有的教师信息进行查询、添加、修改、删除操作; 教师、学生对所有的教师信息进行查询操作;3) 班级管理功能:管理员对班级进行查询、添加、删除操作; 教师、学生对班级进行查询操作;4) 课程管理功能:管理员对课程进行查询、添加、删除操作; 教师、学生对课程进行查询操作;5) 考勤管理功能:提供相应课程的二维码,管理员可查询、删除已有签到信息,能够添 加新的考勤信息; 教师、学生可以查询已有签到信息;6) 统计管理功能:管理员、教师和学生查询课程的考勤情况和请假人员名单;7) 信息交流功能:管理员可查询所有发布的信息; 教师和学生可发布并查询所有发布的信息。1.3 本文的主要工作本研究课题是基于Android的学勤系统的设计与实现,其用户是学校负责考勤方面的管理员、教师和学生,需要完成考勤管理流程中的签到、请假、统计缺勤和请假的人员的工作,另外,为了师生更方便地交流学习生活信息,本系统还增加了信息交流的功能。考虑到管理员、教师一般使用PC机工作,学生大多使用手机设备,因此本系统既开发了服务端系统又开发客户端,并将这些功能按照用户的使用概率进行了划分。基于客户端大部分是学生使用,因此将签到、请假、信息查看或修改、个人考勤记录查询、信息交流、密码修改等功能划分在客户端。其中,签到功能的实现需要服务端提供相应课程的二维码,客户端通过调用Zxing库实现。请假功能需要填写请假原因、请假开始时间、请假结束时间、上传假条照片的工作,请假时间设置是通过Calendar类获得系统时间,DatePickerDialog设置日期控件的实现。上传照片用Intent直接调用相机,并调用startActivityForResult(intent, 1)函数返回图片 。而信息交流技术的实现主要是通过调用sendEmptyMessage()方法进行发送信,由于信息发布是共享的,因此使用ArrayList记录群发列表。本系统的服务端管理员、教师和学生都可以登录,但管理员比教师的多了对信息删除、修改的权限。服务端功能的实现采用了JSP+Servlet+JavaBean模式的MVC设计理念,DAO类中主要封装实体对象,JSP界面实现用户与程序之间的交互,Servlet类实现对请求的控制。其中Servlet类通过doPost()方法进行请求处理。1.4 本文组织结构第1章 :绪论。介绍了本课题研究的背景、内容和主要工作。第2章 :开发环境与相关技术概述。概述了本课题开发设计过程中的开发环境和 运用到的技术。第3章 :系统分析与设计。从角色、功能和非功能的角度分析了需求,并从系统 模块、数据库等方面叙述了系统设计。第4章 :系统实现。主要概述了本课题几个重要模块的实现过程。第5章 :系统测试与结果分析。列举测试用例并分析本系统的运行结果。2 开发环境与相关技术概述2.1 开发环境2.1.1 Eclipse本系统的客户端采用Eclipse进行开发。Eclipse是一个能够提供全功能的、具有商业品质的平台的集成开发工具1。Eclipse的功能都是以插件的形式存在,一切皆插件是其设计思想,因此他具有很小的核心。Eclipse具体包括四个部分组成(1) Eclipse Platform:提供开发平台;(2) JDT:支持Java开发;(3) CDT:支持C开发;(4) PDE:支持插件开发。2.1.2 MyEclipse本系统的服务端采用MyEclipse进行开发。MyEclipse是由Eclipse发展而来的强大的集成开发环境,能独立完成项目开发的整个过程2。它既能支持Struts,Spring,Hibernate三大框架,又能支持HTML,CSS等网页设计技术,还能与SQL、MySQL等数据库连接。2.1.3 MySQL MySQL是一种开放源码的关系型数据库管理系统,它原先是由MySQL AB公司开发的 3。它具有体积小,速度快,可移植,灵活性高,成本低,可图形界面操作等特点,因此得到许多个人使用者以及中小企业的偏爱3。其基本命令有:(1)create:创建数据库或表;(2)show:查看数据库或表;(3)use:使用数据库;(4)desc:显示表的属性结构;(5)select:选择数据表中数据;(6)delect:删除表或表中数据。2.2 相关技术2.2.1 Servlet技术Servlet ,现在并没有中文名称。它是用Java编写的可以在 Web 服务器上运行也可以在应用服务器上运行的具有性能好、功能强、可移植等特点的服务器端程序。除此之外,服务器端处理请求的系统花费相比CGI(公共网关接口)较低。Servlet与Web容器之间的关系主要经历四个阶段,如图2-1所示:客户端请求加载Servlet处理完成destroy()方法初始化Servletinit()方法处理service()方法Web容器图2-1 Servlet与Web容器2.2.2 JSP技术 JSP,全称是Java Server Pages,是一种完全的面向对象的服务器端语言。它是将Java程序段和JSP标记插在传统网页HTML文件中的具有跨平台、业务代码分离、组件重用、预编译、可靠性以及安全性等特征的动态网页技术标准。JSP由5个元素组成,分别是:(1) 指令标签:一般在文件首位,有page、include和taglib三种。(2) HTML标记语言:规定了页面内容的格式。(3) 注释:有多种格式。(4) 嵌入Java代码:JSP页面的Java代码包含在标签中。(5) JSP动作标签:使用“jsp:”开头,例如标签。工作原理如图2-2所示:Web客户端Web服务器JSP/HTMLHTTP请求处理结果图2-2 JSP工作原理2.2.3 Camera应用技术 本系统的签到功能和请假功能都涉及到Camera的应用,Camera的应用是本系统设计和实现的关键4。Camera使用首先需要做拍照前的准备工作,在AndroidManifest.xml文件中对Camera的和进行使用权限、聚焦权限以及保存图片权限设置。在Android项目中调用Camera有两种方法,一种是用Intent直接调用,另一种是利用SurfaceView5。本系统采用第一种方法Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);实现的。2.2.4 Zxing库的使用 Zxing库是用Java语言编写的用于二维码以及条形码扫描和解码的开发源码6,它是通过调用手机内置的相机完成扫描功能的。Zxing库中主要的类的应用如下7:(1) AutoFocusCallback:自动对焦;(2) CameraManager摄像头管理类,可以对摄像头进行打开、关闭等操作。(3) DecodeThread:线程管理,主要功能是控制线程。(4) DecodeHandler:数据传输中枢,主要功能是发送数据(5) CaptureActivityHandler:回调扫描结果(6) ViewfinderView:扫描框设置2.3 本章小结本章主要介绍基于Android的学勤系统开发所需的环境以及相关技术。本系统分为客户端和服务端两个部分,客户端采用Eclipse集成开发环境,主要运用了二维码技术、相机调用技术。服务端运行环境是Myeclipse,设计模式采用JSP+Servlet+JaveBean进行模块设计。3 系统分析与设计3.1 系统功能需求分析需求分析是项目开发的第一步,需求分析能够使开发人员清楚用户的需求,有助于开发人员开发出满足用户需求的系统。本节将从三个角度对该系统的需求进行了详细地分析,这三个角度分别是:(1) 用户及角色需求:按照用户类型对系统的功能进行分析。(2) 功能性需求:根据用例构建功能需求。(3) 非功能性需求:分析系统的性能、安全性、可用性。3.1.1 用户及角色基于Android的学勤系统的用户有负责考勤管理工作的管理员、授课老师以及在校学生。这些用户在学勤管理实施的过程中需要做的工作不同,因此,不同类型的用户的需求和权限也不同。管理员、教师和学生在服务端的需求分析如表3-1所述:表3-1 服务端用户及角色表分类行为特征管理员角色工作对所有学生、教师、班级、课程的信息进行增删改查,提供二维码,考勤记录管理,统计请假名单,查看学生发布的信息。功能需求学生查询、添加,教师查询、添加,班级查询、添加,课程查询、添加,提供二维码,考勤记录管理,统计请假名单,查看学生发布的信息。教师和学生角色工作对所有学生、教师、班级、课程、考勤记录、请假名单、发布的信息进行查看,并可以发布信息。功能需求学生查询、教师查询、班级查询、课程查询、提供二维码,考勤记录查询、请假名单查看、查看学生发布的信息,并可以发布信息。学生在客户端的需求分析如表3-2所示:表3-2 客户端用户及角色表分类行为特征学生角色工作通过扫描二维码签到,填写请假原因、请假开始时间和请假结束时间,并且上传请假条完成请假功能,对本人的信息进行查看、修改,查看本人的签到情况,并且可以通过选择时间查询用户自己的签到信息。能够发送信息。功能需求登录注册、我要签到、请假申请、个人信息、考勤记录查询、信息交流、密码修改3.1.2 功能需求按照上面对用户及角色的分类,分析该系统的功能需求。(1) 服务端管理员学生查询、添加学生教师查询、添加教师班级查询、添加班级课程查询、添加课程提供二维码考勤管理统计管理查看发布的信息管理员对本系统能够进行增删改查等操作,用例图如图3-1所示:图3-1 管理员用户用例图1) 学生查询、添加学生:所有的学生信息进行查询、添加、修改、删除等操作。2) 教师查询、添加学生:对班级进行查询、添加、删除等操作。3) 课程查询、添加课程:对课程进行查询、添加、删除等操作。4) 提供二维码:每一个课程都有一个属于自己的二维码。5) 考勤管理:查询、删除已有签到信息,能够添 加新的考勤信息。6) 统计管理:查询相应课程的考勤情况和请假人员名单。7) 查看发布信息:查询所有教师或学生已发布的信息。(2) 服务端教师和学生教师和学生对本系统能够进行查看各种信息并发布消息等操作,用例图如图3-2所示:学生查询教师查询班级查询课程查询提供二维码考勤查询统计查询查看、发布信息图3-2 教师和学生用户用例图1) 学生查询:对所有的学生信息进行查询操作,如查看学生的账号、密码、姓名、电话、学号、性别、班级等。2) 教师查询:对所有的教师信息进行查询操作,如查看账号、密码、姓名、电话、工号、性别、班级等。3) 班级查询:对班级进行查询操作,如查看班级编号、班级名。4) 课程查询:对课程进行查询操作,如查看课程名,班级名。5) 提供二维码:每一个课程都有一个属于自己的二维码。6) 统计查询:能查询相应课程的考勤情况和请假人员名单。7) 查看、发布信息:可发布并查询所有发布的信息。3.1.3 非功能需求一个系统能否被运用不仅需要满足用户的需求,还对非功能需求有一定的要求,若非功能需求不能保障,该系统也不会被广泛用户接受。本系统满足的非功能需求如下所述:(1)性能需求:该系统的各个功能界面都能在较短时间内响应并正常显示。(2)安全需求:只能被注册过的用户使用。(3)可用性需求:该系统保证运行出错率较低。3.2 系统总体结构设计基于分析用户的角色、功能需求和非功能需求,最后将基于Android的学勤系统进行如图3-3所示的系统模块划分:基于Android的学勤系统服务端登录客户端登录学生管理教师管理班级管理课程管理考勤管理统计管理信息交流我要签到请假申请个人信息考勤记录密码修改退出查看信息学生查询添加学生请假名单考勤情况教师查询添加教师班级查询添加班级课程查询添加课程添加考勤开始签到查看考勤图3-3 系统模块划分图3.2.1 登录注册登录功能的实现分为新用户和老用户两种登录类群,若是新用户,则需要注册一个账号登录,若是已注册过的用户可以通过填写用户名和密码直接登录,为了防止部分学生代别人签到,本系统设定一个手机用户只能登录一个账号,若登录别的账号则会提示用户名或密码错误,需要重新登录该手机第一次登陆的账号。登录注册模块流程图如图3-4所示:是新用户开始输入用户名、密码注册与第一次输入相同进入主界面结束否是否图3-4 登录注册流程图3.2.2 我要签到模块学生登录进入主界面,通过单击“我要签到”按钮可进入签到界面,该界面显示二维码扫描的动态,用户可以将摄像头对准二维码完成二维码的扫描工作,学生签到工作完成。我要签到模块流程图如图3-5所示:返回否是是否签到开始扫描二维码成功返回主界面结束图3-5 我要签到流程图3.2.3 请假申请模块学生点击“请假申请”进入请假界面,通过填写请假原因,选择请假时间,并且上传请假条作为凭证,完成请假功能。请假申请模块流程图如图3-6所示:否是是否请假开始填写信息返回成功提交申请结束图3-6 请假申请流程图3.2.4 个人信息模块个人信息模块分为查看和修改两部分,个人信息查看部分可以通过单击“个人信息”后跳出的提示框选择查看,进入查看界面。进入个人信息修改界面,根据个人需要修改相关有误的信息,填写完成后可以单击修改按钮进行确定,也可单击重置按钮进行重新修改。个人信息管理模块流程图如图3-7所示:重置个人信息管理界面开始查看修改显示个人信息查看提交结束输入信息图3-7 个人信息流程图3.2.5 客户端其他模块(1) 考勤查询模块点击“考勤记录查询”按钮,进入查询界面,可以查询用户本人相关签到信息。(2) 信息交流模块点击“信息交流”按钮,进入信息交流界面,可在对话框中填写需要发送的信息,点击“发送”按钮,实现信息共享。(3)密码修改模块点击“密码修改”按钮,进入密码修改界面,通过填写原密码和新密码进行密码修改。3.2.6 考勤管理模块考勤管理模块分为开始签到、考勤查询和添加考勤三个部分,其中,开始签到部分,点击相应课程的“开始签到”按钮,能够显示相应课程的二维码。考勤查询部分,点击“考勤查询”按钮能够查看已有的课程信息,进而可对考勤信息进行删除操作。添加考勤部分,点击“添加考勤”按钮,添加时需要填写新增考勤的签到日期、签到时间、用户id,课程id。填写完成后可以单击“发布”按钮进行确定,或者单击重置按钮进行重新填写。考勤管理流程图如图3-8所示:查看、删除显示为空考勤查询开始签到二维码开始考勤管理界面添加考勤存在输入信息发布重置清空所填信息结束否是图3-8 考勤管理流程图3.2.7 统计管理模块查看请假开始查看考勤情况查看请假名单查看考勤查看缺勤名单查看请假名单结束开始统计管理模块分为查看考勤情况和查看请假名单两部分,其中,查看考勤情况部分可以通过单击“查看考勤情况”按钮,进入查看界面,点击相应课程的按钮,便能显示该课程的考勤情况和缺勤名单。进入查看请假名单界面与查看考勤情况相似,该界面会显示所有的请假人员的所有信息。统计管理流程图如图3-9所示:图3-9 统计管理流程图3.2.8 信息交流模块信息交流模块分为信息查看和发布两部分,其中,信息查看部分可以通过单击“查看信息”按钮,进入查看界面,便能显示已发布的所有信息。进入发布信息界面与信息查看情况相似,填写新增的信息内容,填写完成后可以单击“发送”按钮进行发送。信息交流流程图如图3-10所示:结束填写信息查看信息发布信息查看发送开始图3-10 信息交流流程图3.2.9 信息管理功能信息管理功能划分为学生管理模块、教师管理模块、班级管理模块和课程管理模块,这些模块的设计基本相同,以学生管理模块为例进行设计。学生管理模块分为学生查询和添加学生两部分,其中,学生查询部分可以通过单击“学生查询”按钮,进入查看界面,能够查看已有的全部学生信息,进而可对学生信息进行编辑、删除操作。进入添加学生界面与学生查询相似,添加时需要填写账号、密码、姓名,电话,学号,性别,班级,用户类型等信息,填写完成后可以单击“发布”按钮进行确定,或者单击重置按钮进行重新填写。学生管理流程图如图3-11所示:学生查询添加学生显示个人信息存在编辑、删除页面显示为空发布重置清空填写信息结束开始输入信息开始学生管理界面学生管理界面输入信息图3-11 学生管理流程图3.3 数据库设计3.3.1 系统E-R图设计 基于Android的学勤系统包括管理员实体、学生实体、教师实体、班级实体、课程实体、考勤记录实体、请假信息实体和信息发布实体等八个实体。管理员用户名用户密码(1)描述:管理员实体包括用户名和用户密码两个基本属性,本系统管理员实体的E-R图如图3-12所示:图3-12 管理员实体(2)描述:学生实体包括用户编号,用户名,密码,姓名,学号,类型,电话号码,性别,所属班级等九个基本属性,本系统学生实体图的E-R图如图3-13所示:学生用户编号用户名性别密码姓名学号类型电话号码班级图3-13 学生实体教师用户编号用户名性别密码姓名工号类型电话号码班级(3) 描述:教师实体主要包括用户编号,用户名,密码,姓名,工号号,类型,电话号码,性别,所教班级等九个基本属性,本系统教师实体图的E-R图如图3-14所示:图3-14 教师实体(4) 描述:班级实体基本属性包括班级编号、班级名称等两个基本属性,本系统学生实体图的E-R图如图3-15所示:班级编号班级名称班级 图3-15 班级实体(5) 描述:课程实体包括课程编号、课程名称、二维码编号、班级编号等四个基本属性,本系统学生实体图的E-R图如图3-16所示:课程班级编号课程编号二维码编号课程名称图3-16 课程实体请假信息(6) 描述:请假信息实体包括请假编号,请假理由,请假开始时间,请假结束时间,类型,编号,用户名,图片编号等八个基本属性,本系统学生实体图的E-R图如图3-17所示:请假编号图片编号用户名请假理由请假结束时间请假开始时间编号类型图3-17 请假信息实体(7) 描述:考勤记录实体包括考勤编号,日期,时间,用户编号,课程编号,班级编号等六个基本属性,本系统学生实体图的E-R图如图3-18所示:考勤编号号日期时间用户编号课程编号号班级编号号考勤记录图3-18 考勤记录实体(8) 描述:信息发布实体包括人员编号,发布信息用户姓名,发布信息内容等两个基本属性,本系统学生实体图的E-R图如图3-19所示:用户姓名名号信息内容容信息发布图3-19 信息发布实体本系统具有多个实体,各个实体之间具有一定的联系,这些联系也可以用E-R图表示,如图3-20所示:图3-20 服务端与客户端用户实体3.3.2 数据库表设计本系统数据库包括班级信息表,课程信息表,请假信息表,签到信息表,用户信息表等6个数据库表。本系统数据库表结构设计如表3-3至表3-8所示:(1)描述表3-3:用于班级管理的信息表,主要有班级编号、班级名称等数据项。表3-3 banji信息表序号字段类型长度说明Null1bidint11主键(自增列)No2namevarchar200班级名Yes(2)描述表3-4:用于课程管理的信息表,主要有课程编号、课程名称、图片编号、班级编号等数据项。表3-4 course表序号字段类型长度说明Null1cidint11主键(自增列)No2namevarchar200课程名Yes3pidvarchar200图片编号Yes4bidint11班级编号Yes(3)描述表3-5:用于存储请假信息表,主要有请假编号,请假理由,请假开始时间,请假结束时间,类别,类型,编号,用户名,图片等数据项。表3-5 jia请假信息表序号字段类型长度说明Null1jidint11主键(自增列)No2contenttext200请假理由Yes3starttimedata200请假开始时间Yes4endtimedata200请假结束时间Yes5flagint11类别Yes6typeint11类型Yes7idint11编号Yes8usernamevarchar200用户名Yes9picvarchar200图片Yes(4) 描述表3-6:用于存储考勤信息的信息表,主要有考勤编号,日期,时间,用户编号,课程编号,班级编号等数据项。表 3-6 kaoqin考勤信息表序号字段类型长度说明Null1kidint11主键(自增列)No2qian_datadata200日期Yes3qian_timetime200时间Yes4uidint11用户编号Yes5cidint11课程编号Yes6bidint11班级编号Yes(5)描述表3-7:用于存储用户发布信息的信息表,主要有发布信息人员编号,发布信息人员姓名,发布信息内容等数据项。表3-7 mess用户发布信息表序号字段类型长度说明Null1midint11主键(自增列)No2usernamevarchar200发布信息人员姓名Yes3contentvarchar200发布信息内容Yes(6)描述表3-8:用于存储用户信息表,主要有用户编号,用户名,密码,姓名,学号/工号,类型,电话号码,性别,班级等数据项。表3-8 user用户信息表序号字段类型长度说明Null1uidint11主键(自增列)No2usernamevarchar200用户名Yes3passwordvarchar200密码Yes4namevarchar200姓名Yes5numvarchar200学号/工号Yes6typeint11类型Yes7telvarchar200电话号码Yes8sexvarchar200性别Yes9bidint11班级Yes3.4本章小结本章的主要内容是对系统的需求和设计进行分析,需求分析包括用户角色分析、功能需求与非功能需求,设计方面先将先整体的系统详细地划分为多个模块,然后按模块分析系统设计,最后介绍了该系统的数据结构。4 系统实现4.1 我要签到签到功能的实现需要上课老师将二维码投放在投影仪上,学生在到教室后可以拿着自己的手机进行扫描,完成签到。4.1.1 二维码的生成签到功能的实现,首先需要服务端自动生成相应课程的二维码,本系统采用极客标签提供的快速生成二维码的方法,本方法兼容性比较好,只需要提供相关的文字或地址,不需要自己处理任何相关二维码的生成8。二维码的生成代码如代码段一:1) /代码段一2) img src=/gb/qrcode?t=效果如图4-1所示:图4-1 二维码4.1.2 使用权限设置二维码图片的采集和录取的实现涉及很多Camera的使用,使用Camera时需要对Camera使用以及Camera的自动对焦申请权限,在AndroidManifest.xml中添加权限如代码段二:3) /代码段二4) 5) 6) 4.1.3 Camera管理使用相机需要对它进行管理,在CameraManager类中,需要对相机进行获取手机摄像头、摄像头预览和读取并设置相机参数的管理,具体实现如代码段三:1) 代码段三2) public void openDriver(SurfaceHolder holder) throws IOException 3) if (camera = null) 4) camera = Camera.open();5) if (camera = null) 6) throw new IOException();7) 8) camera.setPreviewDisplay(holder);/设置摄像头预览view9) if (!initialized) 10) initialized = true;11) configManager.initFromCameraParameters(camera);12) 13) configManager.setDesiredCameraParameters(camera); /读取配置并设置相机参数14) FlashlightManager.enableFlashlight();15) 16) 4.1.4 Camera自动对焦扫描功能实现的关键问题是获取Camera的自动对焦回调函数,从而得到二维码数据,实现这一功能需要调用ZXing库的解码接口。调用接口的实现如代码段四:1) /代码段四2) CameraManager.get().requestPreviewFrame(decodeThread.getHandler(), R.id.decode);/实现拍照 3) CameraManager.get().requestAutoFocus(this, R.id.auto_focus); /实现聚焦4.1.5 解码线程二维码解码的实现是在独立线程里面使用Handler线程通信机制来完成的9,利用if.case将解码分为不同的状态,解码线程的不同处理状态具体代码如代码段五:1) /代码段五2) public void handleMessage(Message message) 3) switch (message.what) 4) case R.id.decode_succeeded: /解码成功,获取到界面的结果和原来的二维码数据5) Log.d(TAG, Got decode succeeded message);6) state = State.SUCCESS;7) Bundle bundle = message.getData();8) break; 9) 10) 4.1.6 返回解码结果解码时出现了不同状态,需要研究的是成功解码后的情况,通过DecodeThread解码成功后,它会将数据进行序列化,然后它将得到的信息保存到Bundle里面,并且可以直接通过Bundle的序列化,获取到图片数据。这一功能的实现是通过调用handleDecode函数完成的,具体实现代码如代码段六:1) /代码段六2) public void handleDecode(Result result, Bitmap barcode) 3) inactivityTimer.onActivity();4) playBeepSoundAndVibrate();5) String resultString = result.getText();6) if (resultString.equals() 7) Toast.makeText(MipcaActivityCapture.this, Scan failed!,Toast.LENGTH_SHORT).show();8) else 9) Intent resultIntent = new Intent();10) Bundle bundle =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 执业药师之《西药学专业一》考试押题卷【模拟题】附答案详解
- 2025年怀化市辰溪县市场监督管理局招募见习生(5人)模拟试卷含答案详解(综合卷)
- 2024年自考专业(法律)试题带答案详解(典型题)
- 2025年自考专业(护理)模拟题库加答案详解
- 2025年自考专业(公共关系)检测卷带答案详解(模拟题)
- 反射疗法师3级预测复习及答案详解【名校卷】
- 2023年度工程硕士考试综合练习含完整答案详解【有一套】
- 组织安全培训及记录课件
- 组织叉车安全培训报道课件
- 纸黏土劳技课件
- 苏教版一年级数学上册月考测试卷(一)(范围:游戏分享至第一单元)(含答案)
- 2025至2030中国电镀工业园区行业发展趋势分析与未来投资战略咨询研究报告
- 机械厂设备使用维护细则
- 国企人力资源岗笔试模拟试题及参考答案
- 遵守规则课件-2025-2026学年统编版道德与法治八年级上册
- 全科医学(副高)高级职称考试题库及答案
- 康复辅助技术咨询师理论知识考核试卷及答案
- 河北省琢名小渔名校联考2025-2026学年高三上学期开学调研检测英语试题(含答案)
- 2025-2026学年人教精通版四年级英语上册(全册)教学设计(附目录)
- 中国医院质量安全管理 第2-29部分:患者服务临床营养 T∕CHAS 10-2-29-2020
- 人大附小诗词选修课:苏轼生平
评论
0/150
提交评论