第十八届全国大学智能汽车报名信息处理

报名信息
目 录
Contents
前言
表格信息处理
信息输出
总 结

 

01 名信息


一、前言

  第十八届 全国大学生智能车竞赛 将会在 6 月 15 日报名结束。 具体的报名方法参见: 第十八届全国大学生智能汽车竞赛网络报名方法 。 下面整理网站报名信息。 报名信息包括两部分:

  • 参赛队伍报名信息;
  • 报名人员的基本信息;

二、表格信息处理

  从网站后台可以导出 队伍报名信息和队伍信息。

  • 文件名称: 报名信息数据, 用户数据
  • 表单名称: Sheet1

1、表格结构

  为了便于信息处理, 下面将报名队伍信息的表单结构进行介绍。

(1)报名队伍表格

▲ 图1.2.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.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 信息输出表格示意图

▲ 图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
#============================================================
东北赛区华北赛区华东赛区华南赛区西部赛区安徽赛区山东赛区浙江赛区
204396387559396265403141
负压电磁专科电磁摄像头三轮电能接力独轮车智能视觉完全模型极速越野单车越野声音信标
53695511222276213199328196175

 

  结 ※


  文给出了处理第十八届全国大学生智能车竞赛报名信息的数据和相关软件。


■ 相关文献链接:

● 相关图表链接:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值