VB平台下篮球比赛工作系统的设计与实现
2016-11-14张耀斌
陈 莉 张耀斌
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