01 报名信息
一、前言
第十八届 全国大学生智能车竞赛 将会在 6 月 15 日报名结束。 具体的报名方法参见: 第十八届全国大学生智能汽车竞赛网络报名方法 。 下面整理网站报名信息。 报名信息包括两部分:
- 参赛队伍报名信息;
- 报名人员的基本信息;
二、表格信息处理
从网站后台可以导出 队伍报名信息和队伍信息。
- 文件名称: 报名信息数据, 用户数据
- 表单名称: Sheet1
1、表格结构
为了便于信息处理, 下面将报名队伍信息的表单结构进行介绍。
(1)报名队伍表格
▲ 图1.2.1 参赛队伍报名信息
【表1-1 报名队伍表格结构】
列号 | 内容 |
---|---|
1 | 团队编号 |
2 | 操作 |
3 | 团队名称 |
4 | 所选赛题 |
5 | 所属赛区 |
6 | 学生1姓名 |
7 | 学生1身份证号 |
8 | 学生2姓名 |
9 | 学生2身份证号 |
10 | 学生3姓名 |
11 | 学生3身份证号 |
12 | 学生4姓名 |
13 | 学生4身份证号 |
14 | 学生5姓名 |
15 | 学生5身份证号 |
16 | 指导教师1姓名 |
17 | 指导教师1手机号 |
18 | 指导教师1邮箱 |
19 | 指导教师1所属院系 |
20 | 指导教师1研究方向 |
21 | 指导教师1工作证号 |
22 | 指导教师2姓名 |
23 | 指导教师2手机号 |
24 | 指导教师2邮箱 |
25 | 指导教师2所属院系 |
26 | 指导教师2研究方向 |
27 | 指导教师2工作证号 |
28 | 报名时间 |
(2)队员信息表格
▲ 图1.2.2 参赛队伍信息
列号 | 内容 |
---|---|
1 | 账号 |
2 | 密码 |
3 | 学生姓名 |
4 | 手机号 |
5 | 身份证号 |
6 | 邮箱 |
7 | 学校省份 |
8 | 学校城市 |
9 | 学校名称 |
10 | 所在学院 |
11 | 所学专业 |
12 | 入学年份 |
13 | 学号 工号 |
14 是否已报名(0:未报名 | 1:已报名) |
15 | 操作 |
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEAM.PY -- by Dr. ZhuoQing 2023-06-15
#
# Note:
#============================================================
from headm import *
import openpyxl
teamfilename = r'D:\Temp\报名信息数据1686796863970.xlsx'
userfilename = r'D:\Temp\用户数据1686798538924.xlsx'
twb = openpyxl.load_workbook(teamfilename)
twbs = twb.active
uwb = openpyxl.load_workbook(userfilename)
uwbs = uwb.active
#------------------------------------------------------------
printff("列号","内容")
for id, l in enumerate(uwbs):
if id == 0:
for iidd,ll in enumerate(l):
printff(iidd+1, ll.value)
else: break
#------------------------------------------------------------
tspcopyhelpmessage()
printf("\a")
#------------------------------------------------------------
# END OF FILE : TEAM.PY
#============================================================
三、信息输出
1、报名队伍输出
▲ 图1.3.1 信息输出表格示意图
2、信息处理程序
(1)信息合并
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEAM.PY -- by Dr. ZhuoQing 2023-06-15
#
# Note:
#============================================================
from headm import *
import openpyxl
teamfilename = r'D:\Temp\team2023616.xlsx'
userfilename = r'D:\Temp\user2023616.xlsx'
#------------------------------------------------------------
printf("Open :%s"%teamfilename)
twb = openpyxl.load_workbook(teamfilename)
twbs = twb.active
#------------------------------------------------------------
printf("Open :%s"%userfilename)
uwb = openpyxl.load_workbook(userfilename)
uwbs = uwb.active
#------------------------------------------------------------
outfilename = r'd:\temp\team.xlsx'
sheetname = ['东北赛区', '华北赛区', '华东赛区', '华南赛区', '西部赛区', '安徽赛区', '山东赛区', '浙江赛区']
teamfile = ['序号', '组别', '学校', '队伍名称', '学生1', '学生2', '学生3', '学生4', '学生5', '教师1', '教师2', '学生1手机', '教师1手机']
groupname = ['负压电磁', '专科电磁', '摄像头三轮', '电能接力', '独轮车', '智能视觉', '完全模型', '极速越野', '单车越野', '声音信标']
outwb = openpyxl.Workbook()
for id, sn in enumerate(sheetname):
if id == 0:
ws = outwb.active
ws.title = sn
else:
ws = outwb.create_sheet(sn)
#------------------------------------------------------------
iddim = []
infordim = []
universitydim = []
for id,l in enumerate(uwbs):
if id == 0: continue
infor = []
idstr = l[4].value
if idstr in iddim: continue
iddim.append(idstr) # id
infor.append(l[2].value) # name
infor.append(l[3].value) # phone number
infor.append(l[8].value) # university
infordim.append(infor)
universitydim.append(l[8].value)
#------------------------------------------------------------
teamnum = []
for sn in sheetname:
outws = outwb.get_sheet_by_name(sn)
printf("Processing %s"%sn)
for id,t in enumerate(teamfile):
_= outws.cell(row=1, column=id+1, value=str(t))
count = 0
gnnum = []
for gn in groupname:
printf('Group:%s'%gn)
gndim = []
for l in twbs:
if l[3].value != gn: continue
if l[4].value != sn: continue
id1index = -1
for i in range(5):
id1 = l[6+i*2].value
if not id1 in iddim: continue
else:
id1index = iddim.index(id1)
break
infor1 = infordim[id1index]
item = []
item.append(gn)
item.append(infor1[2])
item.append(l[2].value)
item.append(l[5].value)
item.append(l[7].value)
item.append(l[9].value)
item.append(l[11].value)
item.append(l[13].value)
item.append(l[15].value)
item.append(l[21].value)
item.append(infor1[1])
item.append(l[16].value)
flag = -1
for sid,s in enumerate(gndim):
if (s[0] == item[0] and
s[1] == item[1] and
s[2] == item[2]):
flag = sid
break
if flag == -1:
gndim.append(item)
else:
for iid,i in enumerate(item):
gndim[flag][iid] = item[iid]
gndim = sorted(gndim, key=lambda x:x[1])
for g in gndim:
count += 1
_= outws.cell(row=count+1, column=1, value='%d'%count)
for gid, gg in enumerate(g):
_= outws.cell(row=count+1, column=2+gid, value=gg)
gnnum.append(len(gndim))
# printf(gndim)
# outwb.save(outfilename)
# exit()
teamnum.append(gnnum)
printf(teamnum)
tspsave('teamnum', teamnum=teamnum)
printf("Total Team:%d"%sum(teamnum))
printff("Division Team:", sum(array(teamnum), 1))
printff("Group Team:", sum(array(teamnum), 0))
printf("University :%d"%len(list(set(universitydim))))
#------------------------------------------------------------
'''
printff("列号","内容")
for id, l in enumerate(uwbs):
if id == 0:
for iidd,ll in enumerate(l):
printff(iidd+1, ll.value)
else: break
tspcopyhelpmessage()
'''
#------------------------------------------------------------
outwb.save(outfilename)
#------------------------------------------------------------
printf("\a")
#------------------------------------------------------------
# END OF FILE : TEAM.PY
#============================================================
(2)信息统计
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST2.PY -- by Dr. ZhuoQing 2023-06-16
#
# Note:
#============================================================
from headm import *
teamnum = tspload('teamnum', 'teamnum')
sheetname = ['东北赛区', '华北赛区', '华东赛区', '华南赛区', '西部赛区', '安徽赛区', '山东赛区', '浙江赛区']
groupname = ['负压电磁', '专科电磁', '摄像头三轮', '电能接力', '独轮车', '智能视觉', '完全模型', '极速越野', '单车越野', '声音信标']
printf("Total Team:%d"%sum(teamnum))
printff("Division Team:", sum(array(teamnum), 1))
printff("Group Team:", sum(array(teamnum), 0))
divdim = sum(array(teamnum), 1)
groupdim = sum(array(teamnum), 0)
divstr = [str(i) for i in divdim]
groupstr = [str(i) for i in groupdim]
outstr1 = '|'.join(sheetname) + '\n' + '|'.join(['-']*len(sheetname)) + '\n' + '|'.join(divstr)
outstr2 = '|'.join(groupname) + '\n' + '|'.join(['-']*len(groupname)) + '\n' + '|'.join(groupstr)
outstr = outstr1 + '\n\n' + outstr2
printf(outstr)
clipboard.copy(outstr)
#------------------------------------------------------------
# END OF FILE : TEST2.PY
#============================================================
东北赛区 | 华北赛区 | 华东赛区 | 华南赛区 | 西部赛区 | 安徽赛区 | 山东赛区 | 浙江赛区 |
---|---|---|---|---|---|---|---|
204 | 396 | 387 | 559 | 396 | 265 | 403 | 141 |
负压电磁 | 专科电磁 | 摄像头三轮 | 电能接力 | 独轮车 | 智能视觉 | 完全模型 | 极速越野 | 单车越野 | 声音信标 |
---|---|---|---|---|---|---|---|---|---|
536 | 95 | 511 | 222 | 276 | 213 | 199 | 328 | 196 | 175 |
※ 总 结 ※
本文给出了处理第十八届全国大学生智能车竞赛报名信息的数据和相关软件。
■ 相关文献链接:
● 相关图表链接: