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