李艷杰
(山東華宇工學院,山東 德州 253034)
JAVA語言是近五年來位居編程排行前3位的語言,應用非常廣泛,無論是網站設計還是系統(tǒng)開發(fā)都與Java有關。MySQL數(shù)據(jù)庫作為開源數(shù)據(jù)庫,其小而精,有免費和收費的區(qū)分,是中小型企業(yè)開發(fā)系統(tǒng)后臺的首選數(shù)據(jù)庫。但是針對移動端系統(tǒng),數(shù)據(jù)庫的選擇要盡量使用平臺自帶內置數(shù)據(jù)庫SQLite,以方便編輯和后臺連接。本系統(tǒng)的設計結合軟件工程思想,采用面向對象程序設計方式來實現(xiàn)。
本系統(tǒng)分為前臺和后臺,后臺利用數(shù)據(jù)庫保存數(shù)據(jù),題目類型以單選題和多項題為主。后臺數(shù)據(jù)庫可以根據(jù)需要設置存儲題庫的數(shù)目,題庫練習主要以客觀題為主,這樣系統(tǒng)可以準確判定對錯。
單項選擇、多項選擇和判斷采用不同的答題界面,系統(tǒng)會自動根據(jù)試題類型給出當前試題對應的答題界面,每一屏顯示一道試題,界面中有“上一題”和“下一題”的答題按鈕,練習者可以單擊按鈕切換答題,也可以前后翻動瀏覽練習題并作答,練習完成一道題,單擊“確定”按鈕,可得到正確答案,單擊“重新答題”按鈕可重新進行答題,也可以單擊“糾錯”按鈕進行糾錯。有的題目內容較多,需要上下滑動進行練習,如圖1所示。
圖1 單選題界面Fig.1 Interface of single choice
系統(tǒng)設計包括對數(shù)據(jù)庫中表的存儲設計、應用界面的設計和應用功能的實現(xiàn)三部分。
經過概念結構設計、邏輯結構設計和物理結構設計,最終得到數(shù)據(jù)庫中的表。物理結構如表1所示。
表1 物理結構Tab.1 Physical structure
該系統(tǒng)練習界面運用嵌套不均設計,嵌套了多個面板,練習題內容、編號、解答控件均在頁面中顯示。練習題庫中的題目是將單選和多選存儲在一起,界面中沒有安排題型切換按鈕,每套題中練習的順序是按照先單選后多選進行的,但是會有提示和控件類型的轉換,單選按鈕會變成復選框。
面向對象設計實現(xiàn)需要根據(jù)實際要求設計多個類,類與類之間可以體現(xiàn)繼承或多態(tài)。本系統(tǒng)設計的類如下。
2.3.1 練習題信息類 E_infor
public class E_infor{
int e_id; //練習題編號
String e_content; //練習題內容
String e_typy; //練習題類型
String e_answer; //練習題答案
}
2.3.2 界面類E_frame
界面類的設計包括事件驅動的界面設計和數(shù)據(jù)的訪問處理,這樣可以提高訪問效率,練習題內容、答案、題型會在此數(shù)據(jù)庫讀取,并封裝到E_infor類創(chuàng)建的對象中,保存在一個存放引用類型的數(shù)組列表E_list中,系統(tǒng)中設置與練習題有關的成員變量,以練習題編號作為索引,連接到數(shù)組列表,得到當前相關聯(lián)的信息,三個變量定義如下:
ArrayList
Int e_sum:存放練習題數(shù)量;
Int e_id:存放練習題編號。
除此之外,在此類中還將控件作為成員變量,定義數(shù)組分別存放4個單選項和4個復選項,用數(shù)組可以循環(huán)實現(xiàn)訪問。除了成員變量,以下是主要的構造方法和成員方法的設計。
構造方法E_frame():數(shù)據(jù)的初始化處理、界面的布局顯示、注冊事件監(jiān)聽等均在此構造方法中實現(xiàn)。
成員方法xianshi():為了方便用戶隨時翻動題目,查看完成解答的題目及修改答案,解答控件的顯示處理在該方法中實現(xiàn),用戶已有解答題項也會進行正確設置。
成員方法access_e():訪問數(shù)據(jù)庫,將所有的練習題信息存入到E_list數(shù)組中。部分代碼如下:
public void access_e(){
int stbn=0;
String url="jdbc:odbc:mydata";
String sql="select * from exispaper";
try{class forName("sun.jdbc.odbc.jdbxOdbcDriver");
Connection con=DriverManager.getConnection(url, "", null);
ResultSet rs=stmt.executQuery(sql);
while(rs.next())
E_infor m=new E_infor();
m.content=rs.getString("content");
m.e_answer=rs.getString("answer");
……
amout=question.size();}
catch(SQLException ex){System.out.println(ex.getMessage());}
catch(java.lang.ClassNotFoundException e){}
}
移動端題庫練習系統(tǒng)從具體功能和具體設計兩方面描述了系統(tǒng)設計過程,由于系統(tǒng)設計代碼眾多,所以僅僅加入了部分類和方法的代碼代替。本系統(tǒng)完成后可以非常方便地隨時隨地通過移動終端對題庫中的習題進行練習,為學生提供了很好的題庫練習平臺。