基于Android的在线考试系统的开发

时间:2022-10-02 11:21:21

基于Android的在线考试系统的开发

摘 要:该系统的开发主要用在android移动设备平台上。本文主要论述该系统的三大功能模块,登陆模块、主界面模块、开始考试模块的开发;阐述基本开发思路,同时给出解析试题、打乱试题的算法。学生通过在手机端下载该考试系统,可以随时随地进行知识的测评。该考试系统也可以供学习android开发的学生作为教学案例来使用。

关键词: 在线考试系统;android;模块

中图分类号:TP393 文献标识号:

Development of online examination system based on Android

Li Xiangyi

(Qiongtai Teachers College, Haikou 571127,China)

Abstract: The development of this system is running on the android mobile device platform.This paper describes the development of three main module that include login interface,main interface and start exam interface;describes the basic development ideas, and lists the algorithm of parse questions and upsets questions.The students can download the system to the mobile phone,can carry out the evaluation of knowledge anytime and anywhere.The system can be used as a teaching case that students learn in the class of android course.

Keywords:Online exam system;Android; Module

0引 言

在时下的学校教育中,考试作为一个重要的学习环节,一直发挥着对学生学习状况监控、指挥和评测的现实严格的执行手段作用。同时,随着移动及通讯技术不断提升的发展水平,智能手机在校园也进入了普及与流行。为了改进现有的考试模式,为学生营造一种新的考试环境,及时跟踪学生的学习情况,合理分析学生的学习效果,设计开发了基于android在线考试系统[1]。该考试系统方便、快捷、可以随时随地随手进行知识点的测试。与传统笔试相比,节省了人力和物力;与电脑上机考试相比,节省了时间,而空间也不再成为受限主因,在教室、宿舍、图书馆等地方都可以进行考试。本文即对这一课题进行探讨论述如下。

1在线考试系统环境搭建

考试系统研发前,首先要搭建android开发的环境。具体实现过程为:

(1)下载JDK(java开发环境包),配置环境变量;

新建JAVA_HOME;变量的值设为JDK的安装目录;在PATH中追加变量的值为;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;新建CLASSPATH;变量的值设为.%JAVA_HOME%lib;%JAVA_HOME5\lib\tools.jar。

(2)安装SDK(software development kit);

(3)在eclipse中安装ADT插件;

(4)eclipse和sdk进行关联;

(5)创建AVD视图。

综上所述,环境搭建完成,接下来将开展考试系统的具体开发研究。

2 在线考试系统的主要模块

在线考试系统的研究开发主要包括三大模块,分别是:考生登录模块、登录成功进入主界面模块、开始考试模块。其系统结构如图1所示。

图1系统结构图

Fig.1 System structure

3在线考试系统基本开发思路

首先在eclipse中新建一个android项目名称为elts,在src文件夹下新建com.tarena.elts包,在线考试系统项目中用到的图片素材全部拷贝到drawable目录中。并开启服务器hfs,把考生信息和考题信息文件夹加载进来。服务器启动后如图2所示。

图2 HFS 服务器

Fig.2 HFS server

分析该考试系统,主要有三大实体,考生实体、试题实体、考试信息实体。其后即需新建一个文件夹,文件夹名称为entity,用来存放三大实体,并建立相应的实体类User.java,Question.java,ExamInfo.java。

而且,三大模块的呈现还需建立三个布局文件,为此在drawable下的文件夹layout中新建登录界面Login.xml,Main.xml,Exam.xml三个xml文件。

同时,因为界面之间要进行跳转,所以需要调用activty,继续在activity文件夹中新建LoginActivity.java,MainActivity.java,ExamActivity.java三个文件。

此外,为了和服务器进行直接交互,就需要建立数据层dao文件夹,在dao包中新建IExamDao.java接口和实现该接口的ExamDao.java。在接口中定义查询用户信息的方法和装载题库的方法,以及加载考试信息的方法,并在Exam.java中来分别实现这些方法。

最后,和activity也要进行直接交互,此时就要建立serice业务层,在service中新建IExamService.java和ExamService.java,以及处理异常的类IdOrPwdException.java。

具体的交互流程如图3所示。

图3 交互流程图

Fig.3 Interactive chart

4在线考试系统关键算法设计

当考生登录成功后,进入开始考试模块中,开始考试界面如图4所示。

图4 开始考试界面

Fig.4 Start exam interface

在线考试系统中涉及到一些关键的算法,重点如从服务器下载试题后,如何解析文本文件中的试题,并在每次登录成功后加载试题时完成试题乱序处理。

4.1试题解析算法描述

public Question parseQuestion(BufferedReader reader, String line)算法描述如下:

public Question parseQuestion(BufferedReader reader, String line) throws IOException {

// 1)先定义javabean对象,用来封装Question的信息

Question q = new Question();

String[] data = line.split(",");

// 2)先完成标准答案

ArrayList answers = new ArrayList();// 定义存放多个答案的数组

String[] strsAns = data[0].split(":")[1].split("/");

for (int i = 0; i < strsAns.length; i++) {

answers.add(strsAns[i]);

}

q.setAnswers(answers);// 完成了标准答案

// 3)完成分数

q.setScore(Integer.parseInt(data[1].split(":")[1]));

// 4)完成难度级别

q.setLevel(Integer.parseInt(data[2].split(":")[1]));

// 第一行解析完,使用reader继续读下一行

// 5)完成题目的标题

q.setTitle(reader.readLine());

// 6)读取 A B C D 4个选项

String options = "";

for (int i = 0; i < 4; i++) {// 连续读取4行内容

// options=options+reader.readLine()+"\n";

options += reader.readLine() + "\n";

}

q.setOptions(options);

return q;

}

4.2试题乱序处理算法描述

public ExamInfo startExam()算法描述如下:

public ExamInfo startExam() {

Collections.shuffle(questions, new Random());

// 重新生成题干

for (int i = 0; i < questions.size(); i++) {

Question question = questions.get(i);

String title = question.getTitle();

int index = title.indexOf(".");// 找到.位置的下标

title = (i + 1) + title.substring(index);// 覆盖原来的title题干

question.setTitle(title);

}

// 返回考试信息

examInfo = examDao.findExamInfo(user.getId());

return examInfo;

}

4结束语

本系统的设计开发是为了实现学生进行方便快捷的在线测评。基于此,本文详细介绍了系统的开发需要搭建的环境,系统的基本架构、系统开发的基本思路。列举出了本系统开发中两个关键的算法,一个是解析文本文档中的试题,一个是登录成功后文本文档中试题的乱序处理,重新对试题进行编号。该系统是一个小型的在线考试系统,功能相对来说比较框架性,有待后期进行模块的拓展和功能的完善。

参考文献:

[1] 陈瑞芳.基于android智能手机考试系统的设计与实现[J].科技创新导报,2014(34):44.

[2] 刘世贵.基于android的在线学习系统的设计与实现[J].中国高新技术企业,2014(31):27-28.

[3] 杨子天,邵宇.基于Android平台的在线考试系统的设计与实现[J].电脑知识与技术,2014(03):554-558.

[4] 周秋月.基于Android的摩托车检测客户端设计与实现[J].计算机应用与软件,2013(30):115-117.

[5] 黄隽实.Android和PHP开发最佳实践[M].北京:机械工业出版社, 2013.

上一篇:面向死锁规避的路径敏感插装 下一篇:一种改进的局部堆碎片压缩机制