基于App Inventor2的网络成绩查询系统的设计与实现
2017-11-08吴谱
吴谱
摘 要:智能移动设备的普及引起了APP开发的热潮,对于中职、技工学校的学生来说,谷歌开发的App Inventor不需要有程序设计基础,不用编写代码,开发周期短,制作出成果容易,对于提高他们的自信心和成就感具有很好的作用。而作为信息技术教师只有自己很好地掌握了这门技术,才能与学生一起进步,通过开发网络成绩查询系统熟悉并掌握App Inventor的使用是一个不错的开端。
关键词:App Inventor 成绩查询系统 网络 设计与实现
中图分类号:TP319 文献标识码:A 文章编号:1672-3791(2017)09(b)-0008-04
随着高带宽的计算机网络,全面覆盖的无线网络的高速发展,移动智能设备的普及,移动互联网技术改变了人们学习、生活和工作的方式,人们的日常生活已经离不开各种手机应用。在手机应用市场上,拥有开源之称的安卓占有80%以上的市场份额,谷歌作为安卓的开发者,开发了一种手机App开发工具,即App Inventor(本文简称AI)。使用它开发移动应用时,开发者不必懂程序设计语言,也不用编写代码,采用搭积木的形式短时间内就可以编写一个移动应用,特别适合中职、技工学校的学生和其他初学者。设计好的App可以直接下载安装到智能手机中,学生可以向同伴和家长展示,对于重建学生学习的自信心和增强成就感具有重要意义。作为信息技术教师,只有自己首先掌握了这门技术,才能很好的跟学生一起进步成长,网络查询成绩系统从基本的界面设计开始开发,到网络微数据库等常用的控件都有涉及应用,对于学习者具有一定的借鉴意义。
1 系统设计
1.1 功能设计
传统的投递纸质成绩单形式,速度慢而且易丢失,而且有时候班主任为了方便是将整个班的成绩都邮寄给全班同学,不利于学生个人隐私的保护,所以为了方便快捷的使学生和家长查询到学生在学校的学习成绩和所获学分以及保护学生的隐私,使用App Inventor2.23离线中文版设计并开发了网络成绩查询系统,该系统具有以下功能。
(1)学生身份验证功能:采用姓名加出生日期验证,保护学生隐私。
(2)分学期查询数据:学生可以分学期查看自己的成绩等相关数据。
(3)教师身份验证:只有教师才能进入后台批量处理数据,保护数据安全。
(4)教师批量上传成绩数据等:教师可以通过准备好的csv文件批量上传学生成绩等数据。
(5)教师批量上传用户名密码:教师通过准备好的csv文件批量上传学生用户名和密码。
(6)教师设置学期和起止点:上传成绩后,教师可以设置学生可以查询成绩的学期以及数据在网络微数据库的起止位置,只有设置了之后学生才能查询到相应学期的学分。
1.2 窗体设计
系统设计两个窗体,初始窗体即学生用窗体,后台控制窗体即教师用窗体,两个窗体的界面分别如图1、图2所示。
学生用窗体用到的控件有:标签、按钮、下拉框、文本输入框、水平布局、对话框、网络数据库、计时器。
教师用窗体用到的控件有:标签、按钮、文本输入框、水平布局、垂直布局、表格布局、对话框、文件管理器、网络数据库。
1.3 工作流程
系统工作时分为两种状态,学生登录和教师登录状态。
教师登录状态:教师在如图1所示的界面输入教师密码,点击“教师登录”按钮,登录后进入到如图2所示界面,可以上传学生成绩等数据、用户名密码和设置学期信息,教师将上述三项数据上传成功后学生才能正常使用系统。
学生登录状态:学生在如图1所示的界面等待系统初始化完成后,在姓名下拉框中选择自己的姓名,然后输入八位出生日期为密码,点击“登录”按钮,密码验证成功后,隐藏姓名下列框和密码输入框,“登录”按钮改变为“退出重新登录”按钮,;如果密码验证不成功的,提示重新输入密码。学生成功登录后在“学期”下来列表框中选择需要查询的学期,等待系统从网络请求数据,如果数据存在则需要15s时间去获得数据,然后“显示结果”按钮可用,如果该学期数据不存在则“显示结果”按钮立即可用,点击“显示结果”按钮则会显示相应的结果,如果数据存在则显示查询到的结果,如果不存在则显示对应的提示信息。
2 系统关键功能的实现
系统实现功能比较多,由于篇幅的关系不能一一详述,这里只就几个比较主要的功能的实现进行描述。
2.1 数据结构与数据的上传
由于AI的网络微数据库只支持“标签—数据”的形式,所以需要将学生的成绩数据、用户名密码以列表的形式一条条的保存到数据库中。
由于涉及到多个学期的成绩存储与查询,为了便于处理,学生成绩等数据以顺序方式存入(顺序数字为标签,科目名,每个同学成绩列表为数据)网络微数据库中,学生登录状态下按照学期设定的行数(顺序标签)向网络微数据库请求数据,将数据导入本地临时列表中,通过姓名进行查询、显示查询到的数据。
为了关联学生成绩数据和用户名密码数据,学生成绩数据第一行为姓名,与用户名密码数据中第一列数据对应,读取网络数据到本地后,可通过姓名对学生数据进行查询、显示。
其具体数据结构如表1,表2所示。
上存学生成绩数据的相关代码块为图3、图4、图5所示,上传用户名密码的代码块与此类似。
2.2 网络延迟的处理
由于采用了网络数据库的形式,由于网络状态的影响,在请求数据以后,返回数据的次序可能与请求时的次序不太一样,会造成数据的混乱,所以采用计时器控件来延迟数据的获得,以达到保持数据次序的目的。由于学生姓名是查询时的关键字,必须处于本地列表中的第一行,所以在请求网络数据库时必须第一个返回数据,所以姓名的请求代码块放置在窗体的初始化模块中,其他成绩等数据的请求使用计时器来控制,设置计时器1的时间间隔为2s,计时器1控件的代码如图6所示。
2.3 查询功能的实现
查询功能采用定义过程的形式实现,用姓名为关键字,返回结果为第一列(课程名称)和相应姓名列(课程对应成绩数值),其功能代码块为如下图7所示。
4 系统运行时的注意事项
AI支持处理以逗号分隔的csv文件,所以在准备学生的成绩数据文件时,需将处理好的Excel文件另存为csv类型的文件,而且需要在记事本中将此类csv文件以UTF-8编码的形式保存,这样才能保证AI在存读数据的时候不出现乱码。
处理好的数据文件应复制到手机内存的App Inventor文件夹中(可自定义存放目录),如需要更改部分数据,需要重复以上的操作,然后教师在后台控制面板中重新导入一次学生成绩数据,学生查询到的数据才能更新,才能保证系统的正常运行。
5 系统展望
该系统实现了学生成绩查询功能,系统的设计还不是十分完善,比如系统设计学生密码验证采用了8位出生日期,为了更好地保护学生的隐私,可以增加更改密码功能,学生可以将初始的密码改成自己自定义的密码。当然还有可以完善的地方,有待日后研究完善、扩充功能。
6 结语
使用App Inventor设计和编写App对于高中阶段的学生来说非常合适,它不需要具有高深的编程基础,也不用写代码,容易制作出成果,对于学生提高自信心和成就感具有相当高的作用,信息技术教师只有掌握了AI的技术,才能开设App Inventor课程,才能很好的辅导学生,助力学生的成长和发展。
参考文獻
[1] 刘载兴,陈宏镜.Android积木式编程开发:App Inventor2.23离线中文版[M].北京:高等教育出版社,2015.
[2] 黄仁祥,金崎,易伟.人人都能开发安卓APP:App Inventor2应用开发实战[M].北京:机械工业出版社,2014.
[3] 王向辉,张国印,沈洁.可视化开发Android应用程序:拼图开发模式App Inventor2[M].北京:清华大学出版社,2015.endprint