涂小琴 高毅
摘 要:借助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 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.
(責任編輯:杜能鋼)