国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

部隊軍事訓(xùn)練在線抽考系統(tǒng)的研究與開發(fā)

2021-01-19 03:08黑子微
科技與創(chuàng)新 2021年1期
關(guān)鍵詞:工具包客戶端服務(wù)器

黑子微

部隊軍事訓(xùn)練在線抽考系統(tǒng)的研究與開發(fā)

黑子微

(山西省軍區(qū)數(shù)據(jù)信息室,山西 太原 030000)

針對部隊軍事訓(xùn)練抽考的隨機(jī)性、公正性問題,設(shè)計在線抽考系統(tǒng),提出了基于JavaScript實(shí)現(xiàn)的隨機(jī)抽考系統(tǒng)的設(shè)計思路,介紹了系統(tǒng)的設(shè)計原理、關(guān)鍵技術(shù)和實(shí)現(xiàn)方法,對當(dāng)前各類開發(fā)工具進(jìn)行比對分析,重點(diǎn)研究了抽考過程的邏輯關(guān)系,排除開發(fā)過程中遇到的邏輯錯誤和各類影響抽考公正性的情況,詳細(xì)闡述了系統(tǒng)架構(gòu)和運(yùn)作原理,為各部隊組織訓(xùn)練抽考提供了幫助。

抽考系統(tǒng);軍事訓(xùn)練;邏輯;語言

1 開發(fā)背景

當(dāng)前,部隊軍事訓(xùn)練越來越貼近實(shí)戰(zhàn),各項訓(xùn)練標(biāo)準(zhǔn)不斷細(xì)化,各項軍事訓(xùn)練考核成為了重點(diǎn)問題。對于師以上單位,下轄單位多,統(tǒng)一組織考核難度大,機(jī)關(guān)組考周期長;作戰(zhàn)部隊、信通保障部隊、省軍區(qū)部隊總體呈現(xiàn)出駐點(diǎn)分散、保障多元的態(tài)勢,對于覆蓋面廣、保障范圍大的單位必須立足各部團(tuán)自我考核,考核標(biāo)準(zhǔn)無法統(tǒng)一;由大機(jī)關(guān)統(tǒng)一劃分考核編組,采取“結(jié)對互考”的方式存在多種人為因素,難以嚴(yán)格按照考核標(biāo)準(zhǔn)檢查軍事訓(xùn)練成果。因此各單位在組考過程中,需要一個能夠重復(fù)利用、完全隨機(jī)的在線抽考系統(tǒng),實(shí)現(xiàn)各單位互考互評,以保證考核的公平性,提升組考效率。

現(xiàn)有的隨機(jī)結(jié)對考核方式,多采取乒乓球彩票搖號機(jī)、抽簽抓鬮等方式,無法讓各部團(tuán)在線實(shí)時了解抽考結(jié)果。本文所研究開發(fā)的在線抽考系統(tǒng),依托網(wǎng)頁瀏覽器,由軍事綜合信息網(wǎng)接入,可根據(jù)考核范圍,適時利用視頻會議系統(tǒng)推送各單位,系統(tǒng)維護(hù)無成本,重復(fù)利用率高,界面簡潔明了,抽考結(jié)果實(shí)時公布,極大節(jié)省了組考成本。

2 系統(tǒng)綜述

2.1 開發(fā)目的

解決大機(jī)關(guān)組織考核過程中,下轄單位結(jié)對互考的隨機(jī)抽點(diǎn)問題,明確主考、被考單位和考核內(nèi)容,節(jié)省考務(wù)工作準(zhǔn)備時間。

2.2 整體構(gòu)想

考核過程中,根據(jù)單位數(shù)量劃分為輪次。每一輪次完成3次隨機(jī)抽取。流程如圖1所示。

圖1 整體構(gòu)想

每一輪次分別記錄抽考結(jié)果,輪次結(jié)束后,將所有結(jié)果生成電子表格,以備公示。

2.3 實(shí)現(xiàn)功能與原理

XX單位在線抽考系統(tǒng)邏輯關(guān)系如圖2所示。

圖2 邏輯關(guān)系圖

考核準(zhǔn)備:將參加考核單位范圍、考核內(nèi)容錄入服務(wù)器端,啟動服務(wù)器,等待響應(yīng)。

考核實(shí)施:啟動客戶端,點(diǎn)擊主考單位抽取欄,向服務(wù)器發(fā)送請求,由服務(wù)器在所有參加考核單位中抓取數(shù)據(jù)并返回,隨機(jī)抽取主考單位A;點(diǎn)擊被考單位抽取欄,向服務(wù)器發(fā)送請求,由服務(wù)器在剩余參加考核單位中抓取數(shù)據(jù)并返回,隨機(jī)抽取被A考核的單位B;點(diǎn)擊考核內(nèi)容抽取欄,根據(jù)被考核單位B的單位性質(zhì)、訓(xùn)練內(nèi)容抽取考核內(nèi)容;開始下一輪次抽考,直到所有單位抽完;關(guān)閉客戶端,服務(wù)器恢復(fù)待機(jī)狀態(tài)。

考核結(jié)束:所有單位抽考完畢后,由服務(wù)器記錄輪次抽考結(jié)果,反饋到客戶端,并生成Excel表格備查。

2.4 開發(fā)流程

開發(fā)流程如下:①根據(jù)組考單位需求,設(shè)計抽考程序界面,搜集本單位照片素材,進(jìn)行圖像處理,確定界面風(fēng)格。②根據(jù)在線抽考程序界面預(yù)留鍵位像素位置和抽考結(jié)果顯示位置,進(jìn)行前端(客戶端)UI部分的開發(fā)。在開發(fā)過程中為所有鍵位預(yù)留動作函數(shù)位置,根據(jù)不同單元格像素尺寸,分別確定顯示字號。③進(jìn)行服務(wù)器端的開發(fā),為使程序更加扁平化,提高運(yùn)行速度,放棄數(shù)據(jù)庫的使用,采取直接從Excel表格抓取數(shù)據(jù)的方式。④進(jìn)行前端(客戶端)邏輯部分的開發(fā),利用服務(wù)器返回的數(shù)據(jù)和預(yù)留動作函數(shù)完成數(shù)據(jù)交互。

2.5 開發(fā)難點(diǎn)

2.5.1 開發(fā)工具的選擇

當(dāng)前主流語言有Python、C++、Java、JavaScript、VisualBasic等,根據(jù)各單位運(yùn)行平臺、系統(tǒng)實(shí)現(xiàn)目的的不同,選擇適應(yīng)平臺多元、技術(shù)成熟、插件廣泛的語言。

2.5.2 邏輯部分的設(shè)計

存在三種不成立的情況,分別如下。

第一種情況:如果完全隨機(jī)抽取,可能存在A單位抽到了B單位,而B單位恰好抽到了A單位,即A考核B,B又考核A,這樣一來考核有失公正性。隨機(jī)互抽邏輯錯誤如圖3所示。

圖3 隨機(jī)互抽邏輯錯誤

第二種情況:假如有A、B、C、D、E共5個單位參加考核,抽取結(jié)果為A考核B,B考核C,C考核D,D考核A,剩下E只能自我考核。剩余單位自我考核邏輯錯誤如圖4所示。

圖4 剩余單位自我考核邏輯錯誤

第三種情況:假如有A、B、C、D、E共5個單位參加考核,抽取結(jié)果為A考核B,B考核C,C考核A,剩下D,E兩個單位無其他選擇,造成的結(jié)果同第一種情況。剩余單位互相考核邏輯錯誤如圖5所示。

圖5 剩余單位互相考核邏輯錯誤

2.5.3 數(shù)據(jù)的抓取

如果采用數(shù)據(jù)庫,則系統(tǒng)的體量增大,數(shù)據(jù)調(diào)用造成響應(yīng)時間延長,延長開發(fā)周期;如果每次抽考修改服務(wù)器代碼,則抽考過程太過煩瑣專業(yè),達(dá)不到提高組考效率的目的。本系統(tǒng)擬采用從Excel抓取數(shù)據(jù),但需要解決數(shù)據(jù)從Excel表格流向服務(wù)器后臺的問題。

2.5.4 數(shù)據(jù)的交互

服務(wù)器抽考結(jié)果如何與前端(客戶端)實(shí)現(xiàn)往來,前端(客戶端)請求如何向后臺(服務(wù)器)發(fā)送是一個問題。

3 技術(shù)實(shí)現(xiàn)

3.1 系統(tǒng)架構(gòu)

系統(tǒng)整體架構(gòu)如圖6所示。

圖6 系統(tǒng)整體架構(gòu)

3.1.1 客戶端部分

HTML5+CSS3:HTML5是構(gòu)建Web內(nèi)容的一種描述方式,意為超文本傳輸,適配目前所有主流瀏覽器,當(dāng)前各類網(wǎng)頁都基于該標(biāo)準(zhǔn)開發(fā)。CSS3是CSS的最新版本,意為層疊樣式表,通過對自定義樣式表選擇符的引用,確定網(wǎng)頁各元素的外觀。HTML5和CSS3確定了網(wǎng)頁的內(nèi)容和樣式,是前端UI部分開發(fā)的核心。

JavaScript(JS):該部分是系統(tǒng)開發(fā)的核心。JS是一種腳本語言,主要面向Web開發(fā),具有函數(shù)優(yōu)先、輕量化、無類型的特點(diǎn),普適性好。在開發(fā)過程中,該語言主要完成抽考系統(tǒng)前端(客戶端)邏輯部分的編寫,同時能夠控制各單位隨機(jī)閃現(xiàn)的滾動效果,并根據(jù)單元格字?jǐn)?shù)多少調(diào)整字號。此系統(tǒng)用到了JS的3個插件和技術(shù),即jQuery、JSON、AJAX。jQuery是JS框架,能夠極大地減少代碼量,精準(zhǔn)地選擇到每一個鍵位和顯示框;JSON主要用以完成數(shù)據(jù)的模塊化,服務(wù)器將數(shù)據(jù)轉(zhuǎn)換成JSON格式打包發(fā)送至客戶端,由客戶端轉(zhuǎn)換成JS對象,解析成字符串,在頁面顯示;AJAX主要用以完成異步數(shù)據(jù)交換,由于網(wǎng)頁中不同部分顯示了不同函數(shù)的返回值,在切換抽考單位的過程中,需要在不刷新整個網(wǎng)頁的情況下完成局部數(shù)據(jù)更新,因此必須引入此項 功能。

該部分將轉(zhuǎn)化成字符串的數(shù)據(jù)保存為集合,集合由不同數(shù)組構(gòu)成,每個單位包含的信息為一個數(shù)組。數(shù)組與集合如圖7所示。

圖7 數(shù)組與集合

Tomcat:主要用以完成前端(客戶端)與后臺(服務(wù)器)之間的數(shù)據(jù)交互,需要在客戶端與服務(wù)器分別部署。對于有特別需求的單位,可以將服務(wù)器省略,將同一臺終端既作為服務(wù)器又作為客戶端,Tomcat發(fā)揮了橋梁的作用。

3.1.2 服務(wù)器部分

Java:該部分是服務(wù)器端的核心。通過Java主要完成Excel數(shù)據(jù)表內(nèi)容的抓取并打包成JSON格式。由于JSON是基于JavaScript的功能,通過Java語言無法直接將數(shù)據(jù)轉(zhuǎn)換為JSON格式,因此在開發(fā)過程中需要在開發(fā)環(huán)境lib中單獨(dú)掛載JSON的jar包。

Tomcat:作用與前端(客戶端)的Tomcat相似,用以完成數(shù)據(jù)交互。

3.1.3 數(shù)據(jù)流向

數(shù)據(jù)流向:原始數(shù)據(jù)—服務(wù)器端(Java)打包數(shù)據(jù)—客戶端(JS)解析數(shù)據(jù)—客戶端頁面顯示。

3.2 難點(diǎn)解決

3.2.1 開發(fā)工具比選

由于前端是整個系統(tǒng)的核心,因此優(yōu)先考慮適合前端開發(fā)的語言。JavaScript普適性好,能夠與HTML5、CSS3無縫銜接。服務(wù)器端可以選擇C++、Python,但C++架構(gòu)復(fù)雜,多繼承、指針等運(yùn)用復(fù)雜,增大開發(fā)難度;Python與JavaScript無法通過JSON工具包實(shí)現(xiàn)數(shù)據(jù)交互。與之相比,Java成型時間較早,相對成熟,且與JavaScript語法結(jié)構(gòu)相近,數(shù)據(jù)交互簡單,因此后臺開發(fā)用Java完成。

開發(fā)環(huán)境選擇Idea,搭配JDK采用目前免費(fèi)的jdk14。Idea平臺可同時編譯并運(yùn)行前端和后臺代碼,編譯方式智能程度高。

3.2.2 邏輯問題的排除

3.2.2.1 完全隨機(jī)過程中的A、B互相抽考問題

在每個單位的數(shù)組中,添加末位標(biāo)識符,作為是否能夠被抽考的依據(jù),每次抽取先對末位標(biāo)識符進(jìn)行判斷,如果是“Y”則表示可以進(jìn)行抽取,如果是“N”則表示跳過此單位,更改末位標(biāo)識符如圖8所示。抽取過程中,當(dāng)A作為主考單位,抽中了B,那么在B作主考單位時,通過條件語句將A數(shù)組的末位標(biāo)識符改為“N”,跳過A單位。

圖8 更改末位標(biāo)識符

3.2.2.2 單剩1個單位時自考問題

該問題需要在備選單位剩余2個時進(jìn)行邏輯語句設(shè)計,并且在每個單位參與完抽考后,將前述末位標(biāo)識符都變更為“N”。例如,在A抽考B,B抽考C,C抽考D的情況下,主考、被考單位分別剩D、E和A、E兩個,一旦D抽考到了A,那么邏輯錯誤將出現(xiàn)。因此需要在此時將隨機(jī)打破,令D強(qiáng)制抽取E,剩余單位唯一的邏輯錯誤排除如圖9所示。

圖9 剩余單位唯一的邏輯錯誤排除

3.2.2.3 剩余最后2個單位互相抽考問題

在隨機(jī)的基礎(chǔ)上,對單位抽取加以限制,確保每個單位能當(dāng)主考,每個單位都有機(jī)會被考。可在備選單位剩余3個時進(jìn)行邏輯語句設(shè)計。例如,在A抽考B,B抽考C的情況下,一旦C隨機(jī)抽到了A,邏輯錯誤將出現(xiàn)。因此當(dāng)C作為主考單位時將隨機(jī)打破,將A末位標(biāo)識符改為“N”,令C強(qiáng)制抽取D或E,剩余2個單位互相抽考邏輯錯誤的排除如圖10所示。

圖10 剩余2個單位互相抽考邏輯錯誤的排除

3.2.3 數(shù)據(jù)的抓取

由于不考慮使用數(shù)據(jù)庫進(jìn)行開發(fā),因此需要掛載能夠與Java兼容,且支持從Excel表格抓取數(shù)據(jù)的工具,數(shù)據(jù)抓取需完成從Excel表抓取數(shù)據(jù)和將抓取的數(shù)據(jù)解析成JavaScript能夠讀取的內(nèi)容兩個工作。需要的工具如圖11所示。

數(shù)據(jù)抓取選擇jxl.jar工具包,該工具包是由Java編寫而成,專用以操作Excel表格的工具類庫。系統(tǒng)主要用到了其中的Sheet接口、WorkBook類和read.biff包下的BiffException類,Sheet接口提供了全部讀、寫類方法名,WorkBook類提供了Sheet接口的具體實(shí)現(xiàn)方法,BiffException類提供了從Excel表格抓取數(shù)據(jù)的異常處理。

開發(fā)過程中將文件路徑傳入getWorkBook()方法獲取工作表對象,再由getSheets()方法獲取工作簿,由getRows()方法獲取每行數(shù)據(jù),最后遍歷各行數(shù)據(jù),完成數(shù)據(jù)抓取,具體代碼如圖12所示。

圖11 數(shù)據(jù)抓取所需工具包

圖12 數(shù)據(jù)抓取工具包的使用

抓取數(shù)據(jù)解析選擇json.jar工具包,主要用到了其中的JSONObject類和JSONArray類。

開發(fā)過程中通過操作JSONObject的實(shí)例化對象,利用其put()方法,將抓取的字符串寫入內(nèi)存,再通過操作JSONArray的實(shí)例化對象,利用add()方法,將存入的JSONObject對象轉(zhuǎn)化為集合,供向前端發(fā)送使用。具體代碼如圖13所示。

圖13 數(shù)據(jù)解析工具包的使用

3.2.4 數(shù)據(jù)的交互

數(shù)據(jù)交互基于Tomcat完成,利用Tomcat自帶工具包servlet-api.jar完成數(shù)據(jù)交互。主要用到http包中的HttpServlet類、HttpServletRequest類、HttpServletResponse類和ServletException類,http包中的類用于數(shù)據(jù)發(fā)送和反饋,ServletException類用于異常處理。數(shù)據(jù)交互所需工具包如圖14所示。

圖14 數(shù)據(jù)交互所需工具包

開發(fā)過程中通過繼承HttpServlet類、執(zhí)行父類構(gòu)造方法和重寫doGet()方法實(shí)現(xiàn)數(shù)據(jù)交互。關(guān)鍵代碼如圖15所示。

圖15 數(shù)據(jù)交互工具包的使用

4 結(jié)語

該系統(tǒng)可以保證軍事訓(xùn)練抽考過程公平公正、完全隨機(jī),排除了抽考過程中的人為因素,大大減輕了組考負(fù)擔(dān),主考單位、被考單位、考核內(nèi)容一目了然,尤其適合于建制級別高、覆蓋面廣、駐點(diǎn)分散的單位,可以在各單位組織抽考過程中發(fā)揮重要作用。

TP311.5

A

10.15913/j.cnki.kjycx.2021.01.005

2095-6835(2021)01-0013-04

黑子微(1992—),男,河北趙縣人,本科,助理工程師,研究方向為計算機(jī)編程、網(wǎng)頁設(shè)計制作、數(shù)據(jù)庫維護(hù)。

〔編輯:嚴(yán)麗琴〕

猜你喜歡
工具包客戶端服務(wù)器
你的手機(jī)安裝了多少個客戶端
“人民網(wǎng)+客戶端”推出數(shù)據(jù)新聞
——穩(wěn)就業(yè)、惠民生,“數(shù)”讀十年成績單
谷歌云與Digital Asset合作推出區(qū)塊鏈工具包
2018年全球服務(wù)器市場將保持溫和增長
虛擬專用網(wǎng)絡(luò)訪問保護(hù)機(jī)制研究
運(yùn)用MATLAB軟件求解高中數(shù)學(xué)中的線性和非線性規(guī)劃問題
職業(yè)安全衛(wèi)生防護(hù)“工具包”應(yīng)用
建議為基層站點(diǎn)配備軟硬件“工具包”
新華社推出新版客戶端 打造移動互聯(lián)新聞旗艦
用獨(dú)立服務(wù)器的站長注意了
邢台市| 海原县| 山西省| 乌拉特前旗| 陆丰市| 调兵山市| 伽师县| 文昌市| 乡宁县| 云龙县| 噶尔县| 长武县| 三原县| 赞皇县| 清河县| 普洱| 噶尔县| 曲麻莱县| 阜新市| 临城县| 湟中县| 蓝山县| 宿松县| 高淳县| 班玛县| 宜都市| 建昌县| 洱源县| 绥滨县| 太白县| 济宁市| 龙里县| 太原市| 天台县| 象州县| 拉孜县| 阿荣旗| 额尔古纳市| 任丘市| 桃园县| 隆昌县|