摘 要:為了解決現(xiàn)有紙質(zhì)投票系統(tǒng)統(tǒng)計效率低的問題,解決專用投票系統(tǒng)升級困難,使用率不高的問題,本系統(tǒng)設(shè)計了以安卓端為客戶端,電腦端為服務(wù)器端的手機投票系統(tǒng),該系統(tǒng)實現(xiàn)了在客戶端進(jìn)行登錄投票,查詢候選列表的信息并且能夠有效的防止刷票,服務(wù)器端進(jìn)行活動的發(fā)起,制定活動的相關(guān)規(guī)則,查看投票結(jié)果等功能。
關(guān)鍵詞:Android;Java;投票系統(tǒng)
中圖分類號:TP311.52
目前國內(nèi)投票主要有三種方式:(1)紙質(zhì)投票方式,其問題是工作量大,操作繁瑣,且投票單一、不能實現(xiàn)有效的統(tǒng)一管理。(2)專用投票設(shè)備,其功能單一、使用率低、不便于攜帶、升級困難;(3)網(wǎng)絡(luò)化電子投票方式,需要投票者注冊成為相關(guān)的用戶,這種開放式的投票往往不適用于一些有保密要求的投票,同時使用這類網(wǎng)站提供的投票系統(tǒng)無法實現(xiàn)自己的一些個性化的需求。本投票系統(tǒng)通過同一個局域網(wǎng)的連接,服務(wù)器端制定活動規(guī)則、添加候選人信息以及投票人列表發(fā)起活動,手機端登錄客戶端,查看活動規(guī)則、候選人信息進(jìn)行投票!
1 Android手機投票系統(tǒng)原理
基于移動終端的手機投票系統(tǒng)的主要功能是實現(xiàn)查看大賽規(guī)則、候選人信息、手機投票以及防止二次投票,在服務(wù)器端可以制定活動規(guī)則,對活動進(jìn)行增刪查改,以及活動的啟動,選擇以柱狀圖和餅形圖即時顯示投票結(jié)果。其中關(guān)鍵技術(shù)主要包括:數(shù)據(jù)庫的設(shè)計、android端的數(shù)據(jù)處理功能、服務(wù)器端的投票結(jié)果的圖形顯示以及android端和服務(wù)器端數(shù)據(jù)傳輸?shù)姆€(wěn)定性。
在Android平臺進(jìn)行開發(fā)時,通過URL連接的方式與Http服務(wù)器進(jìn)行通信,其工作原理是通過Http協(xié)議提交數(shù)據(jù),用GET或者POST方法客戶端的數(shù)據(jù)通。過繼承Android提供的Activity類,在該類中創(chuàng)建提交給Web服務(wù)器的數(shù)據(jù)的 HttpPost對象。覆蓋Activity類的方法on—Create(Bundle b),創(chuàng)建事件監(jiān)聽器 OnClickListener對象,在其中實現(xiàn)OnClick(View v)方法,再把該事件監(jiān)聽器注冊到相應(yīng)的事件源loginButton上。
服務(wù)器端的開發(fā)使用tomcat和jsp作為服務(wù)器的開發(fā)。在Android手機終端發(fā)送請求后,接收請求的web服務(wù)器端會根據(jù)請求的數(shù)據(jù)信息進(jìn)行運算,然后把運算結(jié)果響應(yīng)給手機客戶端。
1.1 Android手機投票系統(tǒng)開發(fā)環(huán)境
在進(jìn)行Android客戶端開發(fā)的過程中,安裝的開發(fā)環(huán)境是JDK1.7版本和集成的安卓開發(fā)工具ADT 4.0,Mysql數(shù)據(jù)庫5.1,myecplise10.0,客戶端通過ADT中的編譯工具進(jìn)行編譯,生成Apk文件,服務(wù)器端直接以web網(wǎng)頁的形式訪問登錄。
1.2 Android 設(shè)計的原理
Android是基于Linux內(nèi)核的開放性操作系統(tǒng),Android操作系統(tǒng)自身的優(yōu)勢首先源自于它是一個開放源碼的平臺。其次源于應(yīng)用程序間可以相互調(diào)用,用戶開發(fā)的應(yīng)用程序遵循相應(yīng)的API可以調(diào)用系統(tǒng)應(yīng)用和訪問移動設(shè)備。再次在于應(yīng)用程序的兼容性和可擴(kuò)展性好,用戶可以根據(jù)需要封裝自己的庫,其兼容底層嵌入式開發(fā),亦支持上層web開發(fā)。
Android系統(tǒng)采用了分層的架構(gòu),Android四層從高到底分別是應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運行庫層和Linux核心層。應(yīng)用程序框架中可訪問核心應(yīng)用程序所使用的API框架,該應(yīng)用程序的架構(gòu)設(shè)計簡化了組件的重用。安卓的用戶界面以組件和JAVA代碼實現(xiàn)。安卓的布局方式主要有五種:Absolute Layout、FrameLayout、LinearLayout、RelativeLayout、TableLayout。
1.3 數(shù)據(jù)處理功能
Android和電腦端的數(shù)據(jù)處理功能主要區(qū)別在于兩種不同設(shè)備之間通信方式的選擇。Android系統(tǒng)一共提供了4種數(shù)據(jù)存儲方式,分別是SharePreference、SQLite、Content Provvider和File。由于Android系統(tǒng)中數(shù)據(jù)基本都是軟件私有的,默認(rèn)存放于“data/data程序包名”目錄下!
在本投票系統(tǒng)設(shè)計中,在客戶端選擇了SQLite和SharePreference方式,同時使用這兩種不同的方式很好的解決了單個存儲方式帶來的問題,而且不同的存儲方式各盡其職,方便開發(fā)使用,縮短軟件開發(fā)時間。
2 投票系統(tǒng)的框架
2.1 功能模塊
系統(tǒng)各模塊框架如圖所示:
圖1 服務(wù)器端功能結(jié)構(gòu)框圖
圖2 客戶端功能結(jié)構(gòu)框圖
2.2 系統(tǒng)邏輯結(jié)構(gòu)
圖3 投票系統(tǒng)E-R圖
2.3 系統(tǒng)時序圖
2.3.1 用戶進(jìn)行投票時的時序圖如圖4所示:
圖4 投票時序圖
2.4 相關(guān)類
2.4.1 web服務(wù)器部分
HTTPServlet 使用一個 HTML 表單來發(fā)送和接收數(shù)據(jù)實現(xiàn),客戶端發(fā)送請求至服務(wù)器,服務(wù)器啟動并調(diào)用Servlet,Servlet根據(jù)客戶端請求生成響應(yīng)內(nèi)容并將其傳給服務(wù)器,服務(wù)器將響應(yīng)返回客戶端。
服務(wù)器端主要包括:
addCandidateServlet類:添加候選人類addVotemanServlet類:添加投票人類;alterActivity類:修改活動類;deteleActivity類:刪除活動類;deleteCandidateActivity類:刪除候選人類;getScordServlet類:取得投票分?jǐn)?shù)類;loginServlet類:響應(yīng)投票人登錄類;manageloginServlet類:管理員登錄類;newActivityServlet類:新建活動類;updatCandidate類:修改候選人類;voteResultServlet類:投票結(jié)果類等。
2.4.2 Android應(yīng)用軟件部分
Android應(yīng)用軟件包括原程序文件src、資源文件res、應(yīng)用配置文件AndroidMainfest.xml等。其中,生成項目中src包括主要類有:loginActivity類:客戶端登錄模塊類;mainActivity類:客戶端主界面類;persondetailActivity類:客戶端投票打分類;Activity類:活動實體類;Candidata類:候選人實體類;User類:投票人實體類;Vote類:投票實體類;ObjectTrain類:網(wǎng)絡(luò)通信中的主要類;SaveDataSDCard類用于暫時保存手機本地數(shù)據(jù);DBHelper類用于調(diào)取Mysql數(shù)據(jù)庫中的數(shù)據(jù)。
HttpURLConnection為javaAPI提供的一種Rest訪問的方式。其支持對Post,Delete,Get,Put等方式的訪問。在本系統(tǒng)中,通過使用post的方式,將Android手機端的數(shù)據(jù)提交給web服務(wù)器。
2.4.3 數(shù)據(jù)庫應(yīng)用部分
數(shù)據(jù)庫中設(shè)計有五張表,分別是voteman投票人表、vote投票結(jié)果表、manager管理員表、activity活動表、candidate候選人表。各個表之間通過相應(yīng)的ID鍵級聯(lián)鏈接,這方便了對表的管理;刪除相關(guān)活動時,對應(yīng)的表也隨之清空。驗證用戶二次登陸有兩種情況,一是在用戶登陸系統(tǒng)后直接退出,則不改變用戶的登陸狀態(tài),仍為0,可繼續(xù)登陸系統(tǒng)進(jìn)行投票;二是用戶投完票后退出,則置用戶的登陸狀態(tài)為1,不能再次登陸系統(tǒng)。
3 結(jié)束語
基于移動端的投票系統(tǒng)是將客戶端與電腦端通過局域網(wǎng)連接,移動端為客戶端,電腦端為服務(wù)器端。本系統(tǒng)對投票項目、投票過程和結(jié)果分析的一體化管理,達(dá)到節(jié)省時間、科學(xué)可靠、可信、操作簡便、可以個性化定制的目的。具有很好的經(jīng)濟(jì)效益和社會效益巨大,應(yīng)用前景。
參考文獻(xiàn):
[1]王建,楊曉東,劉志軍.基于Android與互聯(lián)網(wǎng)的手機投票系統(tǒng)設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2013(05):78-81.
[2]劉平.Android手機訪問服務(wù)器的一種數(shù)據(jù)交互方法[J].電子設(shè)計工程,2010(09):96-98+102.
[3]王紹祥,邵玉斌,龍華.Android手機與數(shù)據(jù)庫的一種數(shù)據(jù)交互方法[J].鄭州輕工業(yè)學(xué)院學(xué)報(自然科學(xué)版),2011(06):28-30.
作者簡介:黃濤(1992.05-),男,河南信陽人,學(xué)士,研究方向:計算機軟件應(yīng)用。
作者單位:中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,天津 300300