




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要随着计算机技术的飞速发展,利用计算机实现各种信息的管理势在必行。学生考勤管理是教师教学工作中一个重要的环节,是适应现在现代化学校的要求、推动学校管理走向科学化、规范化的必要条件。学生考勤管理是由各学院、学工、教务、任课教师等分工不同、相互协作的一项综合性管理工作,必须深刻认识学生考勤对学风建设、学校发展的重要作用。高校学生日常考勤管理系统目的在于提高教师对于学生管理工作的效率,实现自动化管理,这样更有利于教师对于日常教学工作中对学生考勤方面工作的简化,并且方便期末计算平时成绩以做参考。本论文是源于“基于Android的考勤管理系统设计与开发”项目的研究与设计,由客户端和服务器两部分组成,以运行Android系统的移动设备作为客户端,实现对教师所要求信息的基本查询,并且能够对学生进行点名功能。服务器端基于Struts2开发,提供Web服务,能够实现对教师所要求信息的增删改查,比如授课班级学生信息、授课信息以及点名信息的处理。服务器端与客户端可以通过网络进行数据同步,客户端可以从服务器端下载学生、课程等信息供客户端的用户查询,还要能够上传用户的点名数据,服务器端进行处理并且保存到相关的数据库。其中重点介绍Android端与Web服务器端数据采用HttpClient传送数据实现过程,并进行了相关测试和结果分析。关键词:考勤管理;Android;Struts2;HttpClient全套设计加扣3012250582 ABSTRACTWith the rapid development of computer technology, its imperative to achieve a variety of computer information management by computer. Student attendance management is an important part of college management modernization, and it is necessary to adapt to conditions of the needs of a modern school, to promote the school management more scientific,and more standardized.Student attendance management is a comprehensive work which is different division and collaborative management,which is done by college,school work,academy and teachers,we must deeply understand that it plays an important role on the construction of study style and development of the school.College students daily attendance management system aims to improve teachers student management efficiency, automated management,it is more conducive to teachers daily teaching work on simplifying student attendance,and it is convenient for teachers to calculate the usually results at end of term.This thesis originates from the project “Design and development of attendance management system based on Android” ,the main task is devided into two parts,the client and server.Mobile Devices which run Android System are as client ,which can query the basic information required form the teacher and can call on the students.The Web Server use Struts2 framework,which can provide the Web service and realize CURD information required from teacher,such as teaching class information, teaching information, and Naming information processing.Server and client can synchronize data over the network.The client can download related data from the Server which can be queried,and upload the rollcall data which can be saved and disposed by the Server.Using HttpClient transmit data between Client and Server is the focus,and do some test and analyse the result. Key Words:Attendance Management ;Android;Struts2;HttpClient;1 绪 论 1.1 引言 随着计算机技术的飞速发展,计算机在管理中应用的普及,利用计算机实现各种信息的管理势在必行。学生考勤管理是现代化高校管理工作不可缺少的一部分,是适应现在现代化学校的要求、推动学校管理走向科学化、规范化的必要条件。只有考勤管理规范了,才能在其他方面更好的发展。为了适应现代学校发展的需要,考勤管理也从以前的手工管理逐渐被规范化的管理信息系统所代替。众所周知,当今社会为信息社会,世界已进入在计算机信息管理领域中激烈竞争的年代,因此,加强考勤管理在单纯依靠以手工管理的方法,不仅需要耗用大量的人力、物力、财力,而且工作效率低,漏洞和错误众多,难以达到预期的目标。近年来,随着我国教育事业蓬勃发展,高等教育实现了历史性跨越,迈入了“大众化”高等教育的历史阶段,高校办学规模成倍增长,学生群体特征如独立性、选择性、多样性和差异性日益增强,公众和大学生维权意识日益高涨,教学改革不断深化,人才培养模式灵活多样,对高校的学生管理工作提出了新的课题。随着学生人数的逐渐增加,对于教师这个群体来说如何管理这些学生的到课记录成了一个问题。一个教师可能带有好几个班级,这样他所要登记的学生记录可能就有好几百条,对于人少的时候,采用纸质登记的方式可能还好点,但是对于这样一个数量,就会造成时间的浪费。这在如今信息化时代,时间是如此的宝贵,我们可以尽量避免这种无谓的时间浪费。1.2 论文研究的目的和意义对于高校的教师,每学期可能会多次的点名工作,这样如果次数过多就可能会造成在期末统计成绩的时候花费大量的时间,而且很有可能出错,所以采用智能化的点名系统会更加的完善考勤制度。现在教师查询自己的课表,学生的信息可能大多数采用网页浏览,这样的话如果身边没有PC,就会有所困难,如果这些信息在手机上也有的话就会十分的方便。软件由客户端与服务器端组成,客户端主要是在用户的手机端进行Android开发得出的,可以实现,对教师所要求信息的基本查询,并且能够对学生进行点名功能。服务器Web端采用Struts2框架1,能够实现对教师所要求信息的增删改查。服务器端与客户端可以互传数据,客户端可以从服务器端下载相关数据供客户端的用户查询,还要能够上传用户的点名数据到服务器,服务器端进行处理并且保存到相关的数据库。1.3论文主要内容基于Android的考勤管理系统设计与开发是利用MVC框架进行软件开发,使用面向对象编程技术开发。用户通过下载并安装客户端到Android智能手机,通过Android智能手机客户端完成对学生的点名、教师课程信息的查询、班级联系人信息的查询以及与服务器端的数据传输等功能。整体采用面向对象思想的接口分离的设计原则,降低了上层对下层逻辑调用的依赖,整体上符合高内聚、低耦合的设计原则,使系统的后期维护和扩展性得到很好的保障。全文共分为七章,各章主要内容如下:1 绪论:主要介绍系统的研究背景、研究的目的及意义、论文的组织结构。2 相关知识:对论文中所用到的相关知识进行简要介绍,例如Android、Eclipse、B/S、C/S。3 系统分析:介绍系统的各种功能需求,并且对各个功能模块进行描述。4系统设计:对基于Android的考勤管理系统的分析与实现项目介绍整体设计的情况,并完成数据库设计。5 关键模块的设计与实现:主要是对Android端与服务器之间的数据传递,以及Android端ListView 和服务器端利用mysql数据库实现分页进行描述。6 系统测试:对系统的可行性和正确性进行测试,主要从不同用户登录Web服务器后Web服务器开放的权限、Android移动客户端的点名时数据各种存在的形式与情况以及Android移动客户端在进行联网操作时的各种异常的处理。7 总结和展望:对整个工作进行了总结,并根据存在的问题,尝试着提出了解决办法和进一步的开发设想。2 相关知识2.1 Android相关介绍Android2一词的本义指“机器人”,Android是Google于07年11月5日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成。在3G应用开发领域,Android的发展前景不容小视,也将会成为未来主流的手机操作系统。Android是一组面向移动设备的软件包,包含了一个操作系统,中间件和关键应用程序。Android SDK的预览版提供了必需的开发工具和应用程序接口,基于这些,我们就可以使用Java编程语言在Android平台上开发应用程序了。Android系统架构基本分为应用(Applications),应用框架(Application Frameworks),库函数(Libraries),运行时环境(Android Runtime),Linux 内核(Linux Kernel),Android操作系统的主要组件如图 2-1所示。 图2-1 Android系统层次架构2.1.1 Linux内核Android平台底层使用的是Linux3.0的内核,是硬件和其他软件堆栈之间的一个抽象隔离层。提供安全机制、内存管理、进程管理、网络协议堆栈、电源管理和驱动程序等功能,驱动程序包括WiFi驱动、声音驱动、显示驱动、摄像头驱动、闪存驱动、Binder(IPC)驱动和键盘驱动等。2.1.2 Android运行时Android运行时由核心库和Dalvik虚拟机构成。核心库为程序开发人员提供了Android系统特有函数功能和Java语言的基本函数功能。Dalvik虚拟机是经过优化的多实例虚拟机,基于寄存器架构设计,实现了基于Linux内核的线程管理和底层内存管理。Dalvik虚拟机采用专用的Dalvik可执行格式(.dex),该格式适合内存和处理器速度受限系统。2.1.3 Android应用程序框架应用程序框架提供了Android平台基本的管理功能和组件重用机制,包括Activity管理、窗口管理、包管理、电话管理、资源管理、位置管理、通知消息管理、View系统和内容提供者管理等。2.2 Struts2框架 Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。Struts2框架是建立在Struts框架与WebWork框架基础之上。虽然被称为Struts2框架,却与Struts框架有着不同的体系结构,反而与WebWork有这许多相似之处。Struts2框架的核心部分是基于WebWork框架设计思想的,最明显的表现就是大量使用拦截器,同时,Struts2又在WebWork的基础上加入了新的内容,使得该框架更加适应当今Java EE的开发需求。其整体框架如图2.2.1所示。Struts2是一个Web应用框架。它不是一个Struts的新的发布版本,而是一个全新的框架。Struts2 是第二代基于Model-View-Controller (MVC)模型的Web应用框架。 Struts2是java企业级Web应用的可扩展性的框架。 它是WebWork和Struts社区合并后的产物。图2-2 Struts2框架Struts2 和Struts的构建是社区开发模式的最好实践和证明。事实上,第一版本的Struts设计的第一目标就是使MVC模式应用于Web程序设计。 在过去10年,Struts在更好的Web应用方面所做的工作是值得肯定的。在某些方面,Struts社区注意到这一框架的局限性,但在这个活跃的社区里,自动识别弱点和顽强不屈的精神,使得克服这些弱点是不困难的。Struts2 有两方面的技术优势,一是所有的Struts2应用程序都是基于client/server HTTP交换协议,The Java Servlet API 揭示了Java Servlet只是Java API的一个很小子集,这样我们可以在业务逻辑部分使用功能强大的Java 语言进行程序设计。2.3 B/SB/S模式3是浏览器/服务器模式的简称,其主要的体系结构如图2-3所示。图2-3 B/S体系结构B/S体系结构主要是利用不断成熟的WWW浏览器技术,这种体系结构中,应用程序以网页形式存放于Web服务器上,用户运行某一个应用程序时,只要在客户端上的浏览器中输入相应的网址,调用Web服务器上的应用程序并对数据库进行操作,完成相应的数据处理工作,最后将结构通过浏览器显示给用户。浏览器只有在接收到用户请求后,才和服务器进行连接,Web服务器与数据库通信并生成结果,然后Web服务器再把数据库返回结果转发给浏览器,浏览器在收到返回信息后断开连接。由于真正的连接时间很短,因此Web服务器能够为更多的用户提供服务。基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块。3 系统分析这一章主要分别从功能需求到对于这些功能需求进行可行性分析,并且详细的介绍了各个功能模块。3.1可行性分析软件项目在具体设计和实施之前都要对项目进行取证和论证,来进行可行性分析。本系统为了确保项目的顺利开发,从以下两个方面进行了可行性分析。3.1.1 技术可行性 本系统的服务器端采用Struts2框架,移动端采用Android开发,通过大学四年的学习与实践,已能够较熟悉的掌握这两门技术。并对其他的一些相关技术有了一定的了解例如jsp、servlet4等。3.1.2 经济可行性本系统是基于Android的考勤管理系统,对客户端的要求非常低,只要是Android2.1系统以上的移动设备即可。服务器端只需具备基本上网条件即可,通过访问网页即可访问本系统。3.2 系统概况基于Android的考勤管理系统设计与开发是实现教师在日常教学工作中所做的工作集成到系统中,其主要分为两个大的部分,一个是Web服务器端,一个Android客户端。在Web服务器端是利用MVC框架进行软件开发,使用面向对象编程技术开发。用户通过下载并安装客户端到智能手机,通过智能手机客户端完成对学生的点名、教师课程信息的查询、班级联系人信息的查询以及与服务器端的数据传输等功能。基于Android的考勤管理系统设计与开发整体采用面向对象思想的接口分离的设计原则,降低了上层对下层逻辑调用的依赖,整体上符合高内聚、低耦合的设计原则,使系统的后期维护和扩展性得到很好的保障。软件由客户端与服务器端组成,客户端主要是在用户的手机端进行Android开发得出的,可以实现,对教师所要求信息的基本查询,并且能够对学生进行点名功能。服务器Web端采用Struts2框架,能够实现对教师所要求信息的增删改查。服务器端与客户端可以互传数据,客户端可以从服务器端下载相关数据供客户端的用户查询,还要能够上传用户的点名数据到服务器,服务器端进行处理并且保存到相关的数据库。系统数据流图如图3-1所示。图3-1 系统数据流图3.3系统功能需求分析根据考勤管理系统的特点和需求,基于Android的考勤管理系统设计分为服务器端和客户端,服务器端主要负责管理学生的信息,教师的授课信息,各班负责人的信息,以及对客户端上传的点名数据进行处理,对每个教师所带的课的点名数据进行导出到Excel表中。客户端主要是Android客户端,在这里,主要是提供给用户一个友好的操作界面,方便用户的操作,主要是从服务器端下载相应的数据,并且对学生的点名,以及将点名数据上传到服务器端,用户功能需求用例图如图3-2所示。图3-2 用户功能需求用例图3.4 系统的用户分析基于Android的考勤管理系统设计与开发的服务器端的使用者是系统管理员,服务器端使用的数据库是mysql5,所以要求系统管理员是计算机专业人士,能够熟练掌握和应用数据库。客户端的用户是教师,能够掌握计算机的基本操作即可。Android移动端主要是移动设备上的应用,主要用户是持有移动设备的。因此,不管是浏览器还是手机端都必须为教师提供友好、简洁的用户界面。3.5系统开发环境及运行环境(1) 数据库系统:mysql 5.5(2) 服务器操作平台:tomcat 6.0.32(3) 客户端硬件平台:CPU:2GHZ以上,内存:2G以上(4) 手机端:Android4.0系统(5) 开发环境:jdk 1.6(6) 开发工具:Android端:eclipse4.2.0 Web端:myeclipse8.6其中,C/S结构采用的是Android开发,Android具有友好集成界面、可视化的开发模式,内部采用sqlite数据库6,以及高效的程序开发,和程序运行效率。B/S结构总体采用Struts2框架,采用mysql数据库7,通过Web浏览器访问。3.6系统的主要功能模块这一部分主要说明基于Android的考勤管理系统的Web服务器端和Android移动端主要的功能划分,并且对各个功能模块进行描述。3.6.1系统功能模块的划分基于Android的考勤管理系统必须初步满足操作用户的基本需求,根据上面的需求分析,将这个系统划分为两个部分:服务器端和客户端部分。服务器端主要是为客户端进行服务处理的。对于Web服务器端,主要是管理员或者教师本身对于基本信息的管理,例如学生信息、授课信息、各班负责人信息以及点名数据的管理信息,使用者对于这些信息可以做到相应的增删改查,这样方便对于比较多的数据信息进行管理。对于Android移动端主要是方便教师没有携带PC时,对于和其有关的信息进行查询,例如授课信息、各班负责人信息,最主要的一个功能就是Android移动端可以对教师授课的学生进行点名,并且保存点名数据。在服务器开启并且Android移动端联网时,教师可以根据自己的需要对相关数据进行更新,这里的更新数据信息主要包括课程信息以及所带学生的信息,以用于后续的查询以及点名需要。基于Android的考勤管理系统采用C/S与B/S混合的模式8进行开发,其中B/S部分主要负责Web服务器与数据库服务器之间,C/S部分主要是Android手机移动客户端与数据库服务器之间,其功能模块划分如图3-3所示。图3-3 系统功能层次图3.6.2系统功能模块描述 服务器端(1) 登录验证:对登录到系统的人员进行验证,只能是管理员和相关教师,如果是管理员,内部所有功能对其可见,如果是教师,则在课程管理的模块,只能对自己的课程信息进行相关修改。(2) 学生信息管理模块:主要是对学生的相关信息进行增删改查。(3) 课程信息模块:这里主要是对教师所授的课程信息进行增删改查,管理员可以对所有教师进行操作,但是教师只能对和自己有关的课程信息进行操作。(4) 点名信息管理模块:主要对从移动客户端上传的点名信息进行处理,服务器端不能增加点名信息,并且只有修改权限。可以根据教师,课程,以及授课班级,对某一班的点名信息进行统计。(5) 各班负责人管理模块:主要是对每一个班级中的联系人进行管理。(6) 移动端数据的上传与下载:主要是对移动端发送的请求进行处理,一个是移动端要下载有关的信息,还有一个是移动端上传点名的数据。教师还可以将点名的统计信息导出到Excel表中。 Android移动客户端(1) 点名:可以实现对某专业学生的点名,处理到与不到,并且对不到的同学是否请假进行处理。并且可以查看某个同学的相关信息。(2) 个人课表查询:查询教师的个人课表。(3) 各班联系方式管理:负责管理各班联系方式,能发送信息或者打电话给各班负责人。(4) 服务器与手机端的信息相互同步:能够实现服务器端与手机端的信息同步,既能实现从服务器端下载数据,也能实现将手机端的数据同步到服务器端。(5) 到课率与平时成绩统计:查询某专业或者某个人的到课率情况。 4 系统设计这一章主要对于上一章分析的结果做出相应的设计,首先介绍数据库的设计,然后Web服务器端和Android移动端的各个功能模块的执行功能流程。4.1数据库设计这一部分主要是主要介绍通过设计合理的数据库逻辑模式和物理结构,建立数据库和应用程序之间的数据存储与传递。4.1.1 E-R建模为了更清楚地满足用户需求,需要通过相应的数据模型来描述数据之间的关系。它描述了从用户角度看到的数据,反映了用户的现实环境。数据模型中包含3中相互关联的信息:数据对象、数据对象的属性及数据对象彼此间的相互连接关系。从需求分析中,我们提取相关的实体有:登录用户、学生、课程、班级、点名信息等,其之间的相关联系用E-R图如图4-1表示。图 4-1 E-R图4.1.2数据库表的设计数据库服务器为了达到保存各种数据的目的,需要建各种相关表来保存,这样就设计到以下7个表:学生表、课程表、课程详细表、点名表、点名详细表、各班负责人表、用户表。(1)用户表(user):主要是保存可以登录到系统的用户的信息,主要是用户名、密码还有一个自增的ID作为主键。如表4-1所示。表4-1 用户表字段名称数据类型约束字段描述IdIntPrimary key用户ID,自增UsernameVarcharNot null用户名passwordVarcharNot null密码(2)学生信息表(student):主要对学生的相关信息进行记录,包括学号、姓名、性别、学院、专业,其中学号作为主键。如表4-2所示。表4-2 学生信息表字段名数据类型约束字段备注s_id varchar(10)主键学生学号 s_name varchar(20)学生姓名s_sex varchar(10)学生性别s_academy varchar(20)所在学院s_major varchar(20)所在专业(3) 课程信息表(course):主要对课程的课程号、课程名以及授课教师的信息进行保存。如表4-3所示。表4-3 课程信息表字段名数据类型约束备注c_id varchar(10)主键课程号c_name varchar(20)课程名c_teachername varchar(20)授课教师(4) 课程详细信息表(course_detail) :对课程的详细信息进行保存,包括课程号、授课时间、上课的节数、上课地点以及上课的专业,其中课程号作为外键,课程详细ID作为主键。如表4-4所示。表4-4 课程详细信息表字段名数据类型约束备注ct_idint主键,种子为1,自增列表数据编号c_idvarchar(10)外键课程号s_majorvarchar(20)上课专业c_partsvarchar(5)上课节数c_placevarchar(20)上课地点c_timevarchar(20)授课时间(5)点名信息表(rollcall) :对点名的时间、点名的方式以及课程编号进行保存,其中点名编号作为主键,自增的,课程编号作为外键,点名方式有抽查和全点。如表4-5所示。表4-5 点名信息表字段名数据类型约束备注r_id int主键,种子为1,自增列点名编号c_idvarchar(10)外键课程编号r_time datetime点名时间r_style varchar(10)点名方式(6)点名详细信息表(detail_rollcall) :对点名的详细信息进行保存,包括学号、点名的编号、点名状态,其中点名详细ID作为主键,自增,学生学号以及点名编号作为外键,点名状态有:到、未到、请假和未点。如表4-6所示。表4-6 点名详细信息表字段名数据类型约束备注d_idint主键,种子为1,自增列表编号s_idvarchar(10)外键学生学号r_idint外键点名编号d_statusvarchar(10)点名状态(7)联系人信息表(linkman) :对各班负责人的信息做相应的保存,包括学号、联系电话以及这个班的简要介绍,其中联系人信息表ID作为主键,学生学号作为外键。如表4-7所示。表4-7 联系人信息表字段名数据类型约束备注l_id int主键,种子为1,自增列表编号s_idvarchar(10)外键学生学号l_linkvarchar(15)联系电话l_detailvarchar(200)班级的简要介绍4.2各个功能模块的详细设计这一部分主要介绍Web服务器端与Android移动客户端各个功能的简要介绍以及主要模块的程序流程图。4.2.1 Web服务器端 对于Web服务器端主要是用户的登录模块、学生管理模块、课程管理模块、点名管理模块以及各班联系人管理模块。并对不同用户登录Web服务器时,给不同用户开放不同的权限。用户登录模块用Web 浏览器访问服务器时,首先是对身份的验证,如果验证成功,进入系统界面并且将用户名保存到session9中,以便后续判断用户的身份,其程序流程图如图4-2所示。 图4-2 用户登录模块流程图 学生管理模块进入系统后,学生管理模块有以下两个部分:(1) 学生信息列表:点击进入界面后,会将所有的学生显示出来,并且经过分页处理,每页只显示10条记录,可以通过界面上的相关组件查询某一个班级的学生信息,并且可以对学生信息进行修改和删除,并且操作期间保证数据的完整性。对于删除操作,会相应的删除数据库中的数据,程序流程图中不在给出。其程序流程图如图4-3(a)所示。(2) 添加学生:点击进入添加学生界面,填写相关信息后,可以保存学生信息到数据库中。其程序流程图如图4-3(b)所示。 图4-3(a) 学生管理模块程序流程图 图4-3(b) 学生管理模块程序流程图课程管理模块课程管理模块分为以下两个部分:(1) 课程信息列表:点击进入界面后,会将所有教师所带的所有的课程信息显示出来,并进行分页显示处理,如果是管理员,可以进行所有操作,如果是相应的教师只能对相关课程信息进行操作。通过界面上的相关组件进行教师所带课程信息的查询,对于修改操作,如果只有课程信息,而没有详细的课程信息会提示不能进行修改操作。对于该模块的删除功能,如果用户有删除的权限,即可从数据库中删除该条课程信息,并更新界面,程序流程图中将不再给出。程序流程图如图4-4(a)所示。(2) 添加课程:进入添加课程界面,这里我们只能添加课程编号、课程名称以及课程的授课教师,详细的信息要在课程信息列表中进行增加。程序流程图如图4-4(b)所示。 图 4-4(a) 课程管理模块程序流程图 图 4-4(b) 课程管理模块程序流程图点名信息管理模块点名信息管理模块分为两个部分:(1) 点名信息列表:点击进入界面之后,会将数据库中的点名相关的数据进行统计,并且显示在界面上,并且进行分页处理,只能对这些点名信息进行修改。通过教师名、课程名以及班级查询相关的点名信息。对于该模块的查询功能,按照选择的一定的条件,即可显示出查询的相关点名信息,该功能在程序流程图中将不再给出。程序流程图如图4-5(a)所示。(2) 导出到Excel表:点击进入之后,首先得选择课程名、授课教师以及授课的班级,服务器端导出到excel中成功之后,会提示你去下载。程序流程图如4-5(b)所示。 图4-5(a) 点名信息管理模块程序流程图 图4-5(b) 点名信息管理模块程序流程图 班级管理模块点击进入界面后,会首先将数据库中所有的班级联系人的信息显示在界面上,通过界面上的相应链接可以对班级信息进行增删改查。对于班级管理模块的增加操作只要在添加界面输入相关的信息,后续的流程与修改的流程是一样的。对于删除操作,会一并删除数据库中的数据,并更新显示界面。其程序流程图如图4-6所示。 用户管理模块这一部分主要是对管理员进行服务的,可以增加合法用户。该模块的增加功能与班级信息管理的增加功能的程序流程图是一样的,这里将不再给出。图 4-6 班级信息管理模块程序流程图4.2.2 Android移动端这一部分主要介绍Android移动端相关模块的开发,重点介绍几个重要的功能模块以及每个功能模块的程序流程。例如点名模块、教师课表查询模块、各班负责人查询模块、以及点名数据查询处理模块。 点名模块这一部分主要是对有移动客户端的教师进行服务。首先进入点名界面,先选择课程名、授课的班级以及点名的方式,是抽查还是全点,确认之后如果有点名数据则会进入真正的点名界面,会显示学号、姓名、是否到课以及是否请假,否则如果没有点名数据,则会做出相应的提示,点名结束之后,点击提交按钮,便将数据保存到相应的文件中。其程序流程图如图4-7所示。 图4-7 点名模块流程图个人课表查询模块这一部分教师可以通过移动终端显示自己所带课的信息,例如授课班级、授课地点以及授课时间。点击主界面上的个人课表查询按钮后进入授课信息界面,如果没有相应的点名信息会提示,如果有点名信息则显示教师所带相关所有课的信息,并且可以通过授课班级的选择某一个班级的授课信息。程序流程图如图4-8所示。各班负责人模块该模块主要供授课教师查询各个班级的联系人,这样教师如果有重要的事可以通过各班的联系人通知到各个班级,界面上可以直接点击打电话的按钮调用系统功能进行打电话。程序流程图如图4-9所示。 图4-8 个人课表查询模块程序流程图 图4-9 各班负责人模块程序流程图 导入导出服务器模块该模块负责移动客户端与服务器端相关数据进行传递,进入界面之后,主要分为以下两个部分:下载与上传。如果是下载则选择从服务器同步到手机,首先Android移动终端会首先发送一个请求,这个请求中包括一些信息,主要是教师的姓名,这样服务器端处理这个请求生成和这个教师有关的数据,例如与这个教师有关的授课信息包括学生信息、课程信息。然后移动客户端再从服务器上下载这些数据。如果是上传则选择从手机同步到服务器,这一部分主要是将教师的点名数据通过网络传给服务器。首先会将点名数据按照一定的规则封装成字符串,然后将这个字符串绑定在请求中,一并发送给服务器,服务器端按照同样的规则解析这个字符串,将这些数据保存到相应的数据库中,Android端如果没有异常的,则说明上传数据成功,并且删除相应的点名数据。程序流程图如图4-10所示。图4-10导入导出服务器模块流程图 学生到课统计模块该模块供教师在移动客户端查看学生的到课信息,首先点击学生到课统计按钮进入界面选择课程与班级,确定后进入统计页面,会显示该教师所带班级某门课程的学生到课信息,显示的信息有学号、姓名、到课次数、未到次数、请假次数,这个界面中还有一个删除按钮,点击删除可以清楚移动客户端sqlite数据库中的相关信息。程序流程图如图4-11所示。图4-11 学生到课统计模块程序流程图5 关键模块的设计与实现在系统实现的过程中碰到过一些棘手的问题,服务器端的分页,以及下载文件到本地,Android移动客户端的从数据库中读取数据实现到课率统计,从服务器下载数据,上传点名数据到服务器,下面详细说明这几部分的实现过程。5.1 服务器端的分页由于现在做的系统数据中数据不是大量级别的,所以就利用mysql中limit,来限制我想要的记录,以学生信息列表为例,下面是主要的实现代码。 public List breaktopages(int count) throws SQLException / TODO Auto-generated method stubList list = new ArrayList();String sql = select * from student limit ?,10;Connection conn = DBUtil.getConnection();/.分页实现中主要的两句是String sql = select * from student limit ?,10;pst.setInt(1,(count-1)*10);其中sql语句中limit 后面跟两个参数,第一个是从第几条数据开始,第二个参数表示最多显示几条数据。调用的时候传进来一个参数,例如传1时表示我想要的数据是第1条到第10条共10条数据,传2时表示第11条到第20条数据5.2导出点名数据到Excel这里分两部分实现,首先生成excel文件,然后是下载这个excel文件。5.2.1 生成Excel文件这里用到java 中的jxl.jar包10,这个包可以用java语言操作excel,使用方法(1)打开文件WritableWorkbook book = Workbook.createWorkbook(new File(“文件名.xls”);(2)生成工作表,参数为0表示第一页WritableSheet sheet = book.createSheet(“第一页”,0);(3)在Label对象中指明单元格的位置以及单元格的内容Label label = new Label(0,0,”test”);表示第0列第0行的数据位test(4)将label 加到工作表中sheet.addCell(label);(5)写入数据,关闭文件Book.write();Book.close(); 下面是程序中所使用的代码public static void WriteExcel(File fileName, ResultSet rs) throws Exception / 创建一个新的工作薄,fileName 包含了文件名以及路径。 WritableWorkbook wwb = null; WritableSheet ws = null; try wwb = Workbook.createWorkbook(fileName); / 给工作薄添加一个工作表,命名为 sheettest. ws = wwb.createSheet(sheettest, 0); /. / 下面for循环里面的rs.getMetaData().GetColumnCount() 获取数据库中某个表的列总数 for (int k = 0; k rs.getMetaData().getColumnCount(); k+) / rs.getMetaData().getColumnName()获取表的列名。并添加到 excel表Label里 ws.addCell(new Label(k, 0, k=0?学号:rs.getMetaData().getColumnName(k + 1); while (rs.next() / 算法,依次添加数据库中所有符合的数据到excel中 for (int k = 0; k rs.getMetaData().getColumnCount(); k+) ws.addCell(new Label(k, j + i + 1, rs.getString(k + 1); /. 5.2.2下载Excel文件 Web端的整体框架是使用struts2中实现的,所以利用struts2中的流响应11来实现文件的下载。处理下载的类:org.apache.struts2.dispatcher.StreamResult。(1)action中必须有两个属性,一个是InputStream ,还有一个文件名downfile,并生成setter ,getter.(2)执行函数中最主要的是获得用户要下载的输入流。通过new FileInputStream(文件名)获得。(3)后续的工作就是配置struts.xml文件。/download/xhtml.txttext/plainattachment;filename=xhtml.txtdownloadFile主要是struts.xml中的配置,本系统中的配置如下: downFile attachment;filename=$fname5.3Android移动客户端从数据库中读取数据在Android程序中如果是想要操作sqlite数据库,一般都是自己写一个类继承SQliteOpenHelper,在其中实现自己所要实现的功能。下面直接贴代码:public class DB extends SQLiteOpenHelper public DB(Context ctx) super(ctx, db_rollcall, null, 1);public void onCreate(SQLiteDatabase db) db.execSQL(create table rollcall (_id integer primary key autoincr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风资源精细化评估-洞察及研究
- 品牌营销推广策略合作条款
- 水利行业智能水肥一体化方案
- 沃尔玛连锁配送个性化实施解决方案
- 消防安全管理方案
- 三农村废旧地膜回收利用方案
- 机场入境咽拭子采样流程
- 节水爱水共护家园课件
- 节气门传感器课件
- 废弃物处理场火灾事故应急预案范文
- 海康智慧工地解决方案
- 《KANO模型培训》课件
- 四川省2024年高等职业教育单独招生考试中职类语文试题及答案
- 实验室危化品安全管理培训
- 复苏室患者的交接流程
- 老旧小区改造给排水施工方案
- 【人教版化学】选择性必修1 知识点默写小纸条(答案背诵版)
- DB21-T 2523-2015矿山地质环境恢复治理规程
- 2024天津高考英语试题及答案
- 实验室中央空调施工方案
- 幼儿园 中班语言绘本《章鱼先生卖雨伞》
评论
0/150
提交评论