【办公类-19-04】办公中的思考——幼儿姓名笔画数统计(单字、全名字)

news2024/11/29 8:58:20

结果展示--笔画数统计

背景需求

中6班幼儿都能够书写学号(基本没有镜像了),于是我开始尝试让幼儿熟悉自己的“姓氏”,并书写姓氏(单字)。4位幼儿能够默写全名,3位幼儿可以默写名字中的某一个字。

但如果有样板,幼儿可以尝试照着“”画名字“”。

每位孩子都尝试根据已有文字,了自己的名字。从字形结构来看,我在想:孩子们的写字的笔画顺序是否正确呢?

由于我自平时都是电脑键盘输入或手机语音输入,几乎已经不会写汉字了(o(╥﹏╥)o),根本搞不清楚自己的笔画顺序是否正确。

于是,我想通过“笔画网”的图示,下载幼儿姓名中文字的具体笔画顺序(第3笔是丿,第5笔是横折钩)

具体思路:

1、从“比邻词典”输入

2、比邻词典”链接

 《李》字笔顺、笔画 - 李字怎么写?

 3、制作幼儿名单(2字、3字、4字)

 4、使用UIBOT程序,批量下载(不知道Python不能运行)

UiBot开发的RPA机器人源代码是由UiBot官方团队自己研发的一套语言命令。底层命令由python、C#等语言组成。UiBot兼容性比较好,支持C、Lua、Python、.Net 扩展插件及第三方SDK接入。

Dim objExcelWorkBook,arrayRet,iRet,temp,行,sRet,sText,名称前面,arrElement,objPoint,dictScrollPostion,objRect,bRet
objExcelWorkBook = Excel.OpenExcel('''C:\Users\jg2yXRZ\OneDrive\桌面\下载笔画\幼儿姓名笔画范例.xlsx''',true,"Excel","","")
File.CreateFolder('''C:\Users\jg2yXRZ\OneDrive\桌面\下载笔画\演示名字图片''')
路径 = '''C:\Users\jg2yXRZ\OneDrive\桌面\下载笔画\演示名字图片'''
区域=Excel.ReadRange(objExcelWorkBook,"Sheet1","A2:B5",true)
行=UBound(区域)

TracePrint(行)
Rem 网页开着75%
// https://bihua.bi0.cn/96E8__bishun.html
For i = 0 To 行 step 1

// TracePrint(区域[i])
名称 = 区域[i][0]&'-'&区域[i][1]



TracePrint(区域[i][1])
字数=Len(区域[i][1])


TracePrint(字数)
For ii = 1 To 字数 step 1

单字=StrGetAt(区域[i][1],ii)
// TracePrint(单字)

名称前面 = Format("%02d",i+1)&'-'&Format("%02d",ii)&'-'&单字&'-'

TracePrint(名称前面)
Rem 查找笔画
Keyboard.InputText(@ui"输入控件<input>",单字,true,20,10000,{"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 500, "bSetForeground": true, "sSimulate": "message", "bValidate": false, "bClickBeforeInput": false})

Mouse.Move(957, 208, false,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})
Delay(2000)
笔画总数 = UiElement.GetValue(@ui"表格单元<td>_102",{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})
// TracePrint(笔画总数)

名称后面 = 名称前面&笔画总数

// TracePrint(名称后面)

Rem 锚定下载
LocalOCR.Hover(@ui"块级元素<div>_夏字笔画写法1",{"x":29,"y":2,"width":69,"height":27},"笔画写法","instr",1,10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":true,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate"})


Keyboard.Press("Down", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})

Mouse.Click("right", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})

Keyboard.Press("Down", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})



Keyboard.Press("Down", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})
Keyboard.Press("Enter", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})

Keyboard.Press("Backspace", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})
Keyboard.InputText(@ui"窗口1",路径&'\\'&名称后面,true,20,10000,{"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 500, "bSetForeground": true, "sSimulate": "message", "bValidate": false, "bClickBeforeInput": false})
Mouse.Move(583, 446, false,{"iDelayAfter": 300, "iDelayBefore": 200})
Mouse.Click("left", "click", [],{"iDelayAfter": 300, "iDelayBefore": 300})

Delay(3000)



Keyboard.Press("Up", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})

Keyboard.Press("Up", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})
Delay(5000)
Next
Next
Excel.CloseExcel(objExcelWorkBook,true)

5、运行过程展示

视频

6、运行结果展示

 办公思考:

1、查找笔画最多的名字:那些孩子的姓氏+名字中的笔画很多(相对难写)

2、查找单个笔画多的字,一位幼儿的名字中,哪一个字相对难写(笔画多)

确定几个人的名字(4人)

 重点:提取文件名上的四类信息

'''
目的:把名字图片上的笔画总数加起来 笔画谁最多
作者:阿夏
日期:2023年05月26日 21:54
'''


import os
import time

import xlrd

hang=int(input('一共几个孩子(4人)\n'))

address = r'C:\Users\jg2yXRZ\OneDrive\桌面\下载笔画\演示名字图片'#存放图片的文件夹
# datapath = 'D:/目录.xlsx'#excel表路径

print('--------1、先把文件名变成数字----------')
fileList=os.listdir(address )
# print(fileList)

sn_all=[]
n_all=[]
ks_all=[]

# # 全部路径
# path = r'C:\Users\jg2yXRZ\OneDrive\桌面\中6姓名笔画总数\*'
# for file_abs in glob.glob(path):
#     print(file_abs)

for file in fileList:
    
    split_str = file.split('-')    # 切割符号
    # 学号
    student_number = split_str[0]  # 学号 
    # print(student_number)
    name= split_str[2]  # 名字(单字)    
    stroke_number= split_str[3]  # 笔画数+.png
    # print(stroke_number[:-4])# 数量(排除最后的.png)
   

    sn_all.append(student_number)    # 学号列表   
    
    n_all.append(name) # 名字列表(单字列表)
   
    ks_all.append(stroke_number[:-4])# 笔画数列表
# print(len(ks_all)) 
# print(len(sn_all))
# print(len(n_all))  
# print(m)
# ['01', '01', '01', '02', '02', '02', '03', '03', '03', '04', '04', '05', '05', '05', '06', '06', '06', '07', '07', '07', '08', '08', '08', '09', '09', '09', '10', '10', '10', '11', '11', '11', '12', '12', '12', '13', '13', '13', '14', '14', '14', '15', '15', '15', '16', '16', '16', '17', '17', '17', '18', '18', '18', '19', '19', '20', '20', '20', '21', '21', '21', '22', '22', '22', '23', '23', '23', '24', '24', '24', '25', '25', '25', '26', '26', '26', '27', '27', '27', '28', '28', '28']

# print(n)
# ['10', '5', '10', '6', '7', '8', '4', '4', '12', '10', '4', '8', '8', '13', '6', '13', '11', '7', '4', '10', '9', '11', '8', '7', '11', '13', '14', '8', '14', '11', '12', '10', '7', '16', '11', '7', '13', '1', '9', '10', '12', '10', '6', '1', '7', '12', '11', '11', '1', '4', '7', '10', '12', '7', '12', '6', '12', '8', '10', '12', '7', '11', '13', '5', '12', 
# '12', '12', '9', '7', '8', '3', '4', '8', '4', '8', '8', '7', '3', '8', '9', '9', '8']

# print(k)



print('-----------三个字笔画最多-----------')

# 三个字合计的统计(从小到大)

# 查找几个数字=01,对应笔画数加在一起
sy=[]
sy_all=[]
for i in range(1,hang+1):    # 一共28人
    sy.clear()
    cz_number='%02d'%i
    # print('%02d'%i)  
    # 01
    
    for x in sn_all:  # 在学号列表中遍历  
        if x==cz_number:   # 如果01==01,就合并为一个列表
            sy.append(x)
    # print(len(sy))    
    sy_all.append(len(sy))
# print(sy_all)
# # [3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3] 提取的索引位置

sy_all.insert (0, '0') # 最前面加0   
print(sy_all)
# 01号是3个名字、04号是4个名字
# ['0', 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3]


# 索引数字累加
sy_plus=0
sy_plus_all=[] 
# 索引取值数字的确定
for y in sy_all:
    sy_plus +=int(y)    
    # print(sy_plus)
    sy_plus_all.append(sy_plus)
# print(sy_plus_all)
# [0, 3, 6, 9, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 44, 47, 50, 53, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82]
# ks_all笔画数列表中,取0-3 3-6,6-9(3)。9-11(2)

name_three_all=[]
name_all_all=[]
for z in range(int(len(sy_plus_all)-1)):    
    q=ks_all[sy_plus_all[z]:sy_plus_all[z+1]]
    # print(q)
    # ['10', '5', '10']
    # ['6', '7', '8']  
    # 转字符
    zifu=[int(u) for u in q]
    print(zifu)
    # [10, 5, 10]
    # [6, 7, 8]
    # 三个数字加一起
    print(sum(zifu))
    # 25
    # 21

    # 三个名字拼在一起
    long_name=n_all[sy_plus_all[z]:sy_plus_all[z+1]]   
    # ['张','三']
    name_all=''.join(long_name)
    # ['张三']
    print(name_all)
    name_all_all.append(name_all)    # 三个名字的合集列表

    # 生成结果 三个名字笔画最多到笔画最少
    h='{}笔 学号"{}{}"的笔画'.format('%02d'%(sum(zifu)),'%02d'%(z+1),name_all_all[z])
    # print('{}笔 学号{}的笔画:'.format(sum(zifu),'%02d'%(z+1)))
    name_three_all.append(h)
    # name_three_all.sort()    # 笔画少 到 笔画多
    name_three_all.sort(reverse=True)# 笔画多 到 笔画少
# print(name_three_all)    


print('---------全部名字笔画总数的统计(多到少)----------')
# 变成竖式
for zz in range(len(name_three_all)):
    
    print('序号{}  {}'.format('%02d'%(zz+1),name_three_all[zz]))
    
print('-----------单个字笔画最多-----------')

# for  sn_all.append(student_number)    # 学号列表    
#     n_all.append(name) # 名字列表(单字列表)
#     ks_all.append(stroke_number[:-4])# 笔画数列表

name_one_all=[]
for v in range(len(n_all)):  # 82条
    
    k='{}笔 学号"{}{}"的笔画'.format('%02d'%(int(ks_all[v])),str(sn_all[v]),n_all[v])
    #                                 #    name_all_all[v])
    # # print('{}笔 学号{}的笔画:'.format(sum(zifu),'%02d'%(z+1)))
    # print(k)
    name_one_all.append(k)
    name_one_all.sort()    # 笔画少 到 笔画多
    # name_one_all.sort(reverse=True)# 笔画多 到 笔画少
    # print(name_one_all)

print('---------单个名字笔画数量的统计(多到少)----------')
# 变成竖式
for aa in range(len(name_one_all)):    
    print('序号{}  {}'.format('%02d'%(aa+1),name_one_all[aa]))



终端显示

 感悟:

   用这种方法,可以直接看到那些孩子的3个名字笔画总数最多,

那些孩子的单个名字笔画最多。

 

 

 教学思考

1、笔画总数多的孩子需要关注(把名字放大,便于幼儿看到每一个细节笔画)

 2、单字笔画多的孩子可以提供另类学具(把名字放大,便于幼儿看到每一个细节笔画)

 3、笔画少的孩子,可以直接描写三个字,不需要单独拆开练习笔画数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/576450.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3*5差值结构参照1分类迭代次数比较

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入有3个节点&#xff0c;训练集AB各由5张二值化的图片组成&#xff0c;让A中有6个1&#xff0c;B中全是1&#xff0c;排列组合A &#xff0c;统计迭代次数并排序。共收集到了181个不同的迭代次数&#xff0c;其中有4个 A-B 迭…

创建web后端程序(servlet程序搭建)

目录 一、Servlet概述 二、创建servlet程序 1.创建类继承HttpServlet 2.重写HttpServlet类中 service、destroy、init方法 3.重新启动服务器 一、Servlet概述 Server Applet的简称&#xff0c;用Java编写的服务器端的程序。它运行在web服务器中&#xff0c;web服务器负责…

路径规划算法:基于回溯搜索优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于回溯搜索优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于回溯搜索优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

Android逆向学习之Frida逆向与抓包实战学习笔记(持续更新中)

学习资料:《安卓Frida逆向与抓包实战》陈佳林/著 文章目录 基础环境第三章 Frida逆向入门之Java层hook3.1 frida基础3.1.3frida基础知识frida存在两种操作模式frida操作App的方式有两种 3.1.4Frida IDE配置 3.2 frida脚本入门3.2.1 frida脚本的概念3.2.2 Java层hook基础1.hook…

续---初识HTML!!!(结束篇)

续———初识HTML&#xff01;&#xff01;&#xff01; 一、表单 1.表单的作用 关于表单的作用&#xff1a;表单最大的作用就是收集用户的信息&#xff0c;用户填写表单&#xff0c;点击提交数据给服务器。 2.如何画出表单&#xff1f; 在HTML中我们采用form标签来画一个…

2023 (ICPC) Jiangxi Provincial Contest -- Official Contest

A. Drill Wood to Make Fire 输出即可 #include<bits/stdc.h> #define int long long #define x first #define y second using namespace std; const int N1100; typedef pair<int,int>pii;int m,n; int a[N][N];void solve() {int s,v,n;cin>>n>>s&…

Kali-linux Arpspoof工具

Arpspoof是一个非常好的ARP欺骗的源代码程序。它的运行不会影响整个网络的通信&#xff0c;该工具通过替换传输中的数据从而达到对目标的欺骗。本节将介绍Arpspoof工具的 使用。 9.8.1 URL流量操纵攻击 URL流量操作非常类似于中间人攻击&#xff0c;通过目标主机将路由流量注…

腾讯T4大牛整理的SpringBoot文档,覆盖你认知中的所有操作

SpringBoot目前的使用已经很普遍了&#xff0c;实际的项目中&#xff0c;我们需要集成各种的插件支持&#xff0c;不仅如此&#xff0c;还有很多可能我们平时不知道&#xff0c;但是很方便的操作。pdf里面的东西还是比较全面的。 1、关于文档 2、获得帮助 3、第一 步 4、使…

【Docker】Docker最近这么火,它到底是什么

前言 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 &#x1f4d5;作者简介&#xff1a;热…

RMP软件管理、YUM源、磁盘管理。

1、RPM软件管理 1> 通过rpm安装vsftpd软件。 去官网找到xsftpdx86的链接。 2> 查询vsftpd软件包的信息。 3> 卸载软件包vsftpd。 2、YUM软件管理 1> 挂载本地光盘&#xff0c;配置yum源为rhel.repo。 2> 通过yum来安装traceroute。 3> 使用yum查询ifconfig命…

详解如何使用LAMP架构搭建论坛

文章目录 1.LAMP概述2.编译安装Apache httpd服务1.关闭防火墙&#xff0c;将安装Apache所需软件包传到/opt目录下2.安装环境依赖包 3.配置软件模块4.编译及安装5.优化配置文件路径&#xff0c;并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别6.添加httpd系…

位图,布隆过滤器,哈希分割

文章目录 &#x1f680;位图&#x1f4a1;概念&#x1f4a1;接口操作 &#x1f680;布隆过滤器&#x1f4a1;思想&#x1f4a1;实现代码&#x1f4a1;实际应用 &#x1f680;哈希分割 &#x1f680;位图 学习位图前&#xff0c;我们先来看一道题 用哈希表存储每个整数&#…

github在线编程

github在线编程 文章目录 github在线编程两种区别演示项目 Ruoyi-VueGitHub Codespaces 演示github 访问项目使用 GitHubCodeSpace 打开该项目查看运行环境安装运行环境初始化myql数据安装 redis运行前端运行后端前后端运行成功测试安装相关插件 GitPod 演示 说明: 目前总结 gi…

路径规划算法:基于果蝇优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于果蝇优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于果蝇优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法果蝇…

聚类算法学习笔记(一)

聚类算法学习笔记&#xff08;一&#xff09; 方法Euclidean Cluster [ 1 ] ^{[1]} [1]SuperVoxel [ 1 ] ^{[1]} [1]Depth Cluster [ 1 ] ^{[1]} [1]SLR: Scan-line Run [ 1 ] ^{[1]} [1]Range Image-based [ 2 ] ^{[2]} [2] 实验对比其他概念Cluster ToleranceKD-Tree Referce…

95后阿里P7晒出工资单:狠补了这个,真香....

最近一哥们跟我聊天装逼&#xff0c;说他最近从阿里跳槽了&#xff0c;我问他跳出来拿了多少&#xff1f;哥们表示很得意&#xff0c;说跳槽到新公司一个月后发了工资&#xff0c;月入5万多&#xff0c;表示很满足&#xff01;这样的高薪资着实让人羡慕&#xff0c;我猜这是税后…

Oracle Linux 9.2 发布 - Oracle 提供支持 RHEL 兼容发行版

Oracle Linux 9.2 发布 - Oracle 提供支持 RHEL 兼容发行版 Oracle Linux with Unbreakable Enterprise Kernel (UEK) & Red Hat compatible kernel (RHCK) 请访问原文链接&#xff1a;https://sysin.org/blog/oracle-linux-9/&#xff0c;查看最新版。原创作品&#xff…

数学建模的初阶-快速上手

目录 第一步&#xff1a;明确问题 第二步&#xff1a;选择建模方法 第三步&#xff1a;收集数据 第四步&#xff1a;构建数学模型 第五步&#xff1a;模型验证与评估 数学建模软件推荐 统计模型 (1) 线性回归模型 (2) 逻辑回归模型 (3) 时间序列模型 优化模型 (1) …

cuda编程学习——运行错误检测(四)

前言 参考资料&#xff1a; 高升博客 《CUDA C编程权威指南》 以及 CUDA官方文档 CUDA编程&#xff1a;基础与实践 樊哲勇 文章、讲解视频同步更新公众《AI知识物语》&#xff0c;B站&#xff1a;出门吃三碗饭 1:编写头文件erro.cuh 编写一个头文件&#xff08;error.cuh&…

LabVIEWCompactRIO 开发指南第六章38

LabVIEWCompactRIO 开发指南第六章38 了解数据如何在模块硬件组件和LabVIEW FPGA框图之间传输&#xff0c;可以帮助开发更好的程序并更快地进行调试。本节介绍不同的硬件体系结构&#xff0c;模拟和数字C系列I/O模块以及如何与每个模块通信。这些模块通常用于测量或控制信号&a…