县级气象业务学习APP答题及统计模块的研发

2019-10-21 06:52朱俊翰魏明明
现代信息科技 2019年20期

朱俊翰 魏明明

摘  要:县级气象业务学习APP是由山东省青岛市崂山区气象局开发的一款APP,是一款使用Android Studio配合Java语言开发的APP,具有综合测试、分知识点测试、错题回顾等基本功能,也具有视频播放,上报错误等衍生功能,相比于一般的APP还具有本地答题的功能。本文详细叙述了该APP答题及统计模块的开发流程及其中所使用的技术。

关键词:气象APP;APP答题系统研发;业务学习;Android;Java

中图分类号:TP311.5      文献标识码:A 文章编号:2096-4706(2019)20-0098-03

Abstract:County-level meteorological business learning APP is an APP developed by Laoshan District Meteorological Bureau of Qingdao City in Shandong Province. It is an APP developed with Android Studio and Java language. It has basic functions such as comprehensive testing,knowledge point testing,error review,video broadcasting,error reporting and other derivative functions. Compared with general ones,APP also has the function of answering questions locally. This paper describes in detail the development process of the APP answer and statistical module and the technology used in it.

Keywords:meteorological APP;research and development of APP answer system;business learning;Android;Java

0  引  言

由于气象局业务岗位工作的性质,基层业务岗的工作人员需要每周进行学习,经常进行知识更新并参加考试。因此,需开发一个更有效、更便捷的手机APP,来替代目前的宣讲式教学和纸质试卷考试。在手机上实现业务学习培训和考试,可以不必把每个业务人员都集中起来,达到无论何时何地都能实现全体业务人员学习的目标,业务岗位工作较为繁忙,需要一款软件,既能训练业务人员的水平,又能尽量地利用碎片化时间,还不至于大幅增加业务人员的心理负担。对于以上三个要求,手机APP无疑能更好地满足。其一,编写的软件不仅能训练业务人员的水平,还能监视他们学习进度和学习成果的变化;其二,由于APP自动拥有手机轻量化、便携化的特点,可利用用户任何的闲暇时间进行操作;其三,相比于一般的试卷考试,手机APP不会对用户造成过大的心理负担。因此研发一款用于气象知识学习培训的APP是十分有必要的。

目前国内气象业务方面尚无此类APP。已投入使用的类似学习APP均无分知识点答题、离线答题、全乱序题目等功能,因此在创新性上,本次开发的业务学习培训APP具有一定优势。

1  开发工具

本APP所采用的开发平台为Android Studio,该软件能对界面进行较为直观地布局,方便开发者对各功能模块进行拖动调整;同时能自动生成页面所对应的Activity和各项基础文件,免去了开发者重复生成文件的负担。在语言方面,本APP采用了时下最流行的Android平台编程语言Java,以方便查找资料和进行协助。

2  答题模块及具体设计

气象局考试的题目一般分为单选、多选、判断三类,没有其他类型的题目,这为制作APP提供了很大的方便。出于一般答题类APP的习惯,需要有一个界面引导用户分单元按规定的题量答题,同时显示用户的答题进度,这一方便一般用户的模块称为“专项练习”。同时有部分用户对训练量的要求和其他用户不同,或者希望不分单元测试,可以设计一个“综合练习”模块,提供题量选择来满足其要求。另外“错题回顾”这一部分也是必需的。

设计“专项练习”时考虑到对答题进度的需求,此处用ProgressBar通过相应的动态修改来进行处理。各单元的答题按钮采用的是后台Java组件在onCreate函数下的动态生成,而非采用在页面固定的形式,以方便服务器端的修改和更新。

设计“综合练习”及“错题回顾”模块则直接采用TableLayout这一表格式布局,用户使用Spinner下拉式选框和自定义文本选择所需的题目量和对应的单元并进行答题。综合練习页面需对用户的错题量做统计,防止用户选择的题目数大于错题量,从而达不到预期的效果。

常规业务岗有考试方面的要求,因此需要一个“单元测试”模块来进行考试。由于考试需要在规定的时间内完成,因此对于已经过期或者尚未达到规定时间的考试,需要一定的动态标识,比如在考试属性上做变色处理。对于已过期的考试,可以让用户答题以作复习之用,而对于未达到规定时间下限的考试,则需要在客户端直接阻止,完全不能让用户进入。一部分考试由于其区域限制,在过期之前还不能对其他地区的用户开放,这些都是在设计时需要考虑到的问题。

对于单元测试页面,需要显示如下信息:考试的名称、起止时间、范围、地区以及考试的状态,因此这里我们用TableLayout+可以下拉的ScrollLayout来作为页面的基本布局。通过显示未开始的考试和考试范围来方便用户开展复习,通过显示其他地区的过期考试来扩充用户题库,以减少跨区交流试卷的负担。因此,单元测试页面的设计结果如图1所示。

除各类答题的引导页面之外,还需设计相应的答题页面。

前台显示方面,由于气象局的选择题的备选项数目不定,而判断题只有两个备选项,因此在设计答题页面时需注意及时隐藏没有答案的备选项。同时考虑到一般用户做完题目后常有观看答案来判断对错的习惯,因此在最下方设计一个仅在交卷后显示的答案部分是很有必要的,为了让用户能更清楚地看到答案,错误的题目答案可做标红处理。

后台处理方面,为了适应需要,此处构造了一个包含题目、各选项及该选项是否需要被选择,以及答案文本的结构体Question,此处所有题目都储存在这个Question类的数组中,以方便我们对题目进行存取和排序。

首先,在生成试卷时对各类题目和选项进行乱序处理,以防止用户首先答完题发生抄袭现象,或者直接互相抄袭的现象发生。之后需要设计一个不在同一时间的计时模块,以让用户及时知晓自己的答题时间。以及通过一个refresh函数刷新用户当前所答的题目,当题目为最后一道时将“下一题”按钮改为交卷功能。相应的选项按钮需要通过检测目前的题目类型,如果为单选或者判断,需要在选择一个选项后及时清理其他选项,以方便用户。最后在用户交卷时,遍历所有题目,检查所有应选项是否选择,所有不应选择项是否未选,以此判断对错,并将答案部分的显示状态改为显示(ansbox.setVisibility(View.VISIBLE))。同时弹出alert弹出框,显示题目数、做对的题数以及消耗的时间,并上传本次成绩,之后进入题目回顾。效果如图2所示。

特别说明,对于考试类的答题,因考试时不得退出,需将返回按钮做无效化处理(setEnabled(false))。

3  统计模块及具体设计

统计模块和主界面一起放置于一个界面中,由navigation控制FrameLayout与主界面和本文未介绍的用户注册界面形成并列关系,其界面的设计涉及到每天的答题及错题回顾情况,以及每次考试的排名。

为防止用户操作繁琐,此处将每天的答题及错题回顾情况限制到10天以内,并按正确率在服务器端直接排序,以减轻用户手机端的负担。通过两个Spinner建立二级菜单来对所需要的排名及相关日期、考试进行选择,以此来触发服务器端的WebService返回结果。统计页面如图3所示。

服务器端采用WebService作为和手机客户端的通信,手机用Ksoap2库调用服务器端请求和上传数据,以达到相互通信的目的。WebService是一种基于SOAP协议的远程调用标准。通过WebService可以将不同操作系统平台、不同语言、不同技术整合到一起。在Android SDK中并没有提供调用WebService的库,因此,需要使用第三方类库(Ksoap2)来调用WebService。

调用平时答题及错题回顾结果时直接由服务器端进行回传,调用考试排名时,通过上传考试主键数字及所处地区,在服务器端搜索相关数据,并在排序后回传。

4  运行测试及小结

自2018年8月起,该APP在崂山区顺利投入运行并进行了至少6次考试,期间因安卓系统权限的调整做过两次较大的更新,目前该APP仍在继续运行中,相信会对崂山区今后的业务学习和工作起到不小的作用。

参考文献:

[1] 龙帅.快速WEB开发模式及其实现 [D].成都:电子科技大学,2009.

[2] 阳奇.基于Spring框架的RIA系统研究与实现 [D].广州:华南理工大学,2010.

[3] 张潇予.遂宁市中心医院病人跟踪治疗管理信息系统的设计与实现 [D].成都:电子科技大学,2011.

[4] 邬海杰.基于双C/S结构的计算机控制技术远程网络实验系统的设计与实现 [D].杭州:浙江大学,2003.

[5] 郭龙.智能手机信息安全及位置追踪系统的研究与实现 [D].昆明:昆明理工大学,2014.

[6] 潘小龙.IOS系统中不同多线程技术的研究和比较 [J].中国新通信,2014,16(24):21-22.

作者简介:朱俊翰(1991-),男,汉族,安徽芜湖人,预报员,工程师,工程硕士,研究方向:计算机技术开发;魏明明(1985-),男,汉族,甘肃庆阳人,预报员,助理工程师,本科,研究方向:大氣科学。