基于Android的题库系统设计与实现

2018-05-15 08:31涂小琴高毅
软件导刊 2018年4期
关键词:Android系统移动学习

涂小琴 高毅

摘 要:借助Android平台,采用SQLite轻量级数据库,以TextView和ImageView实现图文并茂的方法设计了题库系统。系统实现了对知识点分类复习,以及单元测试和综合测试。详细介绍了系统设计与实现过程,以及实现的关键技术,为其它类别的考试题库系统提供了一个框架和可参考的模板。

关键词:计算机等级考试;Android系统;移动学习

DOI:10.11907/rjdk.172597

中图分类号:TP319

文献标识码:A 文章编号:1672-7800(2018)004-0101-03

Abstract:In order to facilitate college students review examination knowledge points and improve the passing rate of students examinations, we design question bank system based on Android platform, SQLite lightweight database,through the realization of illustrations in TextView and ImageView. The classification of knowledge points unit testing and integration testing are realized in the system. This paper analyzes the significance of the design system from the current situation of student learning. With the help of Android platform, we provide students with a review system for Computer Rank Examination and it provides a framework and reference for other examination questions bank system construction.

Key Words:national computer ran examination; android system; mobile learning

0 引言

计算机等级考试是大学生的一项重大考试,考试过级率在一定程度上反映学生的计算机整体水平。

根据eMarketer的数据显示,2016年,全球智能手机用户已达21.6亿, 10个智能手机用户中就有8人使用Android系统的智能手机,Android市场发展迅速,各种应用层出不穷[1],但针对计算机等级考试的却很少见。

本文借助Android平台,开发了一个可以随时随地复习的系统,借助互联网,学生可合理利用课余时间进行复习[2-3]。

1 系统设计

1.1 需求描述

本系统以MS Office二级为例进行需求描述。

系统需根据不同的考点进行题型复习,让不同水平的学生都可以有的放矢地进行学习,并给出题目的详细解析,分类越细致,对学生的帮助就越大。针对MS Office二级的考试大綱,将考试内容分为11个考点。根据不同的考点进行复习,同时也可自我进行综合测试,提高过级率。

1.2 系统总体设计

图1为系统组织结构。由于计算机等级考试类别很多,所以每个类别考试都有一个移动应用端。

在手机应用端,学生可通过选择等级考试类别进行复习。类别选择后,系统将数据库中的数据导入客户端,再次进入时系统会默认前一次的选择。进入后,可自由选择使用“试题集”进行复习或进行“单元测试”以及“综合测试”。在“单元测试”和“综合测试”中,答完相应的题才能查看答案。在“试题集”中,答完一道题就可以看到题目的详细解析,满足不同水平学生的要求。

2 数据库设计

SQLite是轻量级嵌入式数据库引擎,支持SQL语言,只利用很少的内存就有很好的性能。现在的主流移动设备如Android、iPhone等都使用SQLite作为复杂数据的存储引擎。为减轻移动设备负担,也为了方便在没有网络的情况下使用,本系统采用SQLite数据库存储试题。试题内置在客户端中,安装客户端后不需要进行任何联网操作。试题E-R图如图2所示。

3 系统实现

3.1 图文显示实现

图文混排方法有:①只用一个TextView实现,然后根据图片大小动态决定图片所在文字行的行高及字符数等。这个方案有一个很大的缺点:如果在TextView中插入控件则需要留出较大的空间,因为文字显示效果是随着图片的大小不断变化的;②使用WebView实现,但需要数据适配器适配。作为一个小型项目,有点大材小用;③利用ListView,文本通过TextView实现,图片通过ImageView控件显示,但每个TextView只能显示一行文字;④对第③种方案进行了改进,将文本用TextView显示,将图片用ImageView显示,控制好TextView与ImageView出现的顺序。

本系统采用第④种方案实现图片和文字的显示,既简单又高效。将要显示的图片全部存放在drawable文件夹中,在下面的程序中,图片宽度的参数match_parent与fill_parent意思相同,指将图片填充整个屏幕。图片高度wrap_content指根据图片大小自动进行高度设置。

android:id="@+id/fujian"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:scaleType="fitCenter"

android:adjustViewBounds="true"

android:contentDescription="@string/fujian"/>

读取数据时,通过函数ShowList(),HashMap实现,关键代码如下:

private void showList()

{

mylistItem=new ArrayList>();

for(int i=0;i

{HashMap map=new HashMap ();

String timuxinxi="题目信息:"+ztnf[i]+"第"+ztth[i]+"题";

map.put("tmxx", timuxinxi);

String timu="题目:"+sttm[i]; map.put("sttm", timu);

fj[i]=fj[i]; map.put("fj", fj[i]);

String xuanxiang01=""+stxx01[i];map.put("stxx01", xuanxiang01);

String xuanxiang02=""+stxx02[i];map.put("stxx02", xuanxiang02);

String xuanxiang03=""+stxx03[i];map.put("stxx03", xuanxiang03);

String xuanxiang04=""+stxx04[i];map.put("stxx04", xuanxiang04);

String daan="答案:"+stda[i]; map.put("stda", daan);

String jiexi="解析:"+stjx[i];map.put("stjx", jiexi);

mylistItem.add(map); } }

整体图片的显示结果如图3所示。

3.2 题目获取

系统有3大模块功能:①试题集模块主要用于知识点的学习;②单元测试模块主要针对不同知识点进行复习;③综合测试模块是多个知识点的综合,便于学生对知识点自我测试。综合测试通过从多个知识点中随机抽取出20道题进行测试,根据每个知识点所占比例,设置随机抽取的题目数量,并将获取到的题目放至相应数组中。下面给出随机读取知识点题目函数:

private void getShitiji()

{int len=20; stbh=new String[len]; ztnf=new String[len]; ztth=new String[len];

zsd=new String[len]; sttm=new String[len]; fj=new String[len]; stxx01=new String[len];

stxx02=new String[len]; stxx03=new String[len]; stxx04=new String[len];

xxvalue=new int[len]; stda=new String[len]; stjx=new String[len];

String sqlStr="SELECT STBH,ZSD,STTM,FJ,STXX01,STXX02,STXX03,STXX04,STDA,

STJX" +" FROM MSDB" +" WHERE ZSD='數据结构与算法' ORDER BY RANDOM() limit 4";

Cursor cursor=db.rawQuery(sqlStr,null); int i=0;

while(cursor.moveToNext())

{

stbh[i]=cursor.getString(cursor.getColumnIndex("STBH"));

zsd[i]=cursor.getString(cursor.getColumnIndex("ZSD"));

sttm[i]=cursor.getString(cursor.getColumnIndex("STTM"));

fj[i]=cursor.getString(cursor.getColumnIndex("FJ"));

stxx01[i]=cursor.getString(cursor.getColumnIndex("STXX01"));

stxx02[i]=cursor.getString(cursor.getColumnIndex("STXX02"));

stxx03[i]=cursor.getString(cursor.getColumnIndex("STXX03"));

stxx04[i]=cursor.getString(cursor.getColumnIndex("STXX04"));

xxvalue[i]=0;

stda[i]=cursor.getString(cursor.getColumnIndex("STDA"));

stjx[i]=cursor.getString(cursor.getColumnIndex("STJX"));

i++;

//其它知识点程序与以上类似;

}}

3.3 选择题布局实现

本系统是手机操作端,主要针对计算机等级考试中的选择题,页面设计及布局相当重要,需要制作一个美观又方便学生操作的界面。在APP中,几乎每个界面就是一个Activity,都要做好相应的布局,如按钮、文本框、列表框、选项按钮等都是基本控件,要调整好这些控件位置并设置好颜色及背景搭配。图3为系统实现的界面效果。

4 结语

本文通过Android平台,设计并实现了计算机等级考试辅助系统。系统可以安装在Android智能移动客户端,通过该系统,学生可随时随地对计算机相关知识进行复习,以便备考,对提高计算机等级考试过级率有很大帮助,同时,也可帮助学生更好地规划自己的时间。

本文设计的系统具有移动性、便捷性等特点,系统还可延伸到计算机软件水平资格考试中,以及其它学科,如会计类、英语类、秘书类考试等。只要数据库中的数据不同,就可设置将该框架应用到其它类别的考试中。

参考文献:

[1] 艾小芹.基于Android的英语学习系统设计与实现[J].电子设计工程,2016(17):73-76.

[2] 徐毅,田春燕.基于Android的移动英语学习平台的研究与实现[J].中国教育信息化,2014(4):89-91.

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

[4] 马宏茹.基于Android平台的中小学试题库系统的建设[J].软件工程师,2015(18):24-25.

[5] 李刚.疯狂Android讲义 [M].第3版.北京:电子工业出版社,2015.

[6] 左军.Android程序设计经典教程[M].北京:清华大学出版社,2015.

[7] 陈丽丹,梁明杰.课程试题库APP应用程序的设计[J].电气电子教学学报,2016(8):79-81.

[8] 程雯雯.基于Android平台的网络电视互动界面整体设计与实现[D].北京:北京工业大学,2015.

[9] 方家胜.大学生课堂使用手机问题调查与引导路径——以南京某高校為例[J].北京城市学院学报,2014(3):104-110.

(责任编辑:杜能钢)

猜你喜欢
Android系统移动学习
Android系统上的移动互联网集成平台开发机制
智能手机APP支持下的大学英语听力教学