劉思云,吳煒峰
(嶺南師范學(xué)院信息工程學(xué)院,湛江 524048)
大學(xué)生電子設(shè)計競賽從1994年舉辦第一屆至今一直受到教育部的大力倡導(dǎo),競賽有效促進了我國高等學(xué)校及高職院校信息與電子類學(xué)科課程體系和內(nèi)容的教學(xué)改革。隨著競賽舉辦次數(shù)的增加,每屆參賽人數(shù)也隨之大增。在如此龐大的競賽信息面前,如果仍然延用原來的信息獲取方式,無論是從效率還是便捷性等角度,都已遠遠不能滿足主辦方和參賽單位的實際需求。為了能讓主辦方和參賽單位更加高效快速地查詢相關(guān)競賽信息,需要建立一個功能較完善的電子設(shè)計競賽查詢系統(tǒng)。
本電子設(shè)計競賽查詢系統(tǒng),可以使主辦單位查詢、管理和分析競賽數(shù)據(jù)等相關(guān)工作變得更加系統(tǒng)化,大大提高工作效率。參賽學(xué)校也能在賽前通過查詢系統(tǒng)了解相關(guān)競賽參與信息,分析歷屆得失,提前做好充分準備,還能在賽后快速和準確查詢相應(yīng)的競賽結(jié)果。
系統(tǒng)使用Python語言,采用Layered pattern分層架構(gòu)模式,把數(shù)據(jù)提取、操作界面、業(yè)務(wù)邏輯進行層次拆解,每個獨立的層次為其上層抽象提供服務(wù)。
本系統(tǒng)分為四個層次,分別為表示層、應(yīng)用層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。表示層為用戶提供整個系統(tǒng)查詢界面,負責與用戶互動;數(shù)據(jù)訪問層由數(shù)據(jù)庫構(gòu)成,能保存和提供數(shù)據(jù)。用戶向表示層發(fā)起操作請求,轉(zhuǎn)經(jīng)應(yīng)用層后繼續(xù)傳遞到業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層將根據(jù)請求信息發(fā)起新的請求并傳遞給數(shù)據(jù)訪問層,最后數(shù)據(jù)訪問層處理請求后會返回一個結(jié)果集,結(jié)果集傳遞給用戶,整個流程如圖1所示。
圖1 系統(tǒng)架構(gòu)
本系統(tǒng)分為用戶管理、競賽章程查詢、競賽數(shù)據(jù)和競賽分析等多個功能模塊,此外可以根據(jù)需要添加或補充其他功能模塊。系統(tǒng)功能如圖2所示。
圖2 系統(tǒng)功能
(1)用戶管理。本系統(tǒng)的用戶登錄身份分為參賽學(xué)校和主辦單位,參賽學(xué)校的登錄賬號設(shè)置為對應(yīng)參賽編號,初始密碼統(tǒng)一為123456,而主辦方登錄的賬號和密碼是唯一的。當用戶身份被成功識別后,系統(tǒng)會根據(jù)識別結(jié)果授予用戶不同的功能權(quán)限。用戶登錄成功后可以修改自己的登錄密碼。
(2)競賽章程。競賽章程一般是指由競賽主辦單位在賽前根據(jù)競賽計劃而擬定的相關(guān)競賽政策和規(guī)則。本系統(tǒng)的競賽章程模塊包括六個方面,分別是:組織與贊助、競賽內(nèi)容、競賽規(guī)則、競賽流程、競賽形式和競賽評獎,如圖3所示。
圖3 競賽章程組成
(3)競賽錄入。該模塊主要負責幫助主辦單位賽后錄入相關(guān)競賽數(shù)據(jù),并可以及時更新,還可以用來幫助主辦單位補錄相關(guān)數(shù)據(jù),有效避免系統(tǒng)漏錄個別參賽單位競賽結(jié)果的情況出現(xiàn)。只有主辦單位有此功能操作權(quán)限。
(4)競賽查詢。該部分是整個競賽查詢系統(tǒng)的主體,主要指用戶通過輸入和篩選相關(guān)信息來查詢自己想要獲取的數(shù)據(jù)。本系統(tǒng)數(shù)據(jù)以浙江省電子競賽數(shù)據(jù)為基礎(chǔ),包括2016—2020年獲獎名單和對應(yīng)項目,名單包括參賽隊伍編號、獲獎項目、參賽隊員名單、參賽學(xué)校、指導(dǎo)教師、獲獎獎次和組別(本科或高職高專,獲獎項目即參賽題目。本系統(tǒng)授予主辦單位和參賽學(xué)校有不同的查詢權(quán)限,其中主辦單位查詢功能如圖4所示。
圖4 主辦單位競賽查詢功能
(5)競賽分析。主要是指對競賽數(shù)據(jù)進行科學(xué)統(tǒng)計分析,分為總體競賽分析和參賽單位競賽分析兩部分。主辦單位可以進行總體獲獎數(shù)量分析、參賽總?cè)藬?shù)分析和各參賽單位獲獎率分析。參賽學(xué)??梢詫Ρ締挝槐緦煤蜌v屆競賽情況進行分析,其功能如圖5所示。
圖5 參賽學(xué)校競賽分析功能
系統(tǒng)能使用戶從賽前了解競賽辦法,到賽后查詢競賽結(jié)果和數(shù)據(jù)分析等信息。系統(tǒng)授予用戶不同的功能權(quán)限,分為參賽方和主辦方。參賽方成功登錄本系統(tǒng)后,可以查詢競賽章程、本單位當年和歷年競賽數(shù)據(jù),還可以對本單位競賽數(shù)據(jù)進行統(tǒng)計分析。主辦方成功登錄后,除了具備參賽單位所具備的功能權(quán)限外,還可以錄入、修改或者刪除相關(guān)競賽數(shù)據(jù),也可對所有競賽數(shù)據(jù)進行統(tǒng)計分析。
數(shù)據(jù)庫表的設(shè)計是指圍繞系統(tǒng)需求在某一數(shù)據(jù)庫上設(shè)計數(shù)據(jù)表結(jié)構(gòu)的過程,以下對主要數(shù)據(jù)庫表進行設(shè)計。
(1)參賽單位登錄賬戶管理表。此表主要用于保存參賽單位登錄賬號信息,具體如表1所示。
表1 參賽單位賬戶管理
(2)競賽結(jié)果數(shù)據(jù)表。此表主要用于保存2016—2020年競賽獲獎名單及項目等信息,如表2所示。
表2 競賽數(shù)據(jù)
系統(tǒng)使用Wxpython的GUI圖形庫創(chuàng)建桌面應(yīng)用程序,采用MySQL關(guān)系型數(shù)據(jù)庫,查詢速度快。以下闡述幾個主要功能模塊的實現(xiàn)。
用戶登錄時,會根據(jù)登錄身份來賦予相應(yīng)功能權(quán)限,登錄界面如圖6所示。
圖6 系統(tǒng)登錄界面
系統(tǒng)登錄界面密碼下方有兩個單選框,分別代表主辦方和參賽單位。先勾選對應(yīng)單選框,然后輸入相應(yīng)的賬號和密碼,點擊登錄按鈕后界面會自動將用戶身份信息反饋給系統(tǒng)。參賽登錄成功后進入查詢系統(tǒng)。
此模塊界面左邊面板有六個不同按鈕,分別代表“組織與贊助”“競賽規(guī)則”“競賽內(nèi)容”“競賽流程”“競賽形式”和“競賽評獎”。用戶可以通過點擊不同按鈕,在右邊面板查看自己想要獲取的競賽信息,如圖7所示。主辦單位和參賽學(xué)校,都具對此功能模塊有一定的使用權(quán)限。
圖7 競賽章程查詢界面效果
此功能主要指賽后主辦單位對競賽數(shù)據(jù)的實時更新及補錄個別參賽單位的競賽數(shù)據(jù),只要在錄入界面輸入競賽數(shù)據(jù),錄完點擊保存按鈕,彈出顯示“更新成功!”的對話框,即表明已成功完成一次競賽數(shù)據(jù)的錄入操作,效果如圖8所示。競賽數(shù)據(jù)錄入關(guān)鍵代碼如下所示。
圖8 競賽數(shù)據(jù)錄入界面效果
此模塊分為參賽學(xué)校競賽數(shù)據(jù)查詢和主辦單位競賽數(shù)據(jù)查詢兩部分。
查詢參賽單位數(shù)據(jù)時,用戶先勾選相應(yīng)競賽年份,再輸入相應(yīng)參賽編號或參賽單位名稱,點擊查詢按鈕就可以查看相應(yīng)結(jié)果,如圖9和圖10所示。查詢競賽總體數(shù)據(jù)時,系統(tǒng)會先識別用戶輸入的競賽年份和獲獎獎次信息,然后在界面下方顯示所有符合查詢條件的結(jié)果。界面右上方有個統(tǒng)計結(jié)果功能按鈕,方便用戶每一次查詢操作結(jié)束后查看具體數(shù)據(jù),如圖11所示。
圖9 參賽單位查詢界面效果
圖10 參賽單位競賽查詢效果
圖11 主辦單位競賽數(shù)據(jù)查詢效果
本系統(tǒng)的競賽數(shù)據(jù)分析模塊分為兩部分,分別為參賽單位競賽數(shù)據(jù)分析和主辦方競賽數(shù)據(jù)分析。參賽學(xué)校登錄后可以查詢本單位數(shù)據(jù)分析,而主辦單位登錄后可以查詢競賽數(shù)據(jù)總體分析和各參賽單位數(shù)據(jù)分析。通過調(diào)用Matplotlib庫,生成不同的折線圖來直觀顯示各種競賽分析情況??傮w獲獎數(shù)量數(shù)據(jù)分析效果如圖12。參賽單位獲獎次數(shù)數(shù)據(jù)分析效果如圖13所示。
圖12 總體獲獎數(shù)量分析效果
圖13 參賽單位獲獎次數(shù)分析效果
該電子設(shè)計競賽查詢系統(tǒng)能使主辦單位和參賽學(xué)校能快速充分掌握歷屆競賽情況,以便總結(jié)以往賽事經(jīng)驗,并以此為依托,因地制宜,能更好地舉辦或準備下一次比賽,不斷提高工作效率和擴大工作成果。