APP下载

基于Android的移动学习评价系统的设计与实现

2016-02-23倪红军张学成

计算机技术与发展 2016年8期
关键词:单选题服务器端客户端

倪红军,张学成

(南京师范大学泰州学院,江苏 泰州 225300)

基于Android的移动学习评价系统的设计与实现

倪红军,张学成

(南京师范大学泰州学院,江苏 泰州 225300)

针对目前移动学习平台中对学习效果评价练习的欠缺,文中提出一种基于Android的移动学习评价系统。它不仅可以帮助学生随时随地检查课程知识的掌握程度,而且老师也可以根据授课内容随时更新题库和试题分析。文中介绍了系统开发中涉及的关键技术,探讨了系统的架构、功能模块和数据库设计方案。利用.Net平台下的Web Service技术实现了服务器端数据的导入功能,利用第三方类库KSOAP实现了客户端与服务器的数据交互,利用组件的隐藏和显现实现了试题解析的展现。同时对界面进行了卡片式的设计,增强了用户体验。

移动学习;评价系统;Web Service;KSOAP

0 引 言

随着移动互联技术的发展,新型的多元化学习方式应运而生,移动学习将人们分散的、不连续的、碎片状的时间有效整合起来,以满足人们的需要。移动学习平台除了让学习者学习其中的内容外,对学习效果的评价也是必不可少的一个环节。传统的评价方式大多以做纸质练习题为主,而这种评价方式可能由于携带纸质练习题的不方便性导致学习者不能充分利用碎片化的时间完成练习;也可能让学习者完成练习后需要人工检查错误而浪费时间;甚至需要印制大量的纸质练习册而导致物力、财力的浪费。

针对以上缺点,文中在当下流行的Android平台环境下,结合Web Service技术设计一款移动学习评价系统。该系统以大学开设的《计算机应用基础》课程练习为例,包含客户端和服务器两个部分,教师可以通过后台向Web Service服务器导入练习题库和标准答案,学生可以通过Android客户端下载题库和标准答案进行练习和评分解析。

1 关键技术介绍

1.1 Android

Android是Google开发的一种以Linux为基础的开放源代码的操作系统,主要使用于便携设备,现已从手机逐渐扩展到了平板电脑及其他领域。它包括一个操作系统、中间件和一些关键性的平台应用[1-2]。由于它是开源系统,它包括操作系统、用户界面和应用程序的应用代码都是免费的,可以更加方便程序员自由的使用,节约开发成本。目前发布的Android SDK提供了使用Java语言开发Android平台应用程序的必要工具和API。

1.2 Web Service

Web Service是一种面向服务架构(Service Oriented Architecture,SOA)的技术,它能够以一种平台无关的方式在不同的系统之间进行交互。服务提供方定义由Web Service描述语言(Web Service Description Language,WSDL)描述的接口,并使用简单对象访问协议(Simple Object Access Protocol,SOAP)消息与服务使用方进行消息交互。这些消息通过标准的Web协议(如HTTP、FTP或者SMTP)进行传输[3-6]。

2 系统设计

2.1 系统框架设计

该系统采用B/S(浏览器/服务器)和C/S(客户端/服务器)相结合的模式。服务器端利用Asp.Net技术为教师向Web Service服务器写入数据提供Web访问平台,利用Web Service技术为客户端提供远程数据库访问功能;客户端为Android平台智能终端,学生利用其无线上网功能通过Internet访问服务器端的Web Service接口来获取相关数据。系统结构如图1所示。

图1 系统框架

2.2 系统功能设计

按照用户使用的方便性和对系统需求的分析,移动学习评价系统主要包含服务器端功能模块和客户端功能模块,如图2所示。

2.2.1 服务器端功能模块

(1)后台管理模块:导入题库与答案解析信息,包括单选题、多选题、填空题和判断题;添加、修改和删除学生信息;查看学生练习成绩。

(2)服务接口模块:学生登录服务接口、单选题服务接口、多选题服务接口、填空题服务接口和判断题服务接口。

图2 系统功能结构图

2.2.2 客户端功能模块

(1)用户登录模块:判断客户端用户的合法性。如果输入的用户验证信息正确,就可以通过Web Service服务器提供的服务接口下载题库和答案解析;下载成功后,下一次运行客户端应用程序时忽略此模块。

(2)练习评价模块:显示当前可以进行练习的试卷总套数,用户选择试卷后进行练习,练习完成后,可以进行评分和查看试题解析。

2.3 数据库设计

根据移动学习评价系统中涉及的试题类型、试题数量和试题内容,其数据量相对较少,所以文中系统服务器端(Web Service服务器)选用了Microsoft的桌面型关系数据库Access[7],客户端(Android移动智能终端)选用了内存占用少、效率高的支持SQL语言的轻量级嵌入式数据库SQLite[8-9]。结合功能需求和软件性能,整个系统设计了用户信息表、单选题表、多选题表、填空题表和判断题表。用户信息表结构如表1所示;填空题表结构与判断题表结构类似,如表2所示;单选题表结构与多选题表结构类似,如表3所示。

表1 用户信息表结构

表2 填空题和判断题表结构

表3 单选题和多选题表结构

3 系统功能实现

3.1 服务器端数据库数据导入的实现

教师在整理练习题目时,往往习惯使用功能强大、界面友好的Excel电子表格的形式存储数据。虽然可以直接将Excel电子表格的数据导入Access数据库,但这种方法需要用户导入后,还需要把数据库文件上传至Web Service服务器。该方式不管在操作的方便性还是在数据的安全性方面都是不可取的。所以系统首先使用FileUpload控件将Excel电子表格文件上传到服务器的指定位置,然后通过查询表的方式把指定工作表中的数据读出放入DataSet,最后通过DataRow以行为单位读出数据并使用SQL语句把数据插入到对应Access表中,主要实现代码如下:

string name=FileUpload3.FileName;//获取所要上传的文件名称

FileUpload3.SaveAs(Server.MapPath("App_Data")+"\"+name); //保存上传的文件

OleDbConnection connE=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=……+"+name+";Extended Properties=Excel 8.0;");

connE.Open();//打开Excel文件

string strExcel=string.Format("select * from [{0}$]","Sheet1");

OleDbDataAdapter myCommand=new OleDbDataAdapter(strExcel, strEConn); //根据查询工作表的方式读出Sheet1工作表

DataSet ds=new DataSet();

myCommand.Fill(ds,"tempDb");//将Sheet1工作表中的数据放入dataSet

OleDbConnection connA=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=……"graduationProjectt.mdb") + ";"strAConn);

connA.Open();//打开Access数据库

string xm=dr[i]["userName"].ToString();

……

string insertStr="insert into userInfo(username, ……) values('" +xm+"','"+……"')";

try{

for (int i=0;i

DataRow[] dr=ds.Tables[0].Select();

OleDbCommand cmd=new OleDbCommand(insertStr, connA);

cmd.ExecuteNonQuery();

}

……

}

3.2 服务器端服务接口的实现

在ASP.NET中创建Web Service和写一个类文件是很相似的。Web Service是一个以.asmx为扩展名的文本文件,但其中必须包含一条@WebService指令,用作声明。每个Web Service需要唯一的命名空间,它可使客户端应用程序区分出可能使用相同方法名称的Web Service。Visual Studio.NET中创建的Web Service的默认命名空间(Namespace)是“http://tempuri.org/”[10-12]。为了让Android客户端获得数据后对数据处理更方便,服务接口调用后返回的数据通过自定义JsonUtil类中DataTableJson()方法将DataSet格式的数据转换为了Json格式。单选题的Web服务接口具体实现代码如下:

[WebService(Namespace="http://tempuri.org/")]

[WebMethod(Description="获得所有的单选题Json数据")]

public StringGetJsonSelection(string paperNo, string questionType){

stringjson;

……//打开Access数据库

String mysql="select * from singleOption where paperNo="+paperNo+"and questionType="+questionType;

OleDbDataAdapter myadapter=new OleDbDataAdapter(mysql, myconn);

DataSet DS=new DataSet();

myadapter.Fill(DS);

if(DS.Tables.Count>0 && DS.Tables[0].Rows.Count>0) {

JsonUtil jsonutil=new JsonUtil();

json=jsonutil.DataTableJson(DS.Tables[0]);

}……

returnjson;

}

3.3 客户端与服务器端数据交互的实现

在Android SDK中并没有提供调用Web Service的类库,因此需要使用第三方类库KSOAP来实现。KSOAP提供了基于Android版本的jar包,进行客户端应用开发时把下载好的KSOAP包(ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar)复制到Android项目的libs目录下,然后使用如下实现代码即可调用Web Service服务接口获取数据,获取数据后可以写入客户端的本地SQLite数据库,以便客户端用户可以离线进行学习评价练习[13-14]。

public String getjsonselection(String paperNo,String questionType) {

String result=null;

String NAME_SPACE="http://tempuri.org/";

//命名空间

String METHOD_NAME ="GetJsonSelection";//Web Service提供的调用接口名称

String URL="http://ie.nnutc.edu.cn/web/ProjectService.asmx";//Web Service发布的地址

String SOAP_ACTION=NAME_SPACE+METHOD_NAME;

SoapObject request=new SoapObject(NAME_SPACE,METHOD_NAME);

request.addProperty("paperNo",paperNo);//试卷编号

request.addProperty("questionType",questionType);//试题类型

SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapSerializationEnvelope.VER11);//设置SOAP的版本

envelope.dotNet=true;//设置是.net开发的Web Service

envelope.bodyOut=request;

try {

HttpTransportSE hts=new HttpTransportSE(URL,2000);

hts.call(SOAP_ACTION,envelope);

Object obj=envelope.getResponse();

result=obj.toString();

}

……

return result;

}

3.4 评价练习模块的实现

评价练习模块主要是为了学生能够随时随地利用碎片化的时间打开软件进行练习。该模块由单选题、多选题、填空题和判断题四个题型组成。学生完成练习后,系统会自动给予评分,也能给出每道题的答案解析,以便让学生根据评价内容了解自己的学习效果。

3.4.1 用户界面的设计

用户界面是软件与用户交互的最直接的层,界面设计的好坏对用户操作软件的方便性有很大影响。而练习模块中的题型较多,如果让用户在多个Activity之间切换不太方便,所以系统将FrameLayout、TabHost和TabWidget相结合进行布局设计。在一个Activity中使用TabHost实现卡片效果,使用setIndicator(String info, Drawable icon)方法显示每个卡片上的显示内容和图标,使用setContent(int viewId)方法切换到不同的页面。

用户界面如图3所示。

图3 评价练习界面

3.4.2 题目解析功能的实现

在设计评价练习界面时,使用LinearLayout布局将显示答案和题目解析的TextView垂直排列,并将该布局的android:visibility属性值设置为"invisible"。即刚开始运行软件进行练习时,该布局是不可见的(隐藏答案和试题解析),当练习测试完毕单击交卷命令按钮后,通过setVisibility(int visibility)方法把答案和试题解析显示出来,其效果如图4所示。

图4 评价练习解析

4 结束语

文中通过对服务器端Web Service开发技术和An-droid客户端网络访问技术的研究,设计了一个基于Android平台的移动学习评价系统,并对服务器端和客户端的功能进行了编码实现。在系统设计和实现过程中,对系统的整体框架和功能进行了详细的说明,采用模块化的设计方法,使系统具有良好的可扩展性,实现了客户端和服务器间的数据交互。最后通过真机环境运行,结果表明该系统具有良好的人机交互界面,老师可以通过PC端方便地上传练习题库,学生可以随时登录系统下载练习题并完成自己的学习效果评价,达到了系统开发的要求。

[1] 韩 超,梁 泉.Android系统原理及开发要点详解[M].北京:电子工业出版社,2010:18-20.

[2] 姚昱旻,刘卫国.Android的架构与应用开发研究[J].计算机系统应用,2008(11):110-112.

[3] 倪红军,周巧扣.Android开发工程师案例教程[M].北京:北京大学出版社,2014:266-277.

[4]MITRAN.SOAPversion1.2part0:primer[EB/OL].[2007-04-27].http://www.w3c.org/TR/soap12-part0.

[5]SchlingloffH.Modelingandmodelcheckingwebservices[J].ElectronicNotesinTheoreticalComputerScience,2005,126(8):3-26.

[6]SeelyS.SOAP,crossplatformwebservicedevelopmentusingXML[M].UpperSaddleRiver,NJ:PrenticeHallPRT,2002.

[7] 郑小慎,盛莉莉.基于Web的海洋观测仪器管理系统设计与实现[J].实验技术与管理,2015,32(4):152-155.

[8]ZhuFujun,TurnerM,KotsiopoulosI,etal.Dynamicdataintegrationusingwebservices[C]//ProceedingsoftheIEEEinternationalconferenceonwebservices.[s.l.]:IEEE,2004:262-269.

[9] 崔再惠.Access数据库与SQLServer数据库主要功能的比较[J].鞍山师范学院学报,2009,11(6):51-52.

[10] 彭海文.AndroidWebServices应用研究[J].电脑知识与技术,2011,7(12):2851-2852.

[11] 黄锦川,金炜东.基于Android平台Web服务的应用研究[J].铁路计算机应用,2010,19(11):24-27.

[12] 郑世良,朱云仙,蒋文蓉,等.基于WebServices的高校科研管理平台的集成设计[J].实验技术与管理,2008,25(2):104-106.

[13] 闵现畅,黄理灿.基于Android平台的Web服务技术研究[J].工业控制计算机,2011,24(4):92-94.

[14] 范宝锋,方 勇,汤云革,等.基于SOAP的Web服务互操作性问题分析[J].成都信息工程学院学报,2005,20(2):142-146.

Design and Implementation of an Evaluation System of Mobile Learning Based on Android

NI Hong-jun,ZHANG Xue-cheng

(Taizhou College of Nanjing Normal University,Taizhou 225300,China)

Focused on the lack of the evaluation of study effect in the mobile learning platform,an evaluation system of mobile learning based on Android is put forward,which not only helps students check the degree of knowledge course anytime and anywhere,but also makes teachers updating the questions and paper analysis according to the teaching contents anytime.The key technologies in system development is introduced in this paper,the architecture,function module and database design for the system is discussed.The function of importing data to server is achieved on the basis of Web Service for .NET,the interaction of data between the client and server is completed by components of the third party library KSOAP,and the show of the paper analysis is finished through hiding and show of component.At the same time,the card-style UI has been designed to enhance the user experience.

mobile learing;evaluation system;Web Service;KSOAP

2015-11-11

2016-03-09

时间:2016-06-22

江苏省高等学校大学生创新创业训练计划2014年立项项目(201413843007Y);教育部—Google2014年校企合作产学合作项目(PO640068)

倪红军(1975-),男,硕士,副教授,研究方向为管理信息系统、Android应用开发;张学成(1994-),男,研究方向为Android的应用开发。

http://www.cnki.net/kcms/detail/61.1450.TP.20160622.0845.058.html

TN929.53

A

1673-629X(2016)08-0109-04

10.3969/j.issn.1673-629X.2016.08.023

猜你喜欢

单选题服务器端客户端
你的手机安装了多少个客户端
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
Linux环境下基于Socket的数据传输软件设计
2017年高考数学模拟试题(二)
2017年高考数学模拟试题(一)
“机械能守恒定律”单元测试(一)
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用