




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
盐城师范学院毕业设计盐 城 师 范 学 院毕业设计20132014学年度基于Android的上课点名系统学生姓名 学 院 专 业 软件工程 班 级 学 号 指导教师 2014年3月1日基于Android的上课点名系统摘 要上课点名系统主要利用当前成熟的web技术和当前流行的移动平台,为老师和班长提供对上课点名信息的提交和查询的功能。本系统以Eclipse为开发工具,利用成熟的SSH框架,Android技术设计并开发,同时采用MySQL5.0完成数据库的设计及使用。本系统的主要功能模块:教师查询缺课信息模块,教师处理缺课申请模块,教师查询历史已处理模块,班长提交缺课信息模块,班长查询缺课信息模块,管理员管理用户信息模块,管理员管理课程信息模块,管理员管理学生信息模块。本文先阐述了课题研究背景及主要内容,又进行了系统的需求分析,接着进行系统设计和实现,最后对系统进行了相应的测试。本系统具有操作简便,可靠性强,可扩展性好,适合我校的实际情况等特点。【关键词】Eclipse Android 上课点名系统 分析 设计Class Attendance System based on androidAbstractThe main advantage of online medical management system is now web technologies, providing medicines management and query functions for pharmacy managers. This system Eclipse development tools, the use of sophisticated SSH framework, while using SQL Server2005 complete the database design and use. The main features of this system are the basis of information management module, inventory management module, sales management module, query statistics module and system settings module. This paper first describes the background and significance of the course, and then demand analysis, the final system design and implementation in accordance with the needs of the system, the final test of the system accordingly. The system has a simple operation, security, scalability, and other characteristics suitable for the needs of the current medical management. Key words Eclipse Android Class attendance system Analysis Design 目 录1.引言11.1研究的背景及意义11.2研究思路12.环境语言及相关技术的介绍22.1 Eclipse22.2 MyEclipse22.3 Spring+Struts+Hibernate22.4 Android技术23需求分析33.1功能性需求43.1.1教师模块需求分析43.1.2 班级模块需求分析73.1.3 管理员模块需求分析93.1.4 客户端更新IP功能需求分析113.2非功能性需求123.3 开发利用到的技术134数据库的设计134.1数据库设计原则134.2逻辑结构设计145系统设计155.1 系统登入模块165.2 任课老师查询模块175.3 任课老师处理请求模块195.4 任课老师查询历史已处理信息模块215.5 班长提交缺课信息模块235.6 班长查询缺课信息模块245.7 管理员导入上课信息265.8 管理员导入学生信息276系统实现297系统测试357.1系统测试与环境357.2系统测试用例35结 论38参考文献39致 谢401.引言近年来,智能手机得到广泛的使用,它给我们的生活的许多方面带来了很大的便利。我们可以利用移动端设备完成在PC端的一些功能,如网上购物,网银支付。因此,利用当前流行的移动设备构建现代信息化课堂是可行的。在讨论了Android应用系统开发环境的基础上,提出了基于Android的上课点名系统,该系统可以为老师和班长提供上课点名信息的提交、查询等功能,节省老师和学生的时间,有利于课堂出勤等信息的统计。系统以Tomcat为Web服务器, MySQL为数据库管理系统,移动端和服务端的数据交互采用JSON技术。1.1研究的背景及意义计算机技术的发展使得计算机和手机逐渐成为人们生活中必不可少的一部分,与我们生活也息息相关。伴随着我国教育的普及和当前全球范围的知识经济的突飞猛进,利用当前的技术,为学生和老师实现一个可靠、安全、高效的上课点名系统是完全可以实现的。该系统可以有效的节省老师和学生的时间,提高老师对学生出勤的监控,为老师能够顺利地完成教学计划提供有力的保障。对于学生,能提高他们的出勤率。这对于促进信息化课堂有很好的辅助作用。1.2研究思路选题之后,我和指导老师、同学进行沟通,了解系统的功能需求和性能需求。根据我们的调查,学校中大多数学生使用Android移动设备,因此手机客户端利用Android技术开发,但是系统会预留好必要的接口,为以后开发其他移动端做好准备。对于web服务端,采用成熟稳定的SSH框架,保障系统的稳定性和安全性。采用Json数据格式进行移动端和服务端的数据交互。为了尽量减少网络连接,经过讨论,本系统把一些必要的数据以xml的格式存放在客户端。若数据有更新,服务器推送信息提示移动端进行数据更新。在进行系统需求分析后,根据需求分析进行数据库设计,系统概要设计和详细设计,最后编码实现本系统并进行必要的系统测试。2.环境语言及相关技术的介绍经过讨论,我们知道,目前,开发此类系统的技术已经相当成熟,可提供的开发工具也很多。在本课题中选择如下的开发环境:开发环境:Eclipse,MyEclipse编程语言:Java+SSH+Android数 据 库:MySQL2.1 EclipseEclipse 是一个可扩展的开发平台并且是开放的基于Java。对于它本身而言,它只是一个框架和一组服务的集合,通过插件构建开发环境1。2.2 MyEclipseMyEclipse是对EclipseIDE的扩展,利用它可以在开发web程序的时候,极大的提高我们的开发效率 2。2.3 Spring+Struts+HibernateSpring是一个强大的框架,它解决了在web开发中许多常见的问题。 Spring提供了一致的方法来管理业务对象,帮助人们养成用注入接口的方式进行编程的习惯3。Struts是一个MVC框架,基于Sun J2EE的平台,主要是用Servlet和JSP技术来实现的。利用struts后,开发人员进行编程的时候,就不用再自己去编程实现全部的MVC模式了,很大的节省了开发人员的时间 4。Hibernate是一个开源的,对象和关系映射框架,它实现了对JDBC非常轻量级别的封装,使得java的程序员能够真正的利用面向对象的思想来操作当前成熟关系数据库5。2.4 Android技术Android是一个手机平台,它是由Google公司最新推出的。以Linux为核心,是真正的开放性的移动设备综合平台。它给全球智能手机行业带来很大的改变。3需求分析上课点名系统主要有三个角色,分别是任课老师,班级,管理员。任课老师可以实现对缺席学生的查询,处理他们的申请,查询历史已处理信息;班级角色,可以对本班级所上课程缺席人数的查询,对每次上课的缺席人数进行提交。管理员则对每学期的上课信息和数据信息进行管理。任课老师角色系统用例图如图2-1所示:图2.1老师功能用例图班级角色系统用例图如图2-2所示:图2.2班长功能用例图管理员角色系统用例图如图2-3所示:图2.3系统管理员用例图3.1功能性需求3.1.1教师模块需求分析教师的角色的功能主要有老师查询自己所教班级一段时间内的学生缺课情况,处理学生的缺课撤销申请,查看已处理申请的功能。任课老师用android手机以自己的账号和密码登入系统,进入系统后,一共有三个界面,一是查询界面,二是查看已处理请求,三是查看并处理未处理请求。(1)教师查询功能:任课老师登入系统后,切换到查询页面,选择需要查询的班级以及所要查询的课程,点击查询按钮后,系统为老师查询出某个班级某门课程学生上课缺席情况。时序图如图2-4所示:图2-4老师查询时序图(2)教师查看已处理缺课信息功能:由于很多学生经常有事请假,任课老师一次两次可能会同意他的缺课撤销申请,为了避免无缘无故的请假,系统提供此历史记录查询,供任课老师的处理缺课撤销申请提供参考。任课老师登入系统后,切换到此功能,选择相应要查询的班级和课程,点击查询,系统为任课老师查找出某班级某课程的已处理的缺课信息。时序图如图2-5所示:图2-5老师查询历史记录时序图(3)教师的处理缺课撤销申请功能:有些学生有时会因为某些事缺席上课,任课老师要对缺课信息及时处理,是否同意本学生的某次缺课。若同意,则在老师查询缺课信息时,不对本学生的此次缺课进行统计,即不做缺课处理。若不同意,该学生的此次缺课最终纳入缺课信息统计,以便任课老师期末为其打出平时分。时序图如图2-6所示:图2-6老师查询历史记录时序图3.1.2 班级模块需求分析班长角色的功能:一是提交某门课程某次上课的学生缺课信息至后台服务器,以便任课老师对其进行处理,二是查询本班级某课程本班级学生的缺席情况,并提供分享功能,以警示那些经常缺课的学生。(1)班级提交缺课信息的功能:某班长利用本班级的账号登入系统并切换到提交页面,由于缺课学生人数的不确定性,系统提供动态添加功能。班长选择相应的课程后点击增加按钮,系统跳出一个添加填写缺课学生的页面,班长填写后,点击确定,就会在原界面上增加一条学生缺课信息。若有多人可以添加多个学生。然后班长点击提交按钮,若提交至后台成功后,系统自动跳到短信界面,班长编辑短信发给任课老师,提醒老师对本次的缺课信息进行处理。时序图如图2-7所示:图2-7提交缺课信息时序图(2)班级查询本班学生某课程的缺课情况:某班长利用本班级的账号登入系统并切换到查询页面后,选择要查询的班级,点击查询按钮。系统会以列表的形式给出相应的数据。时序图如图2-8所示:图2-8班级查询信息时序图3.1.3 管理员模块需求分析管理员功能:管理的相关功能在PC端。一是导入老师上课信息,每个学期,管理员将本学院的教师上课信息提交到后台。二是对本学院的学生信息进行更新。三是每学期对数据库信息进行清空。(加用户权限,导出)(1)导入老师上课信息功能:每学期老师的上课信息都不同,这就需要管理员在每个学期对老师的上课信息进行更新,在开学前对新的学期老师上课信息进行导入,让系统生成相应的XML文件供客户端下载,保证系统能够在新的学期进行正常使用。并且可以修改相应的上课信息。时序图如图2-9所示:图2-9管理员导入上课信息时序图(2)更新学生信息功能:学院每个学年都会有很多新生入学,这就需要管理在每个学年里对本学院的学生信息进行更新。管理在pc端登入系统后,选择到更新学生信息的功能,导入相应的excel表格即可。时序图如图2-10所示:图2-10管理员导入学生信息时序图3.1.4 客户端更新IP功能需求分析有时服务端IP地址是动态变化,为了保证客户端能顺利的完成数据交互。需要在客户端动态加载IP的功能。若用户首次登入到界面,系统需要用户数据服务器的IP,以保证客户端能够与服务端保持网络通畅。时序图如图2-11所示:图2-11更新IP时序图3.2非功能性需求(1)操作便捷性:在所有的操作中,系统只需要用户选择,无需过多的输入,真正节省用户的时间。(2)安全性:不仅仅具有权限控制操作,对数据库中的数据进行定期的备份,保证数据的安全性。 (3)开放性:通过高内聚模块化设计,提升系统可扩展性,在现有公共信息服务、微博平台、短信平台的集成之外为其它的信息源集成提供接口支持,并支持二次开发。(4)响应时间:移动客户端以及传统浏览器端发送请求在5秒以内给出响应。3.3 开发利用到的技术(1)JSON数据解析JSON(JavaScript Object Notation) 是一种轻量级数据交换格式。JSON采用的文本格式不仅完全独立于语言,也使用了类似于C语言的习惯,JSON的这些特性是它成为比较理想的数据交换语言的原因,方便程序员的阅读和编写,同时对于机器,也容易解析和生成。利用JSON, JavaScript对象中的一组数据可以被转换为字符串,然后在系统实现时,在函数之间可以传递这些函数,并且在异步的应用程序中,可以将这些字符串从客户端传到服务端 7。相比于XML,JSON数据格式比较简单,易于读写,经过压缩后的数据占用带宽小,更适合用于移动平台通信。服务端的代码可以直接使用JSON格式的数据,节省了服务端和客户端代码的开发量。由于完成的任务是不变的,因此易于维护8。(2)SAX解析XMLJava中有DOM和SAX解析XML。DOM是通过利用建立树形结构的方式,对XML文档进行访问,而 SAX 采用的是事件驱动模型。DOM 解析器是把 XML 文档转化为一个树,并可以对树进行遍历。对于开发人员而言,DOM解析器的优点是容易编程,只需要调用相关的指令,然后利用API访问所需的树节点就可以完成相应的任务 9。SAX 解析器采用了基于事件的模型,解析 XML 文档的时候,它会触发一些的事件,当发现给定tag的时候,它就会激活一个回调方法,告诉解析器要找的标签已经找到。由于它让开发人员自己来决定所要处理的标签,因此它对于系统内存的要求比较低10。考虑到XML文档是在移动客户端解析,对内存的使用有较大的要求,为了节省客户端的内存占用,本系统选用SAX解析XML文档。4数据库的设计4.1数据库设计原则针对于上课点名系统要求对于信息的处理,我们对数据库中进行表的设计时,遵循数据规范设计模式从而达到数据库设计的优化。规范设计模式中,我们采用规范化理论,从范式的角度对关系进行统一优化,考察不同关系模式属性之间存在的某种函数依赖,按照数据依赖的理论,确定其为第几范式,进行模式分解,从而最大程度上消除冗余度大、插入异常和删除异常等问题。如:创建用户表时,有 具体代码如下:CREATE TABLE user ( ID bigint(20) NOT NULL AUTO_INCREMENT, userID varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL, userName varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, userPwd varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL, userRole varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (ID) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;4.2逻辑结构设计良好的数据库设计对于一个高性能的应用程序非常重要,如果关系没有经过优化,数据库无法尽可能高效地运行。应该把数据库的关系和性能看作是规范化的一部分。上课点名系统充分体现系统的需求,准确表达出数据间的关系,保证数据的准确性和一致性,通过外键、非空、限制、唯一索引等保证数据的强壮,本系统数据库在设计之初就考虑到各种因素,因此具有较好的扩展性,在必要时能根据需求扩展数据结构。数据库表设计见表3-1,表3-2,表3-3,表3-4:表3-1用户角色表字段介绍字段名数据类型主外键注释IDbigint(20)pk用户表元组iduserIDVarchar(8)用户登入账号userNameVarchar(50)用户姓名userPwdVarchar(15)用户登入密码userRoleBit(t,c)用户角色表3-2老师上课信息表字段介绍字段名数据类型主外键注释gidbigint(20)P_K老师上课IDteaIdvarchar(8)F_K老师IDclassNamevarchar(50)上课班级名courseNamevarchar(50)老师所上的课程表3-3学生缺课信息表字段介绍字段名数据类型主外键注释sidbigint(20)pk学生缺课信息IDsimilarInfo_gidbigint(20)fk外键timeDate学生缺课日期stuIdvarchar(8)缺课学生IDstuNamevarchar(15)缺课学生姓名表3-4学生缺课申请信息表字段介绍字段名数据类型主外键注释Absence_idbigint(20)pk主键,自动增长sidbigint(20)fk外键acausebit此缺课信息是否被处理applyCauseVarchar(50)申请撤销理由isAgreebit缺课学生申请撤销isApplybit老师是否同意撤销申请5系统设计根据系统所要的需求,经过调查,讨论,本系统主要实现教师角色,班长角色,管理员角色主要的功能,系统模块如图5-1所示:图5-1系统功能模块图5.1 系统登入模块教师和班长登入系统首页后,输入相应的用户名和密码,点击登入按钮后,由系统进行验证,若验证成功则跳到相应的教师或班长界面,若错误,则给出相应的提示。系统时序图如图5-2所示:图5-2 用户登入模块时序图根据相关需求,涉及到的相关类如表5-1,表5-2:表5-1 用户登入模块服务端相关类设计包路径类名称方法名说明com.skdm.action.userloginuserLoginActionuserInfoCheck()接收Android客户端的请求,并返回相应信息到客户端com.skdm.service.useruserLoginServiceuserInfoCheck(user)连接数据验证用户表5-2 用户登入模块Android客户端相关类设计包路径类名称方法名说明com.skdm.activity.userloginuserLoginActivityoncreate()加载android客户端的界面,并且根据服务端的请求,跳转到相应的界面postInfo(jArray)将客户端相应的数据提交到服务端5.2 任课老师查询模块用户进入老师界面,切换到查询界面,选择要查询的班级和课程,点击查询按钮,若有数据则显示相应的数据,若没有则提示用户没有数据。系统时序图如图5-3所示:图5-3 老师查询模块时序图根据相关需求,涉及到的相关类如表5-3,表5-4:表5-3 老师查询模块服务端相关类设计包路径类名称方法名说明com.skdm.action.teacherteacherSearchActiongetClientData()获取相应的客户端传来的数据goToService(data)调用serviece层,参数是getClientData()转换来的数据com.skdm.service.teacherteacherSearchServicegetSearchData(data)根据data中的数据查询老师所要的数据changeToAbsenceList将从数据库获取到的数据转换成前台需要的数据格式表5-4 用户登入模块Android客户端相关类设计包路径类名称方法名说明com.skdm.activity.teacherteacherSearcherActivityoncreate()加载android客户端的界面,并且根据服务端的请求,跳转到相应的界面postInfo(jArray)将用户输入的数据已json格式传到服务器teacherSearcherAdaptershowList(list)将接收到的数据以listView的格式显示出来5.3 任课老师处理请求模块老师登入系统,对学生缺课信息进行处理,对于某位学生的缺课,老师可以同意他的缺课申请,即不作为旷课处理。若不同意,该学生的缺课就作为缺课,最后由系统统计他的缺课次数。系统时序图如图5-4所示:图5-4 老师处理缺课信息模块时序图根据相关需求,涉及到的相关类如表5-5,表5-6:表5-5 老师处理缺课信息模块服务端相关类设计包路径类名称方法名说明com.skdm.action.teacherteacherDealActiongetClientData()获取相应的客户端传来的数据returnClientList(undoInfo)将查询到的数据返回给客户端com.skdm.service.teacherteacherSearchServicegetUndoData(teaID,courseName,className)获取此位老师未处理缺课信息changeToAbsenceList()将从数据库获取到的数据转换成前台需要的数据格式并封装成json格式表5-6 老师处理缺课信息模块Android客户端相关类设计包路径类名称方法名说明com.skdm.activity.teacherteacherUndoInfoActivityoncreate()显示用户查询未处理信息UIpostInfo(jArray)将用户输入的数据已json格式传到服务器teacherSearcherDealDealInfo()处理用户的处理信息若同意则返回true否则返回false5.4 任课老师查询历史已处理信息模块老师登入系统后,却换到历史记录查询页面,选择需要查询的课程和班级,系统会自动查找出历史记录,供任课老师参考。系统时序图如图5-5所示:图5-5 老师查询历史信息模块时序图根据相关需求,涉及到的相关类如表5-7,表5-8:表5-7 老师查询缺课信息模块服务端相关类设计包路径类名称方法名说明com.skdm.action.teacherteacherSearchHisActionchangeJsonToModel(jArray)将json数据格式转换成系统需要的modelgetHistoryInfo(model)获取到历史已处理的信息,参数为modelcom.skdm.service.teacherTeacherSearchHisServicegetDoneData(teaID,courseName,className)获取此位老师已处理缺课信息changeToAbsenceList()将从数据库获取到的数据转换成前台需要的数据格式并封装成json格式表5-8 老师查询缺课信息模块Android客户端相关类设计包路径类名称方法名说明com.skdm.activity.teacherteacherDoneInfoActivityoncreate()显示用户查询未处理信息UIpostInfo(jArray)将用户输入的数据已json格式传到服务器ChangeJsonToAbsence(jArray)将接收到的json数据转换成list列表teacherDoneAdapterDoneAdapter()加载listView控件以显示出查询到的信息5.5 班长提交缺课信息模块班长对某次课程缺课信息惊醒提交,用户登入到系统后,切换到提交界面,点击增加按钮可以增加缺课学生的信息,若有多个学生,可以多次添加。添加完成后点击提交按钮,系统会给出相应的提示。系统流程图如图5-6所示:图5-6班长提交信息模块时序图根据相关需求,涉及到的相关类如表5-9,表5-10:表5-9班长提交信息模块服务端相关类设计包路径类名称方法名说明com.skdm.action.monitorMonitorInsertActionchangeJsonToList(jArray)将json数据格式转换成系统需要的缺课学生ListinsertStudent(list)对缺课学生进行插入续表5-9班长提交信息模块服务端相关类设计包路径类名称方法名说明com.skdm.service. monitorMonitorInsertServiceinsertStudentService(list)将缺课学生插入数据库表5-10 班长提交信息模块Android客户端相关类设计包路径类名称方法名说明com.skdm.activity. monitormonitorInsertActivityoncreate()加载初始页面postInfo(jArray)将用户输入的数据已json格式传到服务器AddActivity动态增加人数输入DialogAddAdapter增加学生适配器MonitorInsertListViewShowAbsenceList()加载listView控件以显示出要提交缺课人数5.6 班长查询缺课信息模块班长对本班级缺课人数进行查询,输入要查询的课程名,点击查询,若有信息,系统以listView的形式显示出来,若没有则给出相应的提示。系统时序图如图5-7所示:图5-7班长查询信息模块时序图根据相关需求,涉及到的相关类如表5-11,表5-12:表5-11班长查询信息模块服务端相关类设计包路径类名称方法名说明com.skdm.action.monitorMonitorSearchActionchangeJsonToList(jArray)将json数据格式转换成系统需要的缺课学生ListSearchClassInfo(moSeaModel)查询某班级的缺课信息com.skdm.service. monitorMonitorSearchServiceSearchClassInfo(moSeaModel)从数据库中查询到缺课的数据,并返回相应的listChangeIntoJson(absenceList)将从数据库接收到的信息转换成json格式,插入数据库表5-12 班长查询信息模块Android客户端相关类设计包路径类名称方法名说明com.skdm.activity. monitormonitorSearchActivityoncreate()显示用户查询初始UIpostInfo(jArray)将用户输入的数据已json格式传到服务器MonitorAdapter(list)显示列表adapter5.7 管理员导入上课信息客户端使用的XML文件,是管理员添加的。管理员通过电脑,通过浏览器登入系统后,以Excel表格的形式导入上课信息。系统会自动为其生成固定格式的XML文件,供客户端下载。系统时序图如图5-8所示:图5-8管理导入上课信息模块时序图根据相关需求,涉及到的相关类如表5-13:表5-13管理导入上课信息相关类设计包路径类名称方法名说明com.skdm.action.adminAdminDaoActionSaveExcel()保存从前台导进来excelGotoService()根据前台传过来的标志,判断应该跳转到哪个servicecom.skdm.service. adminAdminDaoServiceReadExcel(String path)将上传到服务器的excel读取到内存中,并返回相应的字符串changeCourseModel(String data)将解析来的excel的string类型的data转换成老师上课信息这样的实体CreateCourseXML(course)生成相应的xml文档5.8 管理员导入学生信息客户端使用的XML,是管理员添加的。管理员通过PC,通过浏览器登入系统后,以Excel表格的形式导入上课信息。系统会自动为其生成固定格式的XML文档,供客户端下载。系统时序图如图5-9所示:图5-9管理导入学生信息模块时序图根据相关需求,涉及到的相关类如表5-14:表5-14管理导入上课信息相关类设计包路径类名称方法名说明com.skdm.action.adminAdminDaoActionSaveExcel()保存从前台导进来excelGotoService()根据前台传过来的标志,判断应该跳转到service中生成学生xml方法中执行com.skdm.service. adminAdminDaoServiceReadExcel(String path)将上传到服务器的excel读取到内存中,并返回相应的字符串changeCourseModel(String data)将解析来的excel的string类型的data转换成学生信息这样的实体CreateStuXML(s)生成相应的xml文档6系统实现由于篇幅的限制,在本文中主要以班长提交缺课信息为例来介绍系统实现,详细讲解其实现的过程,其他功能模块的实现请参照源码。(1)班长根据自己的所在班级的账号和密码,从移动端登入系统。上课前几分钟,统计上课的缺课人数,通过本系统提交到服务端。首先班长点击增加按钮,输入相应的学号和缺席的理由,在主界面上就会增加相应的缺课人员,若还要添加,可重复上述操作。若添加完成,点击提交按钮即可。系统界面如图6-1所示:图6-1班长提交缺课信息界面图详细系统分析:班长输入用户名和密码后,跳转到MonitorSendActivity.class,其中有个Oncreate方法,主要加载提交信息的初始界面。代码如下:protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.stu_sendinfo);/ 获取选择框控件Spinner s1 = (Spinner) findViewById(R.id.spinner1);table = (TableLayout) findViewById(R.id.dictTable);addButton = (Button) findViewById(R.id.add);commitButton = (Button) findViewById(R.mit);/ 获取classNameIntent intent = this.getIntent();Bundle bundle = intent.getExtras();User user = (User) bundle.getSerializable(user);className = user.getUserName(); / 获取本班级的学生if (stuList.size() = 0) parseXml1();/ 获取本班级的课程信息parseXml();courseNames = new Stringlist.size();/ 在spinner中显示for (int i = 0; i list.size(); i+) courseNamesi = list.get(i).getCourseName();/ 初始化自动增加控件initDictItemTable();ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, courseNames);s1.setAdapter(adapter);当点击增加按钮时会加载myDialog(),该方法主要是加载添加学生的输入框体,代码如下:Public void myDialogfinal EditText stuIDEditText = (EditText) textEntryView.findViewById(R.id.etUserName);final EditText applyEditText = (EditText) textEntryView.findViewById(R.id.applyedit);final TextView errorTag = (TextView) textEntryView.findViewById(R.id.errortag);stuIDEditText.addTextChangedListener(new TextWatcher() Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) boolean flag = false;String stuID = s.toString();for (int i = 0; i stuList.size(); i+) if (stuID.equals(stuList.get(i).getStuID() flag = true;if(flag)errorTag.setText();System.out.println(right);elseerrorTag.setText(没有此学生);errorTag.setTextColor(Color.RED);若添加完成,用户点击提交按钮后,客户端会调用sendInfo()方法,将缺课信息提交到后台。该方法会调用联网的类HttpReturnDataUtil,进行网络连接,以HttpPost的方法json数据提交到后台。void sendInfo()String returnString = HttpReturnDataUtil.getResponseData(URLContain.MONIINSERT_URL, jObject);try JSONObject jo = new JSONObject(returnString);boolean flag = jo.getBoolean(flag);System.out.println(table.getChildCount();int i = 1;for ( i = 1; i table.getChildCount(); i+) table.removeView(table.findViewById(i);在服务端主要以SSH框架框架编写,当服务器接收到请求后,会根据struts.xml文件决定跳转到什么样的action。就此功能而言,当服务器接收到请求后,会根据xml中的jsonarray语句跳转到monitorSendAction类中的getAbsenceData方法,并调用changeJsonToList()方法将json格式的数据转换成absenceStudent实体类。转换好后,将数据传送到service层,调用service包中的MonitorInsertAbsenceData类中insertData方法将数据插入数据库。核心代码如下:public MonitorSearchInfoModel monitorSearchInfo(String className, String courseName)CourseInfo courseInfo;SimilarInfo similarInfo = new SimilarInfo();similarInfo.setClassName(className);similarInfo.setCourseName(courseName);monitorSearchInfoDao = new MonitorSearchInfoDao();courseInfo = monitorSearchInfoDao.monitorSerchInfo(similarInfo);if(courseInfo = null)return null;elsechanggeInfomonitorSearchInfoModel(courseInfo);return monitorSearchInfoModel;插入数据库方法是通过hibernate实现的,hibernate自动将数据插入数据库。会加载hibernate.cfg.xml中的com.mysql.jdbc.Driver
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设计质量提升管理制度
- 诊所义诊项目管理制度
- 诊所日常器械管理制度
- 试验检修设备管理制度
- 财务管理税务管理制度
- 财政往来资金管理制度
- 货场出库日常管理制度
- 货物进出登记管理制度
- 货运码头现场管理制度
- 2025年中国防窥膜行业市场全景分析及前景机遇研判报告
- 2025春国开《创业基础》形考任务1-4答案
- 国家开放大学2025年《创业基础》形考任务1答案
- 公司事故隐患内部报告奖励机制
- 人教版七年级下册英语单词辨音训练题(一)
- 《丹江城区普通住宅小区物业服务收费管理办法》
- CYD-128(环氧树脂)MSDS
- 3船舶操作手册
- 2018-2019学年进才中学初生高自招英语模拟三
- 石油螺纹量规单项测量仪使用说明书
- 空白中心医院鱼骨图分析模板
- 上海百世快运配送路径优化研究物流管理专业
评论
0/150
提交评论