基于Python电子设计竞赛查询系统的设计与实现
2022-04-14刘思云吴炜峰
刘思云,吴炜峰
(岭南师范学院信息工程学院,湛江 524048)
0 引言
大学生电子设计竞赛从1994年举办第一届至今一直受到教育部的大力倡导,竞赛有效促进了我国高等学校及高职院校信息与电子类学科课程体系和内容的教学改革。随着竞赛举办次数的增加,每届参赛人数也随之大增。在如此庞大的竞赛信息面前,如果仍然延用原来的信息获取方式,无论是从效率还是便捷性等角度,都已远远不能满足主办方和参赛单位的实际需求。为了能让主办方和参赛单位更加高效快速地查询相关竞赛信息,需要建立一个功能较完善的电子设计竞赛查询系统。
本电子设计竞赛查询系统,可以使主办单位查询、管理和分析竞赛数据等相关工作变得更加系统化,大大提高工作效率。参赛学校也能在赛前通过查询系统了解相关竞赛参与信息,分析历届得失,提前做好充分准备,还能在赛后快速和准确查询相应的竞赛结果。
1 系统设计
1.1 系统架构设计
系统使用Python语言,采用Layered pattern分层架构模式,把数据提取、操作界面、业务逻辑进行层次拆解,每个独立的层次为其上层抽象提供服务。
本系统分为四个层次,分别为表示层、应用层、业务逻辑层和数据访问层。表示层为用户提供整个系统查询界面,负责与用户互动;数据访问层由数据库构成,能保存和提供数据。用户向表示层发起操作请求,转经应用层后继续传递到业务逻辑层,业务逻辑层将根据请求信息发起新的请求并传递给数据访问层,最后数据访问层处理请求后会返回一个结果集,结果集传递给用户,整个流程如图1所示。
图1 系统架构
1.2 系统功能设计
本系统分为用户管理、竞赛章程查询、竞赛数据和竞赛分析等多个功能模块,此外可以根据需要添加或补充其他功能模块。系统功能如图2所示。
图2 系统功能
(1)用户管理。本系统的用户登录身份分为参赛学校和主办单位,参赛学校的登录账号设置为对应参赛编号,初始密码统一为123456,而主办方登录的账号和密码是唯一的。当用户身份被成功识别后,系统会根据识别结果授予用户不同的功能权限。用户登录成功后可以修改自己的登录密码。
(2)竞赛章程。竞赛章程一般是指由竞赛主办单位在赛前根据竞赛计划而拟定的相关竞赛政策和规则。本系统的竞赛章程模块包括六个方面,分别是:组织与赞助、竞赛内容、竞赛规则、竞赛流程、竞赛形式和竞赛评奖,如图3所示。
图3 竞赛章程组成
(3)竞赛录入。该模块主要负责帮助主办单位赛后录入相关竞赛数据,并可以及时更新,还可以用来帮助主办单位补录相关数据,有效避免系统漏录个别参赛单位竞赛结果的情况出现。只有主办单位有此功能操作权限。
(4)竞赛查询。该部分是整个竞赛查询系统的主体,主要指用户通过输入和筛选相关信息来查询自己想要获取的数据。本系统数据以浙江省电子竞赛数据为基础,包括2016—2020年获奖名单和对应项目,名单包括参赛队伍编号、获奖项目、参赛队员名单、参赛学校、指导教师、获奖奖次和组别(本科或高职高专,获奖项目即参赛题目。本系统授予主办单位和参赛学校有不同的查询权限,其中主办单位查询功能如图4所示。
图4 主办单位竞赛查询功能
(5)竞赛分析。主要是指对竞赛数据进行科学统计分析,分为总体竞赛分析和参赛单位竞赛分析两部分。主办单位可以进行总体获奖数量分析、参赛总人数分析和各参赛单位获奖率分析。参赛学校可以对本单位本届和历届竞赛情况进行分析,其功能如图5所示。
图5 参赛学校竞赛分析功能
系统能使用户从赛前了解竞赛办法,到赛后查询竞赛结果和数据分析等信息。系统授予用户不同的功能权限,分为参赛方和主办方。参赛方成功登录本系统后,可以查询竞赛章程、本单位当年和历年竞赛数据,还可以对本单位竞赛数据进行统计分析。主办方成功登录后,除了具备参赛单位所具备的功能权限外,还可以录入、修改或者删除相关竞赛数据,也可对所有竞赛数据进行统计分析。
1.3 数据库表的设计
数据库表的设计是指围绕系统需求在某一数据库上设计数据表结构的过程,以下对主要数据库表进行设计。
(1)参赛单位登录账户管理表。此表主要用于保存参赛单位登录账号信息,具体如表1所示。
表1 参赛单位账户管理
(2)竞赛结果数据表。此表主要用于保存2016—2020年竞赛获奖名单及项目等信息,如表2所示。
表2 竞赛数据
2 系统实现
系统使用Wxpython的GUI图形库创建桌面应用程序,采用MySQL关系型数据库,查询速度快。以下阐述几个主要功能模块的实现。
2.1 用户登录
用户登录时,会根据登录身份来赋予相应功能权限,登录界面如图6所示。
图6 系统登录界面
系统登录界面密码下方有两个单选框,分别代表主办方和参赛单位。先勾选对应单选框,然后输入相应的账号和密码,点击登录按钮后界面会自动将用户身份信息反馈给系统。参赛登录成功后进入查询系统。
2.2 竞赛章程查询
此模块界面左边面板有六个不同按钮,分别代表“组织与赞助”“竞赛规则”“竞赛内容”“竞赛流程”“竞赛形式”和“竞赛评奖”。用户可以通过点击不同按钮,在右边面板查看自己想要获取的竞赛信息,如图7所示。主办单位和参赛学校,都具对此功能模块有一定的使用权限。
图7 竞赛章程查询界面效果
2.3 竞赛数据录入
此功能主要指赛后主办单位对竞赛数据的实时更新及补录个别参赛单位的竞赛数据,只要在录入界面输入竞赛数据,录完点击保存按钮,弹出显示“更新成功!”的对话框,即表明已成功完成一次竞赛数据的录入操作,效果如图8所示。竞赛数据录入关键代码如下所示。
图8 竞赛数据录入界面效果
2.4 竞赛数据查询
此模块分为参赛学校竞赛数据查询和主办单位竞赛数据查询两部分。
查询参赛单位数据时,用户先勾选相应竞赛年份,再输入相应参赛编号或参赛单位名称,点击查询按钮就可以查看相应结果,如图9和图10所示。查询竞赛总体数据时,系统会先识别用户输入的竞赛年份和获奖奖次信息,然后在界面下方显示所有符合查询条件的结果。界面右上方有个统计结果功能按钮,方便用户每一次查询操作结束后查看具体数据,如图11所示。
图9 参赛单位查询界面效果
图10 参赛单位竞赛查询效果
图11 主办单位竞赛数据查询效果
2.5 竞赛数据分析
本系统的竞赛数据分析模块分为两部分,分别为参赛单位竞赛数据分析和主办方竞赛数据分析。参赛学校登录后可以查询本单位数据分析,而主办单位登录后可以查询竞赛数据总体分析和各参赛单位数据分析。通过调用Matplotlib库,生成不同的折线图来直观显示各种竞赛分析情况。总体获奖数量数据分析效果如图12。参赛单位获奖次数数据分析效果如图13所示。
图12 总体获奖数量分析效果
图13 参赛单位获奖次数分析效果
3 结语
该电子设计竞赛查询系统能使主办单位和参赛学校能快速充分掌握历届竞赛情况,以便总结以往赛事经验,并以此为依托,因地制宜,能更好地举办或准备下一次比赛,不断提高工作效率和扩大工作成果。