基于Android题库系统设计与实现..docx
《基于Android题库系统设计与实现..docx》由会员分享,可在线阅读,更多相关《基于Android题库系统设计与实现..docx(10页珍藏版)》请在冰豆网上搜索。
基于Android题库系统设计与实现
摘要:
借助Android平台,采用SQLite轻量级数据库,以TextView和ImageView实现图文并茂的方法设计了题库系统。
系统实现了对知识点分类复习,以及单元测试和综合测试。
详细介绍了系统设计与实现过程,以及实现的关键技术,为其它类别的考试题库系统提供了一个框架和可参考的模板。
关键词:
计算机等级考试;Android系统;移动学习
DOI:
10.11907/rjdk.172597
中图分类号:
TP319
文献标识码:
A文章编号:
1672-7800(2018)004-0101-03
Abstract:
Inordertofacilitatecollegestudentsreviewexaminationknowledgepointsandimprovethepassingrateofstudents’examinations,wedesignquestionbanksystembasedonAndroidplatform,SQLitelightweightdatabase,throughtherealizationofillustrationsinTextViewandImageView.Theclassificationofknowledgepointsunittestingandintegrationtestingarerealizedinthesystem.Thispaperanalyzesthesignificanceofthedesignsystemfromthecurrentsituationofstudentlearning.WiththehelpofAndroidplatform,weprovidestudentswithareviewsystemforComputerRankExaminationanditprovidesaframeworkandreferenceforotherexaminationquestionsbanksystemconstruction.
KeyWords:
nationalcomputerranexamination;androidsystem;mobilelearning
0引言
计算机等级考试是大学生的一项重大考试,考试过级率在一定程度上反映学生的计算机整体水平。
根据eMarketer的数据显示,2016年,全球智能手机用户已达21.6亿,10个智能手机用户中就有8人使用Android系统的智能手机,Android市场发展迅速,各种应用层出不穷[1],但针对计算机等级考试的却很少见。
本文借助Android平台,开发了一个可以随时随地复习的系统,借助互联网,学生可合理利用课余时间进行复习[2-3]。
1系统设计
1.1需求描述
本系统以MSOffice二级为例进行需求描述。
系统需根据不同的考点进行题型复习,让不同水平的学生都可以有的放矢地进行学习,并给出题目的详细解析,分类越细致,对学生的帮助就越大。
针对MSOffice二级的考试大?
V,将考试内容分为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指根据图片大小自动进行高度设置。
<ImageView
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实现,关键代码如下:
privatevoidshowList()
{
mylistItem=newArrayList>();
for(inti=0;i<stbh.length;i++)
{HashMapmap=newHashMap();
Stringtimuxinxi="题目信息:
"+ztnf[i]+"第"+ztth[i]+"题";
map.put("tmxx",timuxinxi);
Stringtimu="题目:
"+sttm[i];map.put("sttm",timu);
fj[i]=fj[i];map.put("fj",fj[i]);
Stringxuanxiang01=""+stxx01[i];map.put("stxx01",xuanxiang01);
Stringxuanxiang02=""+stxx02[i];map.put("stxx02",xuanxiang02);
Stringxuanxiang03=""+stxx03[i];map.put("stxx03",xuanxiang03);
Stringxuanxiang04=""+stxx04[i];map.put("stxx04",xuanxiang04);
Stringdaan="答案:
"+stda[i];map.put("stda",daan);
Stringjiexi="解析:
"+stjx[i];map.put("stjx",jiexi);
mylistItem.add(map);}}
整体图片的显示结果如图3所示。
3.2题目获取
系统有3大模块功能:
①试题集模块主要用于知识点的学习;②单元测试模块主要针对不同知识点进行复习;③综合测试模块是多个知识点的综合,便于学生对知识点自我测试。
综合测试通过从多个知识点中随机抽取出20道题进行测试,根据每个知识点所占比例,设置随机抽取的题目数量,并将获取到的题目放至相应数组中。
下面给出随机读取知识点题目函数:
privatevoidgetShitiji()
{intlen=20;stbh=newString[len];ztnf=newString[len];ztth=newString[len];
zsd=newString[len];sttm=newString[len];fj=newString[len];stxx01=newString[len];
stxx02=newString[len];stxx03=newString[len];stxx04=newString[len];
xxvalue=newint[len];stda=newString[len];stjx=newString[len];
StringsqlStr="SELECTSTBH,ZSD,STTM,FJ,STXX01,STXX02,STXX03,STXX04,STDA,
STJX"+"FROMMSDB"+"WHEREZSD='?
稻萁峁褂胨惴?
'ORDERBYRANDOM()limit4";
Cursorcursor=db.rawQuery(sqlStr,null);inti=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.
(责任编辑:
杜能钢)