陳 莉 張耀斌
VB平臺下籃球比賽工作系統的設計與實現
陳 莉 張耀斌
我校體育館安裝了一塊5.12 m(長)×2.88 m(寬)P5全彩LED顯示屏,我們希望這塊大屏能在學校的體育傳統項目——籃球比賽中充分發揮其顯示的作用。考慮到專業的比賽系統價格昂貴,筆者嘗試著編寫了一個單機版的程序實現這一功能,接下來就談談關于這個籃球比賽工作系統的開發過程。
筆者選擇了VB作為該系統的開發平臺,主要從以下幾方面考慮。
(1)從客戶的需要角度來看,最終只需在大屏上顯示比賽的基本信息以及比賽中的比分、犯規記錄以及計時等數據,VB的常用控件都能實現。
(2)從開發的技術角度來看,VB是基本的高級程序語言,可讀性好,對于開發者的技術要求不高。
(3)從系統的操控性來看,所有的顯示信息只需一個工作人員在單機上記錄控制,再將比賽信息輸出到大屏上,那么一臺計算機就可以完成所有的工作。
考慮到這只是一個單機版的程序,沒有多用戶登錄,無須在互聯網上發布,因此對于數據安全的要求不高,再從程序的功能上看涉及的關系表和字段都不多,因此選用Access實現。
整個數據庫中設計了:球隊信息表、隊員信息表、比賽對陣表、比賽信息表、比賽記錄表、時間記錄表這6張表。其中,球隊信息表和隊員信息表分別用于記錄球隊信息和隊員信息;比賽對陣表中記錄了場次和對陣信息;比賽信息表中記錄了比賽名稱、當前比賽場次和小節;比賽記錄表中記錄了比賽進行中的所有情況,如投球得分、罰球命中、罰球未中、犯規、暫停等信息;另外為了防止工作人員的誤操作,程序中還設計了撤銷功能,所以筆者用時間記錄表記錄下撤銷或關閉窗體時的時間,待恢復時能繼續接著計時。
1.系統結構圖(如圖1所示)

圖1
2.主要功能實現及開發思路
(1)賽前準備
賽前準備主要是清空數據庫里原有的所有記錄信息,并導入本次比賽的相關數據。這里主要提供了批量導入和逐個修改相結合的功能。
根據通常用戶的習慣,對于一次比賽所有參賽球隊的信息可以用Excel文件一次性批量導入到team(球隊信息表)中。這里主要使用了CommonDialog控件來獲取Excel文件的路徑,再通過ADODB連接Access數據庫實現信息的逐條導入,在導入的過程中還要考慮到導入數據是否重復等問題。成功導入后還將導入信息顯示在ListBox控件中,以便用戶及時檢查信息是否有誤。
導入隊員信息的方法跟導入球隊是類似的,但這里筆者采用了逐隊導入,也就是讓各球隊按要求提供自己的隊員名單,再在球隊信息已導入的前提下,通過ComboBox控件列出表team中所有的球隊信息,再逐一選擇來導入相應的隊員信息。
對于球隊和隊員信息提供批量導入的功能外,查詢、添加、修改、刪除的功能也是必不可少的。
(2)比賽設置
這里主要設置兩類信息:一是本次比賽的相關信息,如比賽名稱、場次選擇、賽制設置等,主要影響的是比賽中大屏顯示的信息以及倒計時問題;二是對陣信息(如圖2所示)。

圖2
對陣信息一般是在比賽前通過抽簽臨時產生的,所以這里主要使用逐條添加設置的方法。
(3)比賽開始
這是比賽過程中操作的部分,設計了“比賽控制”和“比賽顯示”兩個界面(如圖3、圖4所示),通過分屏顯示的辦法讓控制界面留在工作計算機上,而讓顯示界面顯示在比賽大屏上,這里需要精確地算好顯示界面的位置,在控制界面加載的同時用代碼:game_ show.Show game_show.Left = …… game_show.Top = 0加以控制(game_show為“比賽顯示”界面的名稱)。這兩個界面大小可以一樣也可以不一樣,但“比賽顯示”界面的尺寸必須考慮與大屏的分辨率相匹配。

圖3 比賽控制界面

圖4 比賽顯示界面
從內容上看這兩個界面基本一致,只是顯示界面上沒有控制按鈕,而控制界面上省略了犯規標記燈。但在控制界面里的每一個操作都會在兩個界面上同時反饋,例如某個隊員得分后,通過代碼:lab_MemScoreA(Index) = MemScore和 game_show. lab_MemScoreA(Index) = MemScore把算好的得 分(MemScor)同時顯示在當前控制界面的lab_MemScoreA和顯示界面(game_show)的lab_MemScoreA標簽中,以此實現控制界面和顯示界面的同步。
(4)賽后統計
比賽中產生的所有信息都記錄在了表detail(比賽記錄表)中(如圖5所示),要實現賽后的技術統計也就不難了。在這個界面里使用了MSFlexGrid控件來顯示查詢結果,并設計了導出成Excel文件和打印輸出的功能。

圖5
經過比賽的應用實踐,發現這個系統在后續開發中可以從以下幾方面進一步深入完善。
1.與24秒計時器連接
目前該程序的開始或暫停的控制是靠操作人員聽裁判的哨音執行的,而賽場另有一套計時系統,尤其是籃球比賽中有“24秒”的進攻規則,場上專門有24秒計時器,一旦球被控制在某一方24秒內沒有完成投籃,哨音就會響起,比賽就會暫停,則發球權判給對方。
因此考慮系統最好能與24秒計時器相連,需要在24秒計時器安裝前完成計算機與計時器的通訊連接,并將其計時的數據導入程序系統,這樣就不用再靠聽裁判的哨音暫停比賽從而發生計時上的誤差。
2.用.net實現網絡發布
目前該系統是用VB平臺開發的,單機操作與對外顯示沒有問題,但如果換成.net架構,不僅可以便于多用戶操作,還可以實現在互聯網上發布比賽的實時動態。
陳莉,本科,中教一級。張耀斌,本科,中教高級。江蘇省南京市人民中學,210005