黃鏘
摘要:針對(duì)當(dāng)下各類(lèi)競(jìng)賽評(píng)選活動(dòng)頻繁舉行,為提高企事業(yè)單位組織賽事統(tǒng)計(jì)分?jǐn)?shù)的效率和公信力,提出構(gòu)建一套基于Android平臺(tái)的評(píng)分系統(tǒng)。系統(tǒng)通過(guò)配置信息,實(shí)現(xiàn)隨時(shí)、動(dòng)態(tài)的加載不同評(píng)選活動(dòng)的評(píng)分細(xì)則,可以達(dá)到一個(gè)應(yīng)用,各賽通用的效果,降低賽事評(píng)分統(tǒng)計(jì)應(yīng)用的研發(fā)成本。
關(guān)鍵詞:Android;評(píng)分系統(tǒng);動(dòng)態(tài)配置;控件加載;
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)26-0073-02
在企事業(yè)單位或高校教育過(guò)程中,往往會(huì)通過(guò)組織競(jìng)賽,以賽事作為檢測(cè)、選拔人才的途徑。此外,各級(jí)政府也通過(guò)組織各種文藝匯演競(jìng)賽,以豐富人民的文化生活[1]。
采用紙質(zhì)評(píng)分方式速度慢、統(tǒng)計(jì)容易出錯(cuò),并且易被修改。面對(duì)眾多的評(píng)分需求和原始評(píng)分方式的不足,學(xué)者采用了Access[1]、Excel[2,3,4,5]、PowerPoint[2,5]等辦公軟件進(jìn)行賽事評(píng)分。以辦公軟件作為評(píng)分工具載體的方式,具有上手簡(jiǎn)單、統(tǒng)計(jì)便捷的特點(diǎn),但同時(shí)也決定了必須通過(guò)計(jì)算機(jī)終端作為輸入,才可以完成評(píng)分工作。需要為評(píng)委們配備臺(tái)式計(jì)算機(jī)或便攜式計(jì)算機(jī),并且安裝指定版本的辦公軟件,才可以完成評(píng)分工作。賽事增加配備硬件設(shè)備,無(wú)疑會(huì)加大準(zhǔn)備賽事的難度和提高賽事的運(yùn)營(yíng)成本。另外,通過(guò)辦公軟件定制的評(píng)分系統(tǒng),往往只是針對(duì)某一項(xiàng)比賽,一旦賽事結(jié)束,評(píng)分軟件即被棄用。將已有系統(tǒng)應(yīng)用到新的比賽環(huán)境,往往需要較大量的二次開(kāi)發(fā),以適配不同比賽的不同評(píng)分細(xì)則。從而導(dǎo)致開(kāi)發(fā)成本較高,軟件利用率較低的問(wèn)題。
1 安卓系統(tǒng)簡(jiǎn)介
安卓操作系統(tǒng)是一款基于Linux內(nèi)核的移動(dòng)端操作系統(tǒng)。它是一個(gè)開(kāi)放系統(tǒng)內(nèi)核源代碼的手機(jī)平臺(tái)。任何手機(jī)廠商,均可直接使用安卓系統(tǒng)。根據(jù)安卓官方網(wǎng)站的統(tǒng)計(jì),在全球移動(dòng)端的市場(chǎng)占有率已經(jīng)超過(guò)了80%。
整個(gè)安卓操作系統(tǒng),主要分為L(zhǎng)inux內(nèi)核層、庫(kù)和安卓應(yīng)用運(yùn)行環(huán)境、應(yīng)用框架層和頂層的用戶(hù)級(jí)應(yīng)用。用戶(hù)級(jí)應(yīng)用主要采用Java語(yǔ)言進(jìn)行開(kāi)發(fā),以APK文件的形式發(fā)布到安卓市場(chǎng),供手機(jī)用戶(hù)下載使用。應(yīng)用安裝后,有兩種運(yùn)行模式。一種是以字節(jié)碼的形式,在Dalvik虛擬機(jī)中運(yùn)行;另一種是在安卓4.4的版本后,應(yīng)用被直接轉(zhuǎn)換為本地機(jī)器碼,通過(guò)安卓運(yùn)行時(shí)(Android RunTime)執(zhí)行,以提高應(yīng)用運(yùn)行的流程性。
安卓系統(tǒng)是一個(gè)在不斷發(fā)展和完善的操作系統(tǒng),受到廣大開(kāi)發(fā)者的熱捧和消費(fèi)者的喜愛(ài),愈發(fā)完善的操作系統(tǒng)和不斷推陳出新的應(yīng)用必將豐富人們的日常生活和提高人們的工作效率。
2 評(píng)分系統(tǒng)設(shè)計(jì)
本評(píng)分系統(tǒng)旨在提高各類(lèi)賽事的評(píng)分工作效率,選取目前市場(chǎng)份額高、使用門(mén)檻低的安卓操作系統(tǒng)作為運(yùn)行平臺(tái),使用Java程序設(shè)計(jì)語(yǔ)言進(jìn)行開(kāi)發(fā),主要的設(shè)計(jì)如下:
2.1 功能設(shè)計(jì)
評(píng)分系統(tǒng)采用C/S架構(gòu),整體系統(tǒng)模塊劃分為賽事管理、參賽作品管理、作品評(píng)分、賽果查詢(xún)、參賽團(tuán)隊(duì)管理和評(píng)委管理六大模塊??蛻?hù)端主要是安卓平臺(tái),具有賽事管理中的查看賽事、查看參賽作品、查看作品詳情、對(duì)作品進(jìn)行評(píng)分和查詢(xún)賽果的功能。服務(wù)器端采用Servlet的技術(shù),主要響應(yīng)客戶(hù)端的請(qǐng)求,向客戶(hù)端發(fā)送賽事信息、作品詳情、評(píng)分細(xì)則等信息;完成對(duì)客戶(hù)端提交評(píng)分結(jié)果的保存。
2.2 領(lǐng)域模型設(shè)計(jì)
在競(jìng)賽評(píng)分的業(yè)務(wù)領(lǐng)域中,存在五個(gè)核心的概念:賽事、作品、參賽選手、評(píng)委和評(píng)分細(xì)則。因此,在業(yè)務(wù)層的數(shù)據(jù)存儲(chǔ)設(shè)計(jì)中,通過(guò)TB_CONTEST表記錄各種不同的賽事,包括各項(xiàng)賽事的有效期。以TB_CONTEST表的主鍵作為外鍵,創(chuàng)建TB_ENTRY表記錄參加某項(xiàng)賽事的作品。考慮到參賽的作品有可能是個(gè)人作品,也可能是團(tuán)隊(duì)作品,所以設(shè)置了TB_TEAM表和TB_CONTESTANT表,分別表示參賽團(tuán)隊(duì)和參賽選手。某團(tuán)隊(duì)具體有哪些參賽選手,通過(guò)TB_TEAM_MEMBER表建立TB_TEAM和TB_CONTESTANT表之間的關(guān)聯(lián)。為了更好的利用Java編程語(yǔ)言的多態(tài)性,在編程實(shí)現(xiàn)的過(guò)程中,引入“個(gè)人團(tuán)隊(duì)”的概念,默認(rèn)為單個(gè)選手創(chuàng)建一個(gè)只有一名成員的團(tuán)隊(duì),從而使得整個(gè)賽事的作品、評(píng)分可以用統(tǒng)一的業(yè)務(wù)模型,針對(duì)“團(tuán)隊(duì)”的概念進(jìn)行處理,而不必區(qū)分是獨(dú)立完成的作品還是多人共同完成的作品。
基于不同賽事有不同的評(píng)分細(xì)則,為提高系統(tǒng)的擴(kuò)展性,評(píng)分系統(tǒng)在評(píng)分模塊的架構(gòu)上采用MVC模式。在Model層,以TB_ITEM表記錄具體的評(píng)分細(xì)則及分值,TB_SCORE表記錄評(píng)委最終評(píng)定的具體分值,TB_JUDGRE表記錄評(píng)委信息。在視圖層,管理人員可以根據(jù)不同的評(píng)分項(xiàng),配置TB_ITEM_VIEW_TYPE表,控制用于展示評(píng)分細(xì)則的安卓視圖組件,例如同樣是“編程風(fēng)格良好”、總分值為10分的評(píng)分項(xiàng),有的賽事可以選擇設(shè)置為下拉框展示評(píng)分項(xiàng),提供0至10的分值供評(píng)委選擇,有的賽事可以選擇設(shè)置為數(shù)值編輯框來(lái)展示評(píng)分項(xiàng),評(píng)委在編輯框內(nèi)輸入評(píng)分值。一份評(píng)分表格由多條評(píng)分項(xiàng)構(gòu)成,評(píng)分項(xiàng)的展示先后順序通過(guò)TB_ITEM_VIEW表進(jìn)行配置。
3 評(píng)分系統(tǒng)的實(shí)現(xiàn)
評(píng)委在客戶(hù)端打開(kāi)評(píng)分系統(tǒng)并登錄后,系統(tǒng)將進(jìn)入賽事列表界面(圖3)。評(píng)委選擇其中一項(xiàng)賽事,單擊列表項(xiàng)后進(jìn)入作品列表界面(圖4)。其中,評(píng)委還未打分的作品會(huì)以紅色字體突出顯示,以提示評(píng)委進(jìn)行打分。評(píng)委任意點(diǎn)選一個(gè)參賽作品,即可進(jìn)入作品的詳細(xì)評(píng)分頁(yè)面(圖5)。根據(jù)管理員對(duì)評(píng)分表的配置,客戶(hù)端會(huì)為每一個(gè)參賽作品,動(dòng)態(tài)自動(dòng)創(chuàng)建評(píng)分表,使用數(shù)據(jù)庫(kù)中配置的視圖控件來(lái)進(jìn)行評(píng)分。管理員可以根據(jù)評(píng)分項(xiàng)的特點(diǎn),設(shè)置評(píng)分項(xiàng)使用文本編輯框進(jìn)行評(píng)分(如圖6所示)或使用列表選項(xiàng)框的方式進(jìn)行評(píng)分(如圖7所示)。評(píng)委點(diǎn)擊保存按鈕后,作品每條評(píng)分項(xiàng)的得分將被上傳到服務(wù)器進(jìn)行存儲(chǔ)?;氐阶髌妨斜斫缑婧?,將立刻可以看見(jiàn)作品得分(如圖8所示)。
其中,動(dòng)態(tài)裝配評(píng)分表的原理如下圖9所示。整個(gè)評(píng)分表為安卓組件滾動(dòng)視圖ScrollView。通過(guò)JudgeDao讀取評(píng)分項(xiàng)的配置表TB_ITEM,獲得評(píng)分項(xiàng)的詳情及其分值。評(píng)分項(xiàng)的展示控件VIEW_TYPE字段的數(shù)值作為T(mén)B_ITEM_VIEW_TYPE的外鍵,通過(guò)它可以獲取TB_ITEM_VIEW_TYPE中的控件信息,從而確定使用什么類(lèi)型的視圖控件來(lái)展示評(píng)分項(xiàng),供評(píng)委進(jìn)行打分。在TB_ITEM_VIEW表控制評(píng)分項(xiàng)的顯示順序、評(píng)分項(xiàng)的默認(rèn)值、校驗(yàn)條件和選項(xiàng)范圍等與評(píng)分項(xiàng)顯示相關(guān)的參數(shù),例如文本編輯框中是否支持小數(shù)的輸入、列表選項(xiàng)的各個(gè)選項(xiàng)值。
4 結(jié)束語(yǔ)
針對(duì)賽事的評(píng)分需求,設(shè)計(jì)了一個(gè)使用門(mén)檻低、重用性高 的基于安卓平臺(tái)的評(píng)分系統(tǒng),可以對(duì)各種賽事的評(píng)分工作進(jìn)行迅速、準(zhǔn)確和靈活的定制,提高賽事評(píng)分的效率和準(zhǔn)確性。
參考文獻(xiàn):
[1] 陳定棋. 基于Access比賽評(píng)分系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電腦知識(shí)與技術(shù), 2015, 11(14): 61-63.
[2] 李祖全. Excel加PowerPoint輕松創(chuàng)建比賽評(píng)分系統(tǒng)[J]. 中小學(xué)信息技術(shù)教育, 2010(11): 85.
[3] 馬偉東, 劉明滋. 用ExcelVBA實(shí)現(xiàn)比賽評(píng)分系統(tǒng)[J]. 電腦編程技巧與維護(hù), 2013(24): 46-47.
[4] 吳江, 李太勇, 劉洋洋. 基于Excel的試卷生成和評(píng)分系統(tǒng)[J]. 中國(guó)教育信息化, 2011(19): 37-39.
[5] 陳艷郁. 用Excel和PowerPoint組合做演講比賽評(píng)分系統(tǒng)[J]. 辦公自動(dòng)化:綜合版, 2008(1): 47-48.