劉思云,吳煒峰
(嶺南師范學院信息工程學院,湛江 524048)
大學生電子設計競賽從1994年舉辦第一屆至今一直受到教育部的大力倡導,競賽有效促進了我國高等學校及高職院校信息與電子類學科課程體系和內容的教學改革。隨著競賽舉辦次數的增加,每屆參賽人數也隨之大增。在如此龐大的競賽信息面前,如果仍然延用原來的信息獲取方式,無論是從效率還是便捷性等角度,都已遠遠不能滿足主辦方和參賽單位的實際需求。為了能讓主辦方和參賽單位更加高效快速地查詢相關競賽信息,需要建立一個功能較完善的電子設計競賽查詢系統。
本電子設計競賽查詢系統,可以使主辦單位查詢、管理和分析競賽數據等相關工作變得更加系統化,大大提高工作效率。參賽學校也能在賽前通過查詢系統了解相關競賽參與信息,分析歷屆得失,提前做好充分準備,還能在賽后快速和準確查詢相應的競賽結果。
系統使用Python語言,采用Layered pattern分層架構模式,把數據提取、操作界面、業務邏輯進行層次拆解,每個獨立的層次為其上層抽象提供服務。
本系統分為四個層次,分別為表示層、應用層、業務邏輯層和數據訪問層。表示層為用戶提供整個系統查詢界面,負責與用戶互動;數據訪問層由數據庫構成,能保存和提供數據。用戶向表示層發起操作請求,轉經應用層后繼續傳遞到業務邏輯層,業務邏輯層將根據請求信息發起新的請求并傳遞給數據訪問層,最后數據訪問層處理請求后會返回一個結果集,結果集傳遞給用戶,整個流程如圖1所示。

圖1 系統架構
本系統分為用戶管理、競賽章程查詢、競賽數據和競賽分析等多個功能模塊,此外可以根據需要添加或補充其他功能模塊。系統功能如圖2所示。

圖2 系統功能
(1)用戶管理。本系統的用戶登錄身份分為參賽學校和主辦單位,參賽學校的登錄賬號設置為對應參賽編號,初始密碼統一為123456,而主辦方登錄的賬號和密碼是唯一的。當用戶身份被成功識別后,系統會根據識別結果授予用戶不同的功能權限。用戶登錄成功后可以修改自己的登錄密碼。
(2)競賽章程。競賽章程一般是指由競賽主辦單位在賽前根據競賽計劃而擬定的相關競賽政策和規則。本系統的競賽章程模塊包括六個方面,分別是:組織與贊助、競賽內容、競賽規則、競賽流程、競賽形式和競賽評獎,如圖3所示。

圖3 競賽章程組成
(3)競賽錄入。該模塊主要負責幫助主辦單位賽后錄入相關競賽數據,并可以及時更新,還可以用來幫助主辦單位補錄相關數據,有效避免系統漏錄個別參賽單位競賽結果的情況出現。只有主辦單位有此功能操作權限。
(4)競賽查詢。該部分是整個競賽查詢系統的主體,主要指用戶通過輸入和篩選相關信息來查詢自己想要獲取的數據。本系統數據以浙江省電子競賽數據為基礎,包括2016—2020年獲獎名單和對應項目,名單包括參賽隊伍編號、獲獎項目、參賽隊員名單、參賽學校、指導教師、獲獎獎次和組別(本科或高職高專,獲獎項目即參賽題目。本系統授予主辦單位和參賽學校有不同的查詢權限,其中主辦單位查詢功能如圖4所示。

圖4 主辦單位競賽查詢功能
(5)競賽分析。主要是指對競賽數據進行科學統計分析,分為總體競賽分析和參賽單位競賽分析兩部分。主辦單位可以進行總體獲獎數量分析、參賽總人數分析和各參賽單位獲獎率分析。參賽學校可以對本單位本屆和歷屆競賽情況進行分析,其功能如圖5所示。

圖5 參賽學校競賽分析功能
系統能使用戶從賽前了解競賽辦法,到賽后查詢競賽結果和數據分析等信息。系統授予用戶不同的功能權限,分為參賽方和主辦方。參賽方成功登錄本系統后,可以查詢競賽章程、本單位當年和歷年競賽數據,還可以對本單位競賽數據進行統計分析。主辦方成功登錄后,除了具備參賽單位所具備的功能權限外,還可以錄入、修改或者刪除相關競賽數據,也可對所有競賽數據進行統計分析。
數據庫表的設計是指圍繞系統需求在某一數據庫上設計數據表結構的過程,以下對主要數據庫表進行設計。
(1)參賽單位登錄賬戶管理表。此表主要用于保存參賽單位登錄賬號信息,具體如表1所示。

表1 參賽單位賬戶管理
(2)競賽結果數據表。此表主要用于保存2016—2020年競賽獲獎名單及項目等信息,如表2所示。

表2 競賽數據
系統使用Wxpython的GUI圖形庫創建桌面應用程序,采用MySQL關系型數據庫,查詢速度快。以下闡述幾個主要功能模塊的實現。
用戶登錄時,會根據登錄身份來賦予相應功能權限,登錄界面如圖6所示。

圖6 系統登錄界面
系統登錄界面密碼下方有兩個單選框,分別代表主辦方和參賽單位。先勾選對應單選框,然后輸入相應的賬號和密碼,點擊登錄按鈕后界面會自動將用戶身份信息反饋給系統。參賽登錄成功后進入查詢系統。
此模塊界面左邊面板有六個不同按鈕,分別代表“組織與贊助”“競賽規則”“競賽內容”“競賽流程”“競賽形式”和“競賽評獎”。用戶可以通過點擊不同按鈕,在右邊面板查看自己想要獲取的競賽信息,如圖7所示。主辦單位和參賽學校,都具對此功能模塊有一定的使用權限。

圖7 競賽章程查詢界面效果
此功能主要指賽后主辦單位對競賽數據的實時更新及補錄個別參賽單位的競賽數據,只要在錄入界面輸入競賽數據,錄完點擊保存按鈕,彈出顯示“更新成功!”的對話框,即表明已成功完成一次競賽數據的錄入操作,效果如圖8所示。競賽數據錄入關鍵代碼如下所示。


圖8 競賽數據錄入界面效果
此模塊分為參賽學校競賽數據查詢和主辦單位競賽數據查詢兩部分。
查詢參賽單位數據時,用戶先勾選相應競賽年份,再輸入相應參賽編號或參賽單位名稱,點擊查詢按鈕就可以查看相應結果,如圖9和圖10所示。查詢競賽總體數據時,系統會先識別用戶輸入的競賽年份和獲獎獎次信息,然后在界面下方顯示所有符合查詢條件的結果。界面右上方有個統計結果功能按鈕,方便用戶每一次查詢操作結束后查看具體數據,如圖11所示。

圖9 參賽單位查詢界面效果

圖10 參賽單位競賽查詢效果

圖11 主辦單位競賽數據查詢效果
本系統的競賽數據分析模塊分為兩部分,分別為參賽單位競賽數據分析和主辦方競賽數據分析。參賽學校登錄后可以查詢本單位數據分析,而主辦單位登錄后可以查詢競賽數據總體分析和各參賽單位數據分析。通過調用Matplotlib庫,生成不同的折線圖來直觀顯示各種競賽分析情況。總體獲獎數量數據分析效果如圖12。參賽單位獲獎次數數據分析效果如圖13所示。

圖12 總體獲獎數量分析效果

圖13 參賽單位獲獎次數分析效果
該電子設計競賽查詢系統能使主辦單位和參賽學校能快速充分掌握歷屆競賽情況,以便總結以往賽事經驗,并以此為依托,因地制宜,能更好地舉辦或準備下一次比賽,不斷提高工作效率和擴大工作成果。