涂小琴 高毅
摘 要:借助Android平臺(tái),采用SQLite輕量級數(shù)據(jù)庫,以TextView和ImageView實(shí)現(xiàn)圖文并茂的方法設(shè)計(jì)了題庫系統(tǒng)。系統(tǒng)實(shí)現(xiàn)了對知識(shí)點(diǎn)分類復(fù)習(xí),以及單元測試和綜合測試。詳細(xì)介紹了系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)過程,以及實(shí)現(xiàn)的關(guān)鍵技術(shù),為其它類別的考試題庫系統(tǒng)提供了一個(gè)框架和可參考的模板。
關(guān)鍵詞:計(jì)算機(jī)等級考試;Android系統(tǒng);移動(dòng)學(xué)習(xí)
DOI:10.11907/rjdk.172597
中圖分類號:TP319
文獻(xiàn)標(biāo)識(shí)碼: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 引言
計(jì)算機(jī)等級考試是大學(xué)生的一項(xiàng)重大考試,考試過級率在一定程度上反映學(xué)生的計(jì)算機(jī)整體水平。
根據(jù)eMarketer的數(shù)據(jù)顯示,2016年,全球智能手機(jī)用戶已達(dá)21.6億, 10個(gè)智能手機(jī)用戶中就有8人使用Android系統(tǒng)的智能手機(jī),Android市場發(fā)展迅速,各種應(yīng)用層出不窮[1],但針對計(jì)算機(jī)等級考試的卻很少見。
本文借助Android平臺(tái),開發(fā)了一個(gè)可以隨時(shí)隨地復(fù)習(xí)的系統(tǒng),借助互聯(lián)網(wǎng),學(xué)生可合理利用課余時(shí)間進(jìn)行復(fù)習(xí)[2-3]。
1 系統(tǒng)設(shè)計(jì)
1.1 需求描述
本系統(tǒng)以MS Office二級為例進(jìn)行需求描述。
系統(tǒng)需根據(jù)不同的考點(diǎn)進(jìn)行題型復(fù)習(xí),讓不同水平的學(xué)生都可以有的放矢地進(jìn)行學(xué)習(xí),并給出題目的詳細(xì)解析,分類越細(xì)致,對學(xué)生的幫助就越大。針對MS Office二級的考試大綱,將考試內(nèi)容分為11個(gè)考點(diǎn)。根據(jù)不同的考點(diǎn)進(jìn)行復(fù)習(xí),同時(shí)也可自我進(jìn)行綜合測試,提高過級率。
1.2 系統(tǒng)總體設(shè)計(jì)
圖1為系統(tǒng)組織結(jié)構(gòu)。由于計(jì)算機(jī)等級考試類別很多,所以每個(gè)類別考試都有一個(gè)移動(dòng)應(yīng)用端。
在手機(jī)應(yīng)用端,學(xué)生可通過選擇等級考試類別進(jìn)行復(fù)習(xí)。類別選擇后,系統(tǒng)將數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入客戶端,再次進(jìn)入時(shí)系統(tǒng)會(huì)默認(rèn)前一次的選擇。進(jìn)入后,可自由選擇使用“試題集”進(jìn)行復(fù)習(xí)或進(jìn)行“單元測試”以及“綜合測試”。在“單元測試”和“綜合測試”中,答完相應(yīng)的題才能查看答案。在“試題集”中,答完一道題就可以看到題目的詳細(xì)解析,滿足不同水平學(xué)生的要求。
2 數(shù)據(jù)庫設(shè)計(jì)
SQLite是輕量級嵌入式數(shù)據(jù)庫引擎,支持SQL語言,只利用很少的內(nèi)存就有很好的性能?,F(xiàn)在的主流移動(dòng)設(shè)備如Android、iPhone等都使用SQLite作為復(fù)雜數(shù)據(jù)的存儲(chǔ)引擎。為減輕移動(dòng)設(shè)備負(fù)擔(dān),也為了方便在沒有網(wǎng)絡(luò)的情況下使用,本系統(tǒng)采用SQLite數(shù)據(jù)庫存儲(chǔ)試題。試題內(nèi)置在客戶端中,安裝客戶端后不需要進(jìn)行任何聯(lián)網(wǎng)操作。試題E-R圖如圖2所示。
3 系統(tǒng)實(shí)現(xiàn)
3.1 圖文顯示實(shí)現(xiàn)
圖文混排方法有:①只用一個(gè)TextView實(shí)現(xiàn),然后根據(jù)圖片大小動(dòng)態(tài)決定圖片所在文字行的行高及字符數(shù)等。這個(gè)方案有一個(gè)很大的缺點(diǎn):如果在TextView中插入控件則需要留出較大的空間,因?yàn)槲淖诛@示效果是隨著圖片的大小不斷變化的;②使用WebView實(shí)現(xiàn),但需要數(shù)據(jù)適配器適配。作為一個(gè)小型項(xiàng)目,有點(diǎn)大材小用;③利用ListView,文本通過TextView實(shí)現(xiàn),圖片通過ImageView控件顯示,但每個(gè)TextView只能顯示一行文字;④對第③種方案進(jìn)行了改進(jìn),將文本用TextView顯示,將圖片用ImageView顯示,控制好TextView與ImageView出現(xiàn)的順序。
本系統(tǒng)采用第④種方案實(shí)現(xiàn)圖片和文字的顯示,既簡單又高效。將要顯示的圖片全部存放在drawable文件夾中,在下面的程序中,圖片寬度的參數(shù)match_parent與fill_parent意思相同,指將圖片填充整個(gè)屏幕。圖片高度wrap_content指根據(jù)圖片大小自動(dòng)進(jìn)行高度設(shè)置。
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"/>
讀取數(shù)據(jù)時(shí),通過函數(shù)ShowList(),HashMap實(shí)現(xiàn),關(guān)鍵代碼如下:
private void showList()
{
mylistItem=new ArrayList
for(int i=0;i {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); } } 整體圖片的顯示結(jié)果如圖3所示。 3.2 題目獲取 系統(tǒng)有3大模塊功能:①試題集模塊主要用于知識(shí)點(diǎn)的學(xué)習(xí);②單元測試模塊主要針對不同知識(shí)點(diǎn)進(jìn)行復(fù)習(xí);③綜合測試模塊是多個(gè)知識(shí)點(diǎn)的綜合,便于學(xué)生對知識(shí)點(diǎn)自我測試。綜合測試通過從多個(gè)知識(shí)點(diǎn)中隨機(jī)抽取出20道題進(jìn)行測試,根據(jù)每個(gè)知識(shí)點(diǎn)所占比例,設(shè)置隨機(jī)抽取的題目數(shù)量,并將獲取到的題目放至相應(yīng)數(shù)組中。下面給出隨機(jī)讀取知識(shí)點(diǎn)題目函數(shù): 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,F(xiàn)J,STXX01,STXX02,STXX03,STXX04,STDA, STJX" +" FROM MSDB" +" WHERE ZSD='數(shù)據(jù)結(jié)構(gòu)與算法' 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++;
//其它知識(shí)點(diǎn)程序與以上類似;
}}
3.3 選擇題布局實(shí)現(xiàn)
本系統(tǒng)是手機(jī)操作端,主要針對計(jì)算機(jī)等級考試中的選擇題,頁面設(shè)計(jì)及布局相當(dāng)重要,需要制作一個(gè)美觀又方便學(xué)生操作的界面。在APP中,幾乎每個(gè)界面就是一個(gè)Activity,都要做好相應(yīng)的布局,如按鈕、文本框、列表框、選項(xiàng)按鈕等都是基本控件,要調(diào)整好這些控件位置并設(shè)置好顏色及背景搭配。圖3為系統(tǒng)實(shí)現(xiàn)的界面效果。
4 結(jié)語
本文通過Android平臺(tái),設(shè)計(jì)并實(shí)現(xiàn)了計(jì)算機(jī)等級考試輔助系統(tǒng)。系統(tǒng)可以安裝在Android智能移動(dòng)客戶端,通過該系統(tǒng),學(xué)生可隨時(shí)隨地對計(jì)算機(jī)相關(guān)知識(shí)進(jìn)行復(fù)習(xí),以便備考,對提高計(jì)算機(jī)等級考試過級率有很大幫助,同時(shí),也可幫助學(xué)生更好地規(guī)劃自己的時(shí)間。
本文設(shè)計(jì)的系統(tǒng)具有移動(dòng)性、便捷性等特點(diǎn),系統(tǒng)還可延伸到計(jì)算機(jī)軟件水平資格考試中,以及其它學(xué)科,如會(huì)計(jì)類、英語類、秘書類考試等。只要數(shù)據(jù)庫中的數(shù)據(jù)不同,就可設(shè)置將該框架應(yīng)用到其它類別的考試中。
參考文獻(xiàn):
[1] 艾小芹.基于Android的英語學(xué)習(xí)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2016(17):73-76.
[2] 徐毅,田春燕.基于Android的移動(dòng)英語學(xué)習(xí)平臺(tái)的研究與實(shí)現(xiàn)[J].中國教育信息化,2014(4):89-91.
[3] 陳瑞芳.基于Android智能手機(jī)考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].科技創(chuàng)新導(dǎo)報(bào), 2014(34):50-51.
[4] 馬宏茹.基于Android平臺(tái)的中小學(xué)試題庫系統(tǒng)的建設(shè)[J].軟件工程師,2015(18):24-25.
[5] 李剛.瘋狂Android講義 [M].第3版.北京:電子工業(yè)出版社,2015.
[6] 左軍.Android程序設(shè)計(jì)經(jīng)典教程[M].北京:清華大學(xué)出版社,2015.
[7] 陳麗丹,梁明杰.課程試題庫APP應(yīng)用程序的設(shè)計(jì)[J].電氣電子教學(xué)學(xué)報(bào),2016(8):79-81.
[8] 程雯雯.基于Android平臺(tái)的網(wǎng)絡(luò)電視互動(dòng)界面整體設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京工業(yè)大學(xué),2015.
[9] 方家勝.大學(xué)生課堂使用手機(jī)問題調(diào)查與引導(dǎo)路徑——以南京某高校為例[J].北京城市學(xué)院學(xué)報(bào),2014(3):104-110.
(責(zé)任編輯:杜能鋼)