刘尊佳,王 斌
湖北省第十四届运动会(以下简称“省运会”)于2014年10月份在荆州举行,竞赛项目分为竞技体育青少年类(以下简称“青少类”)和全民健身成年人类(包括高校、少数民族、公安民警、农民、职工、残疾人6种类别,以下简称“成人类”),共62个项目[1]。省运会具有竞赛项目多、参赛运动员数量多、计分计牌方式复杂、赛事持续时间长、关键比赛集中等特点,利用成绩管理系统实现对省运会成绩管理,能够快速、准确的统计和发布成绩,满足成绩管理的需求。然而,现有的成绩管理系统主要应用于国际、国内的大型体育赛事和一些田径运动会,其竞赛项目都比较规范,计分计牌方式较为统一,这些都不能完全满足省运会项目多、计分计牌方式复杂的需求。根据省运会的特点和要求,设计开发一套能够完全满足省运会需求的省运会成绩管理系统(以下简称“成管系统”)具有十分重要的意义,一方面,不仅能够使省运会成绩管理顺利进行,而且还能够为综合性体育赛事的计算机成绩管理提供一个参考;另一方面,组建省运会成绩数据库,便于成绩的查询与统计,以及对成绩进行相关的分析,了解我省竞技体育青少年类和全民健身成年人类的发展状况,为我省的体育发展提供指导。
省运会具有竞赛项目多、参赛运动员数量多、计分计牌方式复杂、赛事持续时间长、关键比赛集中等特点,为了满足省运会成绩管理及其准确性和时效性的要求,所设计开发的系统需要满足以下要求。
1.1.1 准确性
省运会作为一个大型的综合体育赛事,受到全省乃至全国观众与媒体的广泛关注,竞赛成绩、三榜的发布能够在较短时间内广泛传播。在竞赛成绩、三榜的统计与发布的过程中,如果出现差错,就会产生较为恶劣的影响,例如:观众与媒体会对省运会承办方的组织能力、省运会的公平性产生怀疑,也会影响各代表队的战略决策等。因此,在竞赛成绩、三榜的统计与发布的过程中,不能出现任何差错,要准确无误的统计、发布竞赛成绩和三榜。
1.1.2 灵活性
省运会的项目种类繁多,成人类的项目在比赛过程中也可能会做微调;省运会的计分计牌方式复杂,各项目计分计牌方式不尽相同,在比赛过程中也有可能会因为特殊情况而改变计分计牌方式;成人类的项目,在比赛之前可临场更换运动员。以上几点给省运会的成绩统计增加了难度,为了保证省运会成绩统计的顺利进行,要保证成管系统操作的灵活性,能够让用户自定义设定竞赛项目、计分计牌方式等。
1.1.3 智能化
智能化是判断一个软件性能的重要标准之一。成管系统在录入成绩时应尽量简化,例如:根据运动员的名次或成绩判断运动员的等级、计分、奖牌等信息。1)省运会的项目在比赛结束之后,要求在短时间之内能够将成绩进行统计并发布,成管系统的智能化能够节约赛后竞赛成绩录入、变更、统计和生成实时三榜的时间,让竞赛成绩、三榜尽快发布;2)系统的智能化是为了减少用户赛后的工作量,让用户能够高效率的录入竞赛成绩,避免用户过度疲劳;3)系统的智能化是为了成绩统计的准确性,系统根据竞赛成绩或名次、竞赛规则自动生成奖牌、计分等信息,不易出错[2]。
1.1.4 安全性
系统的安全性是开发系统需要考虑的首要问题之一。成管系统需要存储所有比赛项目的运动员及其成绩信息,如果系统存在安全漏洞,就有可能被攻击造成数据的丢失,甚至有可能被篡改。数据丢失或被篡改就会导致成绩统计出现误差,所发布的竞赛成绩和三榜也就失去权威性,功亏一篑。因此,必须要确保成管系统数据的安全,数据的真实、准确是成绩准确统计的根本保证。
根据省运会竞赛规程的要求以及成绩统计的需要,明确成管系统的主要功能为:录入省运会的竞赛成绩,统计得出最终的三榜。成管系统的需求也要紧紧围绕其所需实现的功能进行开展。因此,由成管系统所需实现的功能可以得出成管系统的需求如下:录入与竞赛成绩相关的参赛单位信息、项目信息、运动员信息及其报名信息等;录入竞赛成绩信息并计算出与其相关的奖牌信息、计分信息等;对最终成绩信息进行统计,得出最终的三榜。
由于省运会本身的特点,赛中录入竞赛成绩时的工作量非常大。为了减少用户在赛中的工作量,可在比赛之前做好充分的准备。根据省运会各项目的竞赛阶段可将系统需求划分如下:赛前录入各个参赛单位信息、包括单位和性别等信息的运动员信息、包括最高纪录和运动员等级标准的项目信息,以及运动员的报名信息;赛中,在项目比赛结束后录入竞赛成绩或名次,并计算出相应的奖牌信息和计分信息等;赛后,对各项目的竞赛成绩信息进行统计,按照省运会的竞赛规则得出三榜。
根据系统的需求、所要实现的功能,结合省运会的竞赛项目特征,在实现基本功能的基础上本着简单明了、便于操作的原则设计成管系统。
根据省运会的特点及需求,系统采用C/S架构,多个用户可以同时利用客户端通过网络访问服务器,实现对省运会运动员、竞赛项目、竞赛成绩等信息的同步管理。为了应对多用户,及各用户事务请求比较多的情况,服务器端采用多线程和线程池技术,充分利用计算机cpu及内存资源,加快了事务处理的速度,加大了服务器的事务处理的吞吐量;客户端对省运会相关信息进行处理或操作后,提交至服务器数据库。根据系统需求,系统总体结构设计如图1所示。
图1 系统总体结构设计
根据成管系统需求,依照符合第三范式规范、结构设计与操作设计相结合、尽量减少数据冗余等原则,设计了成管系统的数据库,共有8张表,分别为:单位表、运动员表、计分计牌方式表、竞赛项目表、成绩信息表、用户表、奖励与处罚表,数据库的E-R图如图2所示。
图2 成管系统E-R图
数据库的设计过程中,在数据库设计原则的基础上,充分考虑成管系统的功能和需求,设计了成管系统的数据库。一个运动员只属于一个单位,但每个单位可以有多个运动员;每个运动员可以报名参加多个项目,每个项目也有多个运动员报名,每个运动员报名参加某项目后就会生成一条报名信息,比赛结束后就会生成一条成绩信息。在满足以上数据逻辑的基础之上,根据系统的功能和需要,对数据库进行了完善。如:进行三榜统计的时候地方组、企业组要分开进行统计,因而在单位表中添加“单位类别”字段,用于统计三榜时区分单位所属的类别;竞赛项目有个人项目也有多人项目,运动员报名参加多人项目时,为了区分哪些运动员同队,特在报名和成绩信息表中添加了“队号”字段,用于识别同队运动员,成绩统计时同队运动员所得奖牌与计分仅算一次。
成管系统的设计紧紧围绕系统的功能和需求开展,在保证系统的安全性和稳定型的前提下,实现系统的功能、满足系统需求。在此基础之上,适当添加辅助性的功能支撑、服务于系统主要功能模块。成管系统的主要功能模块为项目设置模块、成绩录入模块、奖励与处罚模块、查询与统计模块。
2.3.1 项目设置模块
省运会竞赛项目繁多,计分计牌方式复杂,每个项目都有其相对应的等级标准和省运会的赛会纪录,且有些竞赛项目可能会临场进行调整,加大了项目设置模块设计的难度。鉴于省运会项目的特点,采用几项关键技术解决项目设置的难点,具体如下。
1)将各竞赛项目的计分计牌方式分类处理,单独存放,使用时调取。省运会青少类和群体类的项目计分计牌方式虽然繁多,但也有相同之处。对各项目竞赛规程的奖励规定进行梳理,得出省运会的计分计牌方式共有10种,如青少类的三大球计分计牌方式为:前六名按 7、5、4、3、2、1 枚金牌算,计分按金牌数×9计算,第7、8名积分双倍计算,即4、2分;成人类的评分项目的计分计牌方式为:获得1-2名计一等奖,3-4名计二等奖,5-8名计三等奖。一等奖、二等奖、三等奖分别按8分、6分、3分计分,均颁发奖牌;残疾人项目的计分方式相对较为特殊,项目录取 6 人时,计分依次为 7、5、4、3、2、1 分,录取五名时按6、4、3、2、1 分计算,录取前四名时按 5、3、2、1 分计算,录取前三名时按 4、2、1 分计算,依次类推[1]。
为了满足成管系统的需求、便于项目计分计牌方式管理,将计分计牌方式进行分类,根据规程要求设置各竞赛项目类型各名次的奖牌数量、奖牌类型和计分,并将其单独存放在数据表中。对于残疾人项目的特殊计分计牌方式,在以上设定的基础之上,采用“倒序”计算方法来计算不同录取名次时各名次的计分和奖牌。设置竞赛项目的时候,根据项目需求,选择计分计牌方式。
2)对竞赛项目进行四级分类,可以自定义设置项目。为了便于省运会成绩的统计和管理,根据省运会项目的特点将竞赛项目进行四级分类,分别为:竞赛类别、项目类别、组别、项目名称。
3)针对每个有需要的项目,分别录入其最高记录和等级标准。为了减轻赛中的工作量和实现系统的智能化,对于有最终成绩的项目,如田径、游泳、射击、举重等,在设置项目的时候录入其相对应的等级标准和赛会纪录,赛中录入成绩的时候,系统就可根据项目的等级标准和赛会纪录来判断运动员是否达等级、破纪录。
另外,在设置项目的时候还需录入项目的成绩排序方式、成绩单位、参赛人数、晋级决赛人数、决赛录取人数等,用于系统后期的相关判断。
2.3.2 竞赛成绩录入模块
竞赛成绩录入模块是成管系统的核心模块,其他功能模块均支撑或服务于该模块,该模块设计是否完善,直接影响该系统的整体性能。为了满足竞赛成绩录入模块的稳定性、信息准确性、操作尽量简化、可能临时变更运动员的需求,关键设计如下:
1)将竞赛成绩录入分为录入成绩、录入名次两类。省运会的虽然繁多,但最终的竞赛成绩只有两类,一类为有最终量化成绩和名次,如田径、游泳等项目;另一类为没有最终量化成绩,仅有最终名次,如篮球、羽毛球、摔跤等对抗类项目。对于第一类项目,只需录入各运动员最终的量化成绩即可,而对于第二类,只需录入各运动员的最终名次即可。
2)成绩校验功能,完善运动员竞赛成绩信息。对于录入最终成绩的竞赛项目,在录入成绩时,系统能够根据该项目的运动员等级标准和赛会纪录判断运动员是否达等级、破纪录。成绩录入完成后,点击“成绩校验”按钮,系统根据竞赛成绩自动判断运动员的名次、奖牌和计分,确认后将添加到成绩信息中去;对于无最终成绩仅录入最终名次的项目 (残疾人项目除外),在录入名次时,系统根据名次自动添加奖牌和计分;对于残疾人项目,录入成绩或名次录入后,点击“成绩校验”按钮,系统根据名次或成绩判断相对应的奖牌和计分。
3)成绩简化录入。对于时间类的成绩,在录入成绩时仅需录入数值,系统会根据项目的成绩单位将其自动转换为国际统 一 格 式 。 如 2min8s32、1h32min24s 分 别 录 入 “2.0832”、“1.3224”,系统会将其转换为 2:08.32、1:32:24。
另外,为了满足成人类项目可能会临时变更运动员的需求,成绩录入模块也预留了添加新运动员及其竞赛成绩的功能。
2.3.3 奖励与处罚模块
省运会总规程有明确的奖牌计分的奖惩规定,如向省优秀运动队、解放军队输送运动员,实施金牌奖励等规定,也有对于违反资格规定者(如“雇佣军”、虚报年龄等)取消其竞赛成绩并对其代表队倒扣金牌和计分等处罚规定,并将其计算在三榜之内[2]。根据总规程的规定得知,奖励与处罚两者是相对立的,但其性质却是一样的,成管系统将其放置在一个功能模块内。奖励与处罚只针对参赛单位,不针对运动员;同时也与竞赛项目有关,根据具体情况,可能会处罚到不同的项目分级。因此,成管系统进行奖励或处罚时,需填写单位、项目四级分类(后面三级可有可无)、奖牌类型、奖牌数量、计分、原因,系统将其存储在奖惩信息表中。
2.3.4 查询与统计模块
成管系统的查询与统计模块是系统所要呈现的结果,也是成管系统的价值所在。该模块的查询包括运动员查询、项目查询、报名信息查询、竞赛成绩查询,成绩统计包括奖牌榜、金牌榜和总分榜。
为了便于筛选出用户需要的信息,查询功能支持多条件查询、模糊查询、范围查询,通过查询到的运动员信息或项目信息可链接到相对应的报名信息和成绩信息。
成绩统计根据统计需要选择项目级别和性别等信息进行统计,按照各单位的金牌、奖牌、总分等信息进行排序,生成金牌榜、奖牌榜和总分榜。如,可统计竞技体育青少年类的三榜,也可统计竞技体育青少年类、田径的三榜;可统计全民健身成年人类地方组的三榜、也可统计全民健身成年人类(职工)企业组的三榜。为了各单位的竞赛成绩信息和避免产生分歧,系统能够生成各单位与三榜信息相对应的竞赛成绩明细。
2.3.5 系统安全
系统安全是成管系统结果呈现是否准确性的前提保证,也是系统设计首要考虑的问题之一。为了确保成管系统数据的安全,首先,系统仅对固定IP用户开放固定数据库访问端口,用户使用客户端通过账号密码登录后,才能链接至服务器数据库。用户的IP、数据库访问端口、用户的账号和密码四项必须完全正确,否则就不可访问服务器数据库。其次,对客户端用户进行五级分类,每级用户的权限各不相同,尽量减少具有录入、修改成绩权限用户的数量。第三,服务器端安装数据库自动备份软件,可根据要求定时备份数据库,一份存储到本地,另一份通过电子邮件的方式备份至邮箱。
利用Qt为开发平台、C++为开发语言,MySQL为系统的数据库,设计开发了成管系统,包括服务器端和客户端。服务器端要求如下:操作系统为Microsoft Windows Server2008或Microsoft Windows Server2012系统,安装Microsoft.NET Framework组件、MySQL5.6.15、Microsoft Office2003办公套件,拥有对外开放的广域网IP;客户端要求如下:Microsoft Windows XP及以上版本的操作系统,安装Microsoft.NET Framework组件、MySQL5.6.15、Microsoft Office2003办公套件。
3.2.1 项目设置模块
项目设置主要用于设置、查询、修改竞赛项目信息,操作界面如图3所示。用户可根据需要,完全自定义设置项目的名称、参赛运动员数量、排名方式、等级标准、最高纪录等项目信息,以满足用户的需要。除竞赛项目名称以外的信息设置,是为了能够让系统能实现自动排名、判断达等级、破纪录等功能,以减少用户在赛中的工作量。
3.2.2 成绩录入模块
成绩录入模块是系统的核心模块,如图4所示。录入成绩时,用户首先选择需要选择所要录入成绩的项目、运动员,然后再录入成绩或名次。系统能够对录入成绩的运动员进行自动排名,并根据项目信息判断运动员是否达等级、破纪录,计算运动员的计分和奖牌数量和类型。系统预留了临时添加运动员的功能,若需要添加参赛运动员,用户录入运动员的单位、运动员编号、运动员姓名、竞赛成绩或名次,点击“添加按钮”即可。临时添加的运动员与原报名的运动员共同进行排名,没有差别。另外,若有特殊情况,用户也可根据需要自定义更改运动员的奖牌、计分、达等级等信息。
图4 成绩录入界面
3.2.3 查询与统计模块
系统提供了运动员信息、项目信息、报名信息、竞赛成绩信息的查询功能。现以成绩查询界面为例进行阐述。成绩查询界面如图5所示,系统支持精确查询、模糊查询、范围查询,用户可进行多条件查询,如:查询某竞赛项目预赛和决赛的竞赛成绩、查询某竞赛项目破纪录或达等级的运动员的竞赛成绩、查询某竞赛项目1-8名运动员的竞赛成绩等。
图5 成绩查询界面
成绩统计界面如图6所示,用户可选择所要统计的项目类别、性别、所属分组等,系统根据用户的条件筛选竞赛成绩信息和奖惩信息,统计生成三榜,如图6所示。录入的竞赛成绩生效后点击“更新数据”按钮即可更新三榜。双击三榜中的任意一行,可生成相对应单位的明细,标明该单位的奖牌、积分由哪些项目获得,清晰明了。若对三榜产生异议,可用三榜明细证明三榜的权威性,也使三榜具有说服力,避免产生分歧,确保省运会成绩统计的公平、公正、公开。
图6 成绩统计(三榜)界面
3.2.4 审核与发布模块
成绩审核模块将录入的成绩项目分为“未审核”、“审核未通过”、“审核通过”三类。在“未审核”分类下对项目进行审核,检查录入的成绩信息是否准确无误,若成绩有误,将其移交至“审核未通过”分类下进行修改,修改后重新提交至“未审核”分类下;若成绩无误,将其移交至“审核通过”分类下,此时所录入的成绩信息正式生效,用户可导出Excel表格,打印发布。所有的项目均采用统一的样式进行发布,如图7所示,整齐划一、美观大方。
图7 竞赛成绩发布样式
本系统在开发过程中,边开发边测试,随时发现问题随时解决,以保证系统能够实现预期功能,确保系统的稳定性与安全性,避免系统出现漏洞。系统测试过程主要如下:1)进行模拟测试。将湖北省第十三届运动会的数据录入系统,利用真实的省运会数据、模拟省运会成绩统计的情景,对系统的各功能、模块进行测试,检验系统的基本功能是否能够实现。2)进行特殊要求测试。系统在满足正常需求功能的基础上,对系统的一些的特殊要求进行测试,如残疾人各名次计分的计算、临时添加运动员、更改运动员计分或奖牌等,检验系统能否实现特殊要求的功能。3)进行大数量测试,向成管系统中录入10 000条运动员信息、100 000条报名和成绩信息对系统进行测试,检验系统是否能够流畅运行、是否会出现卡死、是否会出现长时间延迟等。4)进行多用户测试,构建临时服务器,30个客户端同时访问服务器,分别进行信息录入、查询、统计等操作,检验系统是否能够稳定运行。最后,进行真实数据测试。省运会的一些项目已从14年的4月份陆续开赛,截至6月底,已有十几项比赛已经结束,将本届省运会的竞赛信息录入系统进行测试,检验系统是否能够满足省运会的需求。
成管系统的设计与开发紧紧围绕省运会的需求进行,在保证系统安全稳定的前提下满足系统的功能需求,同时也从用户使用的角度考虑,保证系统的界面色调搭配合理、简洁大方、易于操作[3]。成管系统在满足以上要求的基础上,还具有以下特色:
成管系统可根据用户的需要,自定义筛选、统计竞赛成绩信息。用户可查询运动员信息、项目信息、报名信息和竞赛成绩信息,支持多条件查询、模糊查询、范围查询。成绩统计可根据用户需要生成三榜,并附有明细,避免产生分歧,确保三榜的准确性、权威性。所查询和统计的结果均可导出到Excel中去。
省运会为大型的综合性运动会,具有完整的赛会规则和竞赛规程,在赛前会制定正规的秩序册,包含有运动员信息、项目信息、报名信息等。为了减少用户的工作量,成管系统的单位管理模块、项目管理模块、运动员管理模块、报名信息管理模块均支持导入外部数据,用户根据摸板排列所需录入的信息,即可批量导入系统。同时,以上模块也支持导出已录入的相关信息。
省运会每四年召开一次,竞赛项目、规则都会有所变化,成绩统计的方式也有所不同,一般成管系统很难满足运动会变更后的需求[4]。该成管系统具有较大的灵活性,给用户广大的自定义操作空间,可根据需求自定义设置单位、竞赛项目、计分计牌方式、统计方式等信息,能够完成相应的成绩管理工作。该系统同样也适用于其它运动会(如学校田径运动会、地区综合运动会)的成绩管理,具有较强的移植性。
成管系统主要用于运动会的成绩管理,该系统可添加竞赛编排模块,根据各项目的编排规则(如田径的“蛇形”编排法、球类的“贝格尔”编排法等),利用特定算法来实现各项目的编排,该系统即可升级为综合运动会管理系统,应用于各单项运动会、综合性运动会,实现对运动会的编排和成绩管理功能。
根据湖北省第十四届运动会竞赛总规程的要求,利用Qt、C++、MySQL等计算机技术,设计开发了湖北省运动会成绩管理系统。用户可根据需求自定义设置参赛单位、竞赛项目、计分计牌方式等信息,能够实现对省运会竞赛成绩的录入、变更、查询、统计等功能。经测试,该系统能够满足省运会竞赛成绩管理的需要。本系统除具有强大的查询、统计功能外,还具有较强的可移植性和扩展性,也能够应用于其他的综合性运动会和单项运动会的成绩管理。
[1]湖北省第十三届运动会组委会.湖北省第十四届运动会竞赛规程[EB/OL].http://www.hbsport.gov.cn/syzt/2450.html.
[2]辛 丽,丁 锴,张国岗.江苏省体育赛事成绩信息系统研究[J].南京体育学院学报(自然科学版),2011(5).
[3]张来明.高校田径运动会管理系统网络化设计[J].山东体育科技,2003(2).
[4]陶 倩,耿锁奎,韩思音.基于竞赛规程的大型体育赛事竞赛成绩管理软件系统模型研究[J].山东体育科技,2014(1).