杜佳佳
摘要:目前,隨著移動通信技術的迅猛發(fā)展,Android手機平臺的運用已成為當今時代的主流,在市場中占有很大的份額。Android系統(tǒng)的物美價廉迎合了國外眾多消費者的需求,因而其在中國的發(fā)展前景非常廣闊。傳統(tǒng)的答題采用人工處理的方式,這種方式不僅不環(huán)保、耗費大量人力財力,而且反饋不及時。該研究是針對廣大學生用戶,將智能機應用于答題當中,主要結合后臺數(shù)據(jù)庫和網(wǎng)絡連接技術,采用異步類的方法,設計的一款在線答題器,它不僅能實現(xiàn)用戶使用手機進行在線答題,具有答題、查看試題和查看歷史答題成績的功能,還能提高效率和減少成本,具有一定的現(xiàn)實意義。
關鍵詞:Android;在線答題;網(wǎng)絡連接;異步類
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2020)30-0060-04
Abstract: At present, with the rapid development of mobile communication technology, the use of the Android mobile phone platform has become the mainstream of the present era, having a large share in the market. The high quality and inexpensiveness of the android system cater to many foreign consumers, thus, in china, there are broad prospects for development. This topic is just for student users, applying intelligent machines for answering, mainly with the background database and network technology, by using the method of asynchronous classes and design an online answering device, by which users can answer, see the questions and review historical answer score. It can not only realize the students use the mobile phone answer online, but also improve the efficiency and reduce the cost, which has a certain practical significance.
Key words: Android; online answering; network connection; asynchronous classes
1 背景
本研究講述了本系統(tǒng)的設計背景和設計目標,簡單地介紹了系統(tǒng)的開發(fā)工具和開發(fā)環(huán)境,并對系統(tǒng)的結構做了論述,教育工具的發(fā)展是人們一直關注的焦點,特別地,隨著智能機越來越廣泛地被應用于人們的日常生活當中,這種趨勢將會越來越受人們的重視。
此研究目的在于開發(fā)一款能在手機終端上運行的系統(tǒng),即手機答題器,主要通過異步類的方法,通過網(wǎng)絡連接,將手機和后臺數(shù)據(jù)庫連接在一起,實現(xiàn)Android智能手機和數(shù)據(jù)庫之間的連接和數(shù)據(jù)傳遞連接和數(shù)據(jù)傳遞[1],用戶可以直接通過手機從后臺數(shù)據(jù)庫中獲取試題、課程、答案和成績等信息,并把答案和作答信息傳回數(shù)據(jù)庫,從而實現(xiàn)答題過程。隨著Android智能手機的普及和Android技術的快速發(fā)展,設計的手機端系統(tǒng)將會廣泛應用于人們的日常生活當中,給人們的生活帶來很多便利。該手機答題器不僅能節(jié)省時間,給課堂教學帶來很大的方便,還能節(jié)省資源,避免浪費。手機答題[2]客戶端的開發(fā),有利于提高教學質量,此課題的應用將會有廣大的市場前景和龐大的客戶群體。
2 App
2.1 總體設計
本課題的任務是設計一款能在手機終端運行的系統(tǒng),該系統(tǒng)以Java語言為基礎,基于Android開發(fā)技術,能在Android平臺下流暢的運行,用戶可以自主登錄系統(tǒng),選擇課程,選擇題目進行答題并提交答案,還可以查看歷史答題信息[3],待答案發(fā)布后能夠查看答案和成績。答題手機端主要分成三大模塊,其中課堂作業(yè)模塊又可細分為六部分。
2.2 修改密碼
課堂答題系統(tǒng)手機端實現(xiàn)的主要功能是學生用學號和密碼在手機上進行登錄,登錄可以根據(jù)課程、序號篩選題目進行答題,答案也上傳到服務器端,答題后可以查看這道題目的答案。因為所有學生初始密碼都一樣,在登錄界面學生可以更改自己的密碼。
2.3 主頁面選擇課程
登錄成功后,用戶進入主頁面,可以選擇答題或者查看答題信息,若選擇查看答題信息,會彈出相應的課程選擇框,用戶選擇相應的答題頁面,進入該課程進行答題。
2.4 用戶答題
選擇某門課程之后,用戶可以選擇題號作答,若作答成功,提示用戶作答已成功,不可重復作答,若還未作答,提示用戶請作答。
2.5 查看試題答案
若題目作答完成之后,答案處于發(fā)布狀態(tài),用戶可以查看正確答案,若答案未處于發(fā)布狀態(tài),則用戶無法查看成績。
2.6 查看歷史作答情況
答完所有試題之后,用戶可以查看歷史作答情況,可以查看自己之前提交的試題答案。
2.7 查看成績
用戶答完所有題目之后,由管理員在后臺數(shù)據(jù)庫查看試題答案,并給出一個總評成績,用戶可以通過進入查看成績頁面查看總評成績[4]。
3 數(shù)據(jù)庫設計
眾所周知,系統(tǒng)的運行效率不僅會受系統(tǒng)配置、內(nèi)存空間、代碼等影響,更多的還會受到數(shù)據(jù)庫效率的影響。因此,設計一個合理的數(shù)據(jù)庫不僅可以簡化代碼的編寫,減少開發(fā)者的工作量,還能給我們的編程帶來很多方便,并且能節(jié)省很多時間。本系統(tǒng)的數(shù)據(jù)庫需要導入學校數(shù)據(jù)庫的信息,不需要對后來進行太多的操作[5]。根據(jù)流程圖分析設計了用戶信息表、作業(yè)表、課程表、選課表、答題表、成績表和管理員信息七個表格。
本小節(jié)主要來完成系統(tǒng)的概要設計和詳細設計,主要完成數(shù)據(jù)庫表的詳細設計,表設計是數(shù)據(jù)庫的核心。
用戶信息表是包含了學生用戶的信息,包括學生賬號、密碼、姓名、性別以及班級號字段,學生賬號作為主鍵。學生可以輸入賬號和密碼登錄系統(tǒng)。
3.1 student
4 系統(tǒng)實現(xiàn)
Android手機端中,所以有關的界面代碼都放置在res/layout布局中,主要布局文件是activity_main.xml(登錄頁面)、checkanswer.xml(查看答案)、checkpassage.xml(查看歷史答題信息和成績頁面)、mainpage.xml(手機端主頁面 )、requestion.xml(選題答題頁面)以及revisepassword.xml(修改密碼)六個頁面。
手機端主要功能是用戶利用手機進行答題和查看答案即歷史答題信息,不僅僅可以提高學習效率,還可以優(yōu)化教學模式。在此不加入用戶的注冊功能是因為,用戶的人數(shù)一般都是固定的,沒必要注冊,如果真的需要增加用戶記錄,可以由管理員手動直接在數(shù)據(jù)庫中添加。
軟件運行前,需要將電腦和手機連到統(tǒng)一網(wǎng)段上,保證網(wǎng)絡通暢,然后打開Eclipse,運行程序,連接數(shù)據(jù)線,將應用程序成功下載到Android手機上,Android在登錄和獲取試題等信息,以及上傳答題信息時,都要訪問數(shù)據(jù)庫,這是通過JDBC驅動連接到數(shù)據(jù)庫中,然后才能實現(xiàn)手機訪存數(shù)據(jù)庫中的數(shù)據(jù)[6]。
數(shù)據(jù)庫的訪問需要網(wǎng)絡連接,數(shù)據(jù)庫連接、訪問以及斷開都是放在異步類中進行的,為了避免主線程阻塞,UI卡死等現(xiàn)象的發(fā)生,本系統(tǒng)在每個Activity使用異步類另開一個線程,每個異步類都是輕量級的,而且直接繼承AsyncTask父類。數(shù)據(jù)庫主要通過JDBC驅動進行連接,host為服務器主機名,database指的是需要連接的數(shù)據(jù)庫,user和pass為定義的實例名和密碼,以下為數(shù)據(jù)庫連接的主要代碼:
數(shù)據(jù)庫的連接、查詢訪問以及關閉均在異步類中的doInBackground方法中進行,使用繼承的異步類接口的方法進行數(shù)據(jù)庫訪問操作,最后將得到的結果返回給主線程。異步類的使用是的網(wǎng)絡連接變得更加方便、安全和快捷。doInBackground方法主要分成try、catch和finally三部分,數(shù)據(jù)庫的打開和訪問查詢操作一般都是try方法中進行的,catch用于捕獲數(shù)據(jù)庫連接不正常等異常,數(shù)據(jù)庫訪問操作可以在一個try方法里面進行,不過若想使得程序更加可讀,也可以把一次數(shù)據(jù)庫操作放在一個try和catch方法中進行。數(shù)據(jù)庫連接和訪問操作結束之后,必須在finally方法中關閉數(shù)據(jù)庫連接,否則可能會造成內(nèi)存不足。而且如果不關閉數(shù)據(jù)庫連接,在另一個Activity中想要訪問數(shù)據(jù)庫的時候,會造成數(shù)據(jù)庫對象被之前的Activity占用的問題,從而導致數(shù)據(jù)庫訪問無法進行,事務無法提交。在執(zhí)行doInBackground方法之前,一些預處理操作就在onPreExecute方法中進行,主要在這個方法中做一些準備工作。onPostExecute是最后執(zhí)行的方法,在這個方法中主要做一些善后工作。異步類的任務是另開一個線程執(zhí)行工作,但是當任務完成之后,仍要將查詢到的信息回調到主線程中,進行后續(xù)的操作。
5 系統(tǒng)使用說明和系統(tǒng)實現(xiàn)效果
用戶可以通過手機下載App并安裝。打開后首先是登錄界面,如圖2所示。用戶輸入賬號和密碼之后,點擊“登錄”,若賬號密碼均正確,那么成功登錄,進入Android手機端主頁面;如果用戶賬號或密碼錯誤,則無法進入頁面,需要重新輸入賬號信息。圖3是用戶端修改密碼的界面,選擇“修改密碼”進入到修改密碼頁面,用戶正確輸入學號和原密碼后,輸入新密碼,選擇“確定”,密碼可以修改成功;若輸入的賬號和原密碼錯誤,則修改密碼不成功。圖4,用戶登錄成功后,可以進行頁面選擇,選擇進入相應的頁面,選擇答題就進入答題頁面,選擇查看作答情況就進入作答情況頁面[7]。一個用戶可以選擇相應的課程進入相應課程的答題頁面。圖5表示的是用戶答題頁面,用戶根據(jù)課程可以選擇相應的題目作答,如果選的是有選項的題目,直接選擇選項就可以提交答題信息,而對于比較復雜的題型,像填空題和簡答題之類的,就需要手動輸入文字答題信息后提交。若用戶已經(jīng)回答過該題目則提示“您已經(jīng)作答”。如圖6,用戶答題之后,若回答選題后,若未公布答案,則提示“對不起答案未公布”。若該題答案已公布,則可進入相應的頁面查看題目正確答案。圖7是用戶端查看歷史答題信息和查看成績頁面[8],可以選擇課名查看相應的答案信息。
6 結束語
本文設計并實現(xiàn)了基于Android的課堂答題系統(tǒng)手機端App,本答題系統(tǒng)的設計具有較大的現(xiàn)實意義。當今社會,大學生基本上人手一部Android智能機,使用手機進行答題也就變得越來越方便和實用,本系統(tǒng)在一定程度上能夠幫助課堂的教學。
參考文獻:
[1] 劉必剛.Android通信模塊的設計與優(yōu)化[D].武漢:武漢理工大學,2010.
[2] Rick Rogers,John Lombardo,Zigurd Mednieks,et al.Android Application Development.2008.
[3] 宋楠.基于Android智能機課堂反饋系統(tǒng)的設計與實現(xiàn)[D].上海:華東師范大學,2013.
[4] 王赟,賀洪平,劉斌,等.基于Android平臺及手機WLAN功能的評分系統(tǒng)[J].科學技術與工程,2011,11(36):9075-9079.
[5] 吳瓊.基于Android平臺下高校師生作業(yè)答題系統(tǒng)的設計與實現(xiàn)[J].農(nóng)業(yè)網(wǎng)絡信息,2014(4):129-130.
[6] 鄭昊,鐘志峰,郭昊,等.基于Arduino/Android的藍牙通信系統(tǒng)設計[J].物聯(lián)網(wǎng)技術,2012,2(5):50-51.
[7] 熊剛.基于Android的智能手機的設計與實現(xiàn)[D].武漢:武漢理工大學,2010.
[8] 羅浩.基于Android的藍牙評分智能軟件系統(tǒng)的設計與實現(xiàn)[D].哈爾濱:哈爾濱理工大學,2014.
【通聯(lián)編輯:謝媛媛】