毕业论文---基于android的学生考勤系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

III1设计目的与开发背景1.1设计目的在高校中,学生管理对学校至关重要,学生考勤管理是学校校管理部分之一。但是传统教学中,学生的考勤信息仅作为教师课程总评结果中对学生日常表现的评价依据。而且还存在以下一些问题:考勤信息由教师人工操作、管理,效率低下;不同教师所掌握的考勤信息分散、缺乏联系;信息汇总往往发生在期末总评期间,实时性差;记录形式不规范统计困难;教师对教学期间的缺勤信息缺乏及时的处理,用率低下。笔纸记录,分析整理在学校的日常管理中发挥的作用微乎其微,从而导致考勤信息在高校考勤管理中无法发挥重要作用。为了充分利用教师的考勤信息,提出首先以Android平台为出发点建立学生考勤管理系统辅助高校管理。31.2开发背景此设计实现了在安卓手机客户端的基本功能。教师用户可以通过客户端实现了登录功能、查看相应课程签到情况功能,并能添加学生签到记录,查询学生信息,添加学生信息的功能,并在网页端实现了包括学生查询自己的考勤情况和个人信息,帮助同学解决了不能应用考勤管理系统的问题。不过由于技术水平有限,可能系统仍然存在着不完善的地方,如安全性考虑不足等等。仍然需要进一步的完善和改进。所用技术:android系统,安卓系统是基于Java语言编写的,因此手机客户端采用Eclipse配上AndroidSDK。后台数据库软件选用SQLite数据库。2开发环境和工具简介2.1Android及SDK介绍SDK指是软件开发包,被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,AndroidSDk指的既是Android专属的软件开发工具包。Android是Google公司推出的手机开发平台,和iPhone相似,Android使用了WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,在手机上可以实现查看电子邮件、搜索网址和观看视频节目等功能,较iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。Android手机系统最震撼人心之处在于其开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁,使得应用的安装更加方4便;同时与WindowsMobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。2.2Eclipse简介Eclipse是一个著名的跨平台的自由集成开发环境软件。最初主要用来Java语言开发,现在人们可以通过安装插件使其作为C++、Python、PHP等其他语言的开发工具。Eclipse的本身只是一个框架平台,但是随着众多插件的产生,使得Eclipse拥有很好的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。虽然大多数用户更加乐于将Eclipse当作Java集成开发环境来使用,但Eclipse的作用已经不仅限于此。Eclipse还是含有插件开发环境,这个组件主允许希望扩展Eclipse的软件开发人员构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于Java开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++和COBOL等编程语言的插件已经可用,或预计将会推出。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。本系统即通过Eclipse,添加Android做插件,匹配上AndroidSDK进行软件的开发。53需求分析3.2功能需求分析手机客户端考勤管理系统能完成主要四种功能包括登录功能,课程信息管理功能,签到管理功能,学生信息管理功能,并且能手机客户端形式与网页客户端两种形式实现上述功能,保证系统的正常运行。系统用例图如图3-1。6图3.1学生考勤系统用例图(1)登录功能进行教师身份的验证。手机客户端把老师用户名和密码通过网路传递给服务器,有服务器进行数据库查询,如若用户名和密码匹配,则将教师信息和数据库内容传递到手机端,不匹配则返回错误信息提示错误。(2)学生信息管理功能是老师可以选择查询的学生,查看学生相关信息。老师也可以添加学生信息。(3)课程管理模块功能是老师可以查看课程情况,也可以添加课程,增强课程的实时性。(4)签到功能是老师可以查询自己所教的课程的学生到课情况和课程时间,也可以根据学生到课情况进行到课情况记录。4具体设计4.1.1用户登陆模块手机客户端首先下载或更新“mydata.db”更新本地数据库。然后客户端通过查询本地数据库检验用户输入的登录信息是否正确,如若信息不正确则传递提示7错误信息,由客户端Toast出错误提示(如图4-2),若信息正确,提示登陆成功(如图4-3),并进入下一功能界面。网络功能使用Socket来传递客户端和服务器端的信息。客户端需要Socket这个类的对象,而服务器端同样需要一个叫ServerSocket的类对象,由客户端发送一个Socket请求,服务器端的ServerSocket监听计算机的某一个端口号(4567),监听到客户端发送的请求之后,那么服务器端和客户端通讯通道就建立起来了,此时客户端和服务器端可同时向对方发送数据及相应信息。客户端发送数据需要用到IO流里面的OutputStream,通过OutputStream将数据发送给服务器端,服务器端用InputStream来读取客户端当中用OutputStream所写入的数据,同样,服务器端想将数据库文件发送给客户端时,那么就使用OutputStream写出数据,在客户端通过InputStream把服务器端当中通过OutputStream所写入的数据给它读取出来。图4.1登陆界面8图4.2登陆成功提示图4.3登陆失败提示查询登录信息的SQL语句为:(例如:服务器端接收的用户为a,密码为a)Selectuername,passwordFromstudentWherestudentid=a若数据库中无a对应信息,则返回错误信息,若有,服务器端验证password=a,匹配则返回成功信息,传递“mydata.db”,不匹配则返回错误信息若登陆成功,则进入下一个功能界面,即手机端主界面,如图4.4所示。9图4.4手机客户端主界面4.1.2学生信息管理模块学生信息管理模块功能是授课老师可以选择查询的学生,查看学生相关信息。使老师更方便看到学生信息。通过学生学号查询该学生相关信息,查询学生信息SQL语句为(例如学号为01)Selectstudent.*Fromstudentwherestudentnumber=02查询到学号为02的学生信息。查找到的学生信息通过listview显示在界面中。如图4.5所示4.1.3课程管理模块课程管理模块功能就是是老师可以查询课程信息。如通过课程号查询该课程相应信息,此时查询课程信息的SQL语句为(例如课程号为KC001)Selectcourse.*Fromcoursewherecoursenumber=KC001查询到课程号为KC001的课程相10应信息。如图4.6所示。图4.6课程查询4.1.4签到模块签到功能是老师可以查询自己所教的课程的学生到课情况,也可以根据学生到课情况添加到课信息记录。如查询某课程的签到情况,查询某课程的到课信息的SQL语句如下:(例如:课程名为java)Select*Fromcourse,studentWherestudent.studentNo=course.student.Noandcouse.coursename=’java’查询到java课程的到课信息,查找到的课程名通过listview显示在界面中,如图4.7所示。11图4.7课程签到信息如添加学生签到记录,即学生到课信息:已到,迟到,缺席,添加某学生的到课信息的SQL语句为(例如姓名为141,时间为第一课时,也可为日期)添加学生到课信息的SQL语句如下:Insertintoattendance(studentname,coursename,timeInfo,attendancestate)Values(’141’,’java’,’第一课时’,’已到’)添加了某学生的java到课记录。如图4.8所示12图4.8添加签到信息4.2服务器端模块4.2.1通讯数据格式定义服务器端主要用来接收客户端发来的信息,进行相应的操作,并将数据返回给客户端,同时对服务器端数据库进行管理。本系统利用Socket机制实现服务器端与客户端之间数据的传送,并且要对数据格式进行规范。服务器端向客户端发送数据的格式定义为表4-1的形式。表4-1客户端向服务器端发送数据的格式头信息客户端IP地址信息内容0202.124.252.2XXXX头信息定义为:0该信息为请求下载数据库文件和传递用户参数,1该信息为请求添加数据,2该信息为请求删除数据,3该信息为请求删除数据。服务器端向客户端发送数据的格式定义为表4-2的形式。表4-2服务器端向客户端发送数据的格式头信息服务器端IP地址信息内容0193.154.2.3XXXXX13头信息定义为:1该信息为数据库文件,2该信息为操作返回信息。4.2.2通讯数据格式定义服务器端接收客户端的请求信息,通过建立一个一直运行的线程保持监听客户端发来的请求信息。部分代码如下:nprivateclassServerThreadextendsThread{//接收信息线程publicvoidrun(){//声明一个ServerSocket对象ServerSocketserver=null;while(true){//无线循环try{server=newServerSocket(4567);//定义接受端口client=server.accept();//in=newBufferedReader(newInputStreamReader(client.getInputStream()));//定义输入流this.request=in.readLine();//获取信息this.head=this.request.substring(0,1);//剥离头信息if(this.head.equals(“0”)){//判断头信息…}…}数据库参数请求格式如下:(以添加为例)Insertintotable1,table2,table3(context1,context2,context3,context4,context5,context6,context7,context8,context9,context10)Values(?,?,?,?,?)在本系统所用添加删除修改最多不超过三个表,添加内容不会超过10个内14容,传递数据时参数形式为:data[]=newbyte[1024],data[]={“table1”,“table2”,“table3”,“context1”,“context2”,“context3”,“context4”,“context5”,“context6”,“context7”,“context8”,“context9”,“context10”}其中若table或context为空,我们统一设定其为-1。同样,修改,删除形式如上。4.2.3发送返回数据模块在服务器端接收到客户端发来的请求时,服务器端将从数据库中查询相关内容返回给客户端。将模拟器的4567端口绑定到4568端口,代码如下:Runtime.getRun().exec(this.ADB_PATH+”forwardtcp:4568tcp:4567”);QizhongADB_PATH为adb即为AndroidDebugBridge所在路径。绑定端口后,想模拟器4567端口发送的信息其实是通过4568端口发送的。服务器端发送返回数据的代码如下:S

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功