C++简单工厂模式项目模板,基于QT控制台程序。
关注我即可下载,无需积分,后续将带来更多关于QT的小项目和技术分享。
2025/8/17 18:48:39 27KB qt qt5 工厂模式 设计模式
1
数据结构课程设计霍夫曼编码实验报告,包含源码基本要求:一个完整的系统应具有以下功能:(1)I:初始化(Initialization)。
从终端读入字符集大小n及n个字符和m个权值,建立哈夫曼树,并将它存于文件hfmtree中。
(2)C:编码(Coding)。
利用已建好的哈夫曼树(如不在内存,则从文件hfmtree中读入),对文件tobetrans中的正文进行编码,然后将结果存入文件codefile中。
(3)D:解码(Decoding)。
利用已建好的哈夫曼树将文件codefile中的代码进行译码,结果存入文件textfile中。
(4)P:打印代码文件(Print)。
将文件codefile以紧凑格式显示在终端上,每行50个代码。
同时,将此字符形式的编码文件写入文件codeprint中。
(5)T:打印哈夫曼树(Treeprinting)。
将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件treeprint中。
###霍夫曼编码器知识点解析####一、霍夫曼编码基础概念**霍夫曼编码**是一种广泛应用于数据压缩领域的编码方法。
它采用了一种变长编码技术,使得出现频率高的字符可以用较短的编码表示,而出现频率低的字符则使用较长的编码表示。
这样做的好处是可以有效地减少数据的整体存储空间或传输所需的时间。
####二、霍夫曼树的构建霍夫曼树的构建是霍夫曼编码的基础。
构建过程大致分为以下几个步骤:1.**初始化**:首先读取字符集大小`n`及`n`个字符和它们的权重(出现次数),通常权重越大的字符出现的频率越高。
这部分操作可以通过用户输入或者从文件中读取完成。
2.**创建节点**:对于每一个字符及其权重,创建一个节点,该节点包含字符信息和权重信息。
这些节点可以被看作是一个优先队列,其中优先级由权重决定,权重越小的节点优先级越高。
3.**构造霍夫曼树**:不断地从优先队列中选取权重最小的两个节点作为新的节点的左右子树,并且新节点的权重等于其两个子节点的权重之和。
重复这一过程,直到所有的节点都合并成一个根节点为止,此时便得到了一棵完整的霍夫曼树。
4.**编码赋值**:从根节点开始,按照左子树为0、右子树为1的原则为每个叶子节点赋值编码。
叶子节点代表的是原始的字符集合,这样每个字符都有了一个与之对应的编码。
####三、编码与解码-**编码**:对于给定的文本,通过查找霍夫曼树中对应字符的路径,获取其霍夫曼编码,并将其替换为原文本中的字符,从而得到编码后的文件。
编码后的文件通常会比原始文件占用更少的空间。
-**解码**:解码过程则是编码过程的逆向操作。
根据霍夫曼树,从编码文件中读取编码序列,沿着霍夫曼树逐位判断,当遇到叶子节点时,即可确定对应的字符,从而恢复出原始文本。
####四、打印功能-**打印编码文件**:将编码后的文件内容以紧凑格式输出,每行50个编码。
此外,还需要将这些编码保存到另一个文件中,便于后续查看或处理。
-**打印霍夫曼树**:将霍夫曼树以直观的形式(例如树形结构或凹入表格形式)展示出来。
同时,将树的图形化表示保存到文件中,方便用户理解霍夫曼树的具体结构。
####五、实验环境搭建与运行**硬件环境**:实验中提到了具体的硬件配置,比如IntelCorei5-4258UCPU,这意味着实验是在一台具有足够计算能力的计算机上进行的。
**软件环境**:实验使用了MicrosoftVisualC++6.0进行编程。
这是一个广泛使用的C++集成开发环境(IDE),适合初学者和专业人士使用。
####六、实验过程与调试-**实验过程**:根据上述流程,可以实现霍夫曼编码器的基本功能。
在编写代码的过程中,需要注意细节处理,确保每个功能模块都能正确执行。
-**调试**:通过编写测试文档`tobetrans`,并运行程序,检查编码、解码等功能是否能够正常工作。
可以使用简单的测试用例来进行初步验证,如含有全部英文字母的文档等。
####七、实现代码示例实验报告中虽然只给出了部分代码框架,但可以想象实际的代码应该包含了霍夫曼树节点定义、霍夫曼树构建函数、编码函数、解码函数、打印函数等关键部分。
具体的实现逻辑需要结合上述理论知识进行编写。
通过上述解析,我们可以了解到霍夫曼编码器的设计思路和技术要点,这对于深入理解和应用霍夫曼编码具有重要的意义。
2025/8/17 10:34:16 78KB 霍夫曼编码
1
利用matlab对信号序列进行经验模态分解,为后续的去噪过程做准备
2025/8/8 10:33:16 22KB EMD matlab
1
参数化时频分析是一种在信号处理领域广泛应用的技术,特别是在处理非平稳信号时,它能提供一个更为精确且灵活的分析框架。
MATLAB作为一种强大的数学计算和数据可视化软件,是进行时频分析的理想工具。
本资源提供了MATLAB实现的参数化时频分析代码,可以帮助用户深入理解和应用这一技术。
我们要理解什么是时频分析。
传统的频谱分析,如傅立叶变换,只能对静态信号进行分析,即假设信号在整个时间范围内是恒定的。
然而,在实际工程和科学问题中,许多信号的频率成分会随时间变化,这种信号被称为非平稳信号。
为了解决这个问题,时频分析应运而生,它允许我们同时观察信号在时间和频率域上的变化。
参数化时频分析是时频分析的一个分支,它通过建立特定的模型来近似信号的时频分布。
这种模型通常包括一些参数,可以通过优化这些参数来获得最佳的时频表示。
这种方法的优点在于可以提供更精确的时频分辨率,同时减少时频分析中的“时间-频率分辨率权衡”问题。
在MATLAB中,实现参数化时频分析通常涉及以下几个步骤:1.**数据预处理**:需要对原始信号进行适当的预处理,例如去除噪声、滤波或者归一化,以提高后续分析的准确性。
2.**选择时频分布模型**:常见的参数化时频分布模型有短时傅立叶变换(STFT)、小波变换、chirplet变换、模态分解等。
选择哪种模型取决于具体的应用场景和信号特性。
3.**参数估计**:对选定的模型进行参数估计,通常采用最大似然法或最小二乘法。
这一步涉及到对每个时间窗口内的信号参数进行优化,以得到最匹配信号的时频分布。
4.**重构与可视化**:根据估计的参数重构信号的时频表示,并使用MATLAB的图像绘制函数(如`imagesc`)进行可视化,以便直观地查看信号的时频特征。
5.**结果解释与应用**:分析重构后的时频图,识别信号的关键特征,如突变点、周期性变化等,然后将其应用于故障诊断、信号分离、通信信号解调等多种任务。
在提供的`PTFR_toolboxs`压缩包中,可能包含了实现上述步骤的各种函数和脚本,如用于预处理的滤波函数、参数化模型的计算函数、以及用于绘图和结果解析的辅助工具。
`README.docx`文档应该详细介绍了工具箱的使用方法、示例以及可能的注意事项。
通过学习和使用这个MATLAB代码库,你可以进一步提升在参数化时频分析方面的技能,更好地处理和理解非平稳信号。
无论是学术研究还是工程实践,这种能力都是非常有价值的。
记得在使用过程中仔细阅读文档,理解每一步的作用,以便于将这些知识应用到自己的项目中。
2025/8/5 16:54:38 29KB 时频分析
1
pyqt4精彩实例讲解,适合pyqt4初级学习者,经供参考第6行创建了一个QPushButton对象,并设置它的显示文木为“HelloKitty!",由于此处并没有指定按钮的父窗体,因此以自己作为主窗凵第7行调用show()方法,显示此按钮。
控件被创建时,默认是不显示的,必须调用show()区数来显示它。
第8行的connect方法是αt最重要的特征,即信号与槽的机制。
当按钮被按下则触发clicked信号,与之相连的APplication对象的槽quit(响应按钮单击信号,执行退出应用程序的操作。
关于信号与槽机制在本实例最后将进行详细的分析。
最后调用APplication的exec()方法,程序进入消息循环,等待可能输入进行响应。
Qt完成事件处理及显示的工作,并在应用程序退出时返叫exec_Q)的值最后执行程序即可出现上图所示的对话框,一个简单的HelloKitty!例子完成。
信号与槽机制作为αt最重要的特性,提供了任意两个Qt对象之间的通信机制。
其中,信号会在某个特定情况或动作下被触发,槽是用于接收并处理信号的函数。
例如,要将一个窗口中的变化情况通知给另一个窗口,则一个窗口发送信号,另一个窗口的槽接收此信号并进行相应的操作,即可实现两个窗∏之间的通信。
这比传统的图形化程序采用回调函数的方式实现对象间通信要简单灵活得多。
每个Qt对象都包含预定的信号和槽,当一某一特定事件发生时,一个信号被发射,与信号相关联的槽则会响应信号完成相应的处理。
信号与槽机制常用的连接方式为connect(Object1,SIGNAL(signal),Object2,SLOT(slot)signal|为对象Object1的信号,sot为对象Object2的槽,Qt的窗口部件都包含若十个预定义的信号和若干个预定乂的槽。
当一个类被继承时,该类的信号和槽也同时被继承。
开始人也可以根据需要定义自己的信号和槽。
信号与槽机制可以有多种连接方式,下图描述了信号与槽的多种可能连接方式。
Object1Object2signal1si巴nallsignal2SeFa2slot1slot1lot2Object3signal2slot1slot2个信号可以与另一个信号相连connect(object1,SIGNAL(signal1),Object2,SIGNAL(signal1))即表示Object11的信号1发射可以触发Object2的信号1发射2.表示一个信号可以与多个槽相连connect(Object1,SIGNAL(signal2),Object2,SLOT(slot2))connect(object1,SIGNAL(signal2),Object3.SLOT(slot1)3表示同一个槽可以响应多个信号connect(object1,SIGNAL(signal2),Object2,SLOT(slot2))connect(object3,SIGNAL(signal2),object2,SLOT(slot2))注:本文基本上是经过改编的《Linux窗口程序设计-Qt4精彩实例分析》一书的PyQt4forwindows版本可以这么写:bclicked.connect(app.quit)这样就少了一些hardcode的字符串了,更加pythonic实例2标准对话框的使用分类:-PyQ42010-12-0310:342105人阅读评论(2)收藏举报和人多数操作系统一样,Windows及Linuⅹ都提供了一系列的标准对话框,如文件选择,字体选择,颜色选择等,这些标准对话框为应用程序提供了一致的观感。
Qt对这些标准对话框都定义了相关的类,这些类让使用者能够很方便地使用标准对话框进行文件,颜色以及字体的选择。
标准对话框在软件设计过程中是经常需要使用的。
αt提供的标准对话框除了本实例提到的,还有QErrorMessage,QInputDialog,QMessageBox,QPrintDialog,QProcessDialog等,这些标准对话框的使用在本书的后续部分将会陆续介绍。
本实例主要演示上面几种标准对话框的使用,如下图所示Standarddialog文件对话框颜色对话框字体对话框Hellowor1l!在上图中,单击“文件对话框”按钮,会弹出文件选择对话框,选中的文件名将显示在右连,单击“颜色对话栏”按钮,会弹岀颜色选择对话框,选中的颜色将显小在右边,单击“字体对话框”按钮,会弹出字体选择对话框,选中的字体
2025/7/21 7:51:31 1.66MB pyqt pyqt4 按钮悬 pyqt4精彩实例
1
虎书,清晰PDFJava版本。
非常经典,注重实践。
全书分成两部分,第一部分是编译的基础知识,适用于第一门编译原理课程(一个学期);
第二部分是高级主题,包括面向对象语言和函数语言、垃圾收集、循环优化、SSA(静态单赋值)形式、循环调度、存储结构优化等,适合于专题选讲、后续课程或研究生教学。
1
《构建Wireshark风格的网络抓包与分析工具——基于vc++6.0及WinPCAP库》网络抓包与分析是网络安全、系统优化、故障排查等领域的重要技术手段,而Wireshark作为业界广泛使用的开源工具,为用户提供了一种强大且直观的方式来查看网络通信的细节。
本文将介绍如何使用vc++6.0编程环境,结合WinPCAP库,开发一个类似Wireshark的网络数据包捕获与分析工具。
理解WinPCAP库是关键。
WinPCAP(WindowsPacketCapture)是MicrosoftWindows平台上的一个开源网络数据包捕获和网络监视系统,它允许应用程序访问网络接口的底层数据传输。
通过WinPCAP,我们可以实现对网络流量的实时监控,获取原始的数据包,并进行解析和分析。
在vc++6.0环境下,我们需要进行以下步骤来构建这个工具:1.**项目设置**:创建一个新的MFC应用程序,选择“对话框”模板,因为我们的目标是创建一个带有用户界面的工具。
2.**引入WinPCAP库**:下载并安装WinPCAP开发库,然后在项目的“配置属性”中添加WinPCAP头文件和库文件的路径。
3.**初始化WinPCAP**:在程序启动时,我们需要调用`wpcap_init()`函数初始化WinPCAP库,然后通过`pcap_open_live()`函数打开一个网络接口,以便开始捕获数据包。
4.**数据包捕获**:使用`pcap_loop()`或`pcap_next()`函数持续监听网络接口,每当有新的数据包到达时,这些函数会调用预定义的回调函数,将数据包传递给我们的程序进行处理。
5.**数据包解析**:解析捕获到的数据包需要理解网络协议栈的工作原理。
TCP/IP协议族包括链路层、网络层、传输层和应用层,每层都有各自的头部结构。
例如,以太网头部、IP头部、TCP或UDP头部等。
使用WinPCAP库提供的`pcap_pkthdr`和`pcap_pktdat`结构体,我们可以获取到每个数据包的头部信息和载荷数据。
6.**显示和分析**:根据解析结果,将数据包的关键信息(如源/目的IP、端口、协议类型、时间戳等)展示在对话框的列表控件中。
更进一步,可以实现协议分析功能,如TCP流重组、HTTP请求内容查看等。
7.**过滤功能**:Wireshark的一个显著特性是强大的过滤器。
我们可以实现自定义的过滤规则,让用户能够筛选出特定类型的数据包。
这通常涉及解析头部信息并应用逻辑条件。
8.**文件导出**:为了便于后续分析,提供数据包导出功能是必要的。
可以将捕获的数据包保存为Wireshark通用的pcap格式,以便在Wireshark或其他支持该格式的工具中打开。
9.**错误处理和优化**:确保程序在遇到错误时能够适当地通知用户,并提供关闭捕获、释放资源的选项。
此外,考虑性能优化,比如限制捕获速率,防止过度占用系统资源。
通过以上步骤,我们可以构建一个基本的网络抓包与分析工具,尽管功能可能不及Wireshark全面,但对于学习网络协议、理解数据包结构以及进行简单的网络调试来说已经足够。
随着深入学习和实践,可以逐步增加更多高级特性,使工具更加实用和专业。
2025/7/12 13:32:43 4.66MB 网络数据报抓取 分析工具 Wireshark
1
Istio内部是使用了K8S的,但为了细粒度的进行日志管理和流量控制,K8SService自身都无法满足设计要求。
于是,Istio只是通过K8SAPI收集了Service信息便自己接管了后续的工作,流量转发控制权交给了由C++开发的Envoy。
这个高性能的组件就是传说中的IstioSidecar,也就是每一个微服务实例所在Pod中必须注入的另一个容器啦,而这个Sidecar的追求是对应用本身透明。
到这里,大家知道Istio的野心了么?
2025/7/9 13:05:33 840KB istio
1
黄小平编著的《粒子滤波原理及应用》——Matlab仿真书中代码。
本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握本书主要介绍粒子滤波的基原理及其在非线性系统中应用。
为方便读者快速掌握子滤波的精髓,本书采用原理介绍书采用原理介绍+实例应用+MATLAB+MATLAB+MATLAB程序仿真+中文注释相结合的方式,中文注释相结合的方式,向读者介绍滤波的原理和实现过程。
向读者介绍滤波的原理和实现过程。
向读者介绍滤波的原理和实现过程。
向读者介绍滤波的原理和实现过程。
向读者介绍滤波的原理和实现过程。
向读者介绍滤波的原理和实现过程。
向读者介绍滤波的原理和实现过程。
本书共本书共9章,第章,第1章绪论,介绍粒子滤波的发章绪论,介绍粒子滤波的发章绪论,介绍粒子滤波的发章绪论,介绍粒子滤波的发章绪论,介绍粒子滤波的发章绪论,介绍粒子滤波的发展状况;
展状况;
第2章简略地介绍章简略地介绍章简略地介绍MATLABMATLAB算法仿真编程基础,便于零算法仿真编程基础,便于零算法仿真编程基础,便于零算法仿真编程基础,便于零算法仿真编程基础,便于零算法仿真编程基础,便于零基础的读者学习后续章节介绍原理;
基础的读者学习后续章节介绍原理;
基础的读者学习后续章节介绍原理;
基础的读者学习后续章节介绍原理;
基础的读者学习后续章节介绍原理;
基础的读者学习后续章节介绍原理;
基础的读者学习后续章节介绍原理;
基础的读者学习后续章节介绍原理;
第3章介绍与粒子滤波相关的概率论基础;
第章介绍与粒子滤波相关的概率论基础;
第章介绍与粒子滤波相关的概率论基础;
第章介绍与粒子滤波相关的概率论基础;
第章介绍与粒子滤波相关的概率论基础;
第章介绍与粒子滤波相关的概率论基础;
第章介绍与粒子滤波相关的概率论基础;
第章介绍与粒子滤波相关的概率论基础;
第章介绍与粒子滤波相关的概率论基础;
第章介绍与粒子滤波相关的概率论基础;
第4章介绍蒙特卡洛的基本原章介绍蒙特卡洛的基本原章介绍蒙特卡洛的基本原章介绍蒙特卡洛的基本原章介绍蒙特卡洛的基本原章介绍蒙特卡洛的基本原理;
第理;
第理;
第5章介绍粒章介绍粒子滤波的基本原理;
第子滤波的基本原理;
第子滤波的基本原理;
第子滤波的基本原理;
第子滤波的基本原理;
第6章介绍粒子滤波的改进算法,主要是章介绍粒子滤波的改进算法,主要是章介绍粒子滤波的改进算法,主要是章介绍粒子滤波的改进算法,主要是章介绍粒子滤波的改进算法,主要是章介绍粒子滤波的改进算法,主要是章介绍粒子滤波的改进算法,主要是章介绍粒子滤波的改进算法,主要是EPFEPF算法和UPF算法。
第算法。
第7章和第8章为粒子滤波在目标跟踪、电池参数估计中的应用;
第章为粒子滤波在目标跟踪、电池参数估计中的应用;
第章为粒子滤波在目标跟踪、电池参数估计中的应用;
第章为粒子滤波在目标跟踪、电池参数估计中的应用;
第章为粒子滤波在目标跟踪、电池参数估计中的应用;
第章为粒子滤波在目标跟踪、电池参数估计中的应用;
第章为粒子滤波在目标跟踪、电池参数估计中的应用;
第章为粒子滤波在目标跟踪、电池参数估计中的应用;
第章为粒子滤波在目标跟踪、电池参数估计中的应用;
第章为粒子滤波在目标跟踪、电池参数估计中的应
2025/7/6 2:36:57 966KB 粒子滤波 Matlab程序
1
《数字图像处理——应用篇》是由谷口庆治编著的一本深入探讨图像处理技术的专业书籍,这本书在图像处理领域具有很高的权威性。
全书完整PDF版本是唯一可获取的全面资源,对于学习和研究图像处理技术的读者来说,无疑是一份宝贵的资料。
图像处理是计算机科学中的一个重要分支,它涉及了将模拟图像转换为数字形式,以及对数字图像进行各种操作以改善质量或提取有用信息。
在《数字图像处理——应用篇》中,作者谷口庆治详细阐述了这一领域的关键概念和技术,包括图像获取、颜色模型、图像增强、图像复原、图像分割、特征提取以及模式识别等核心主题。
1.**图像获取**:这部分介绍了图像传感器的工作原理,如CCD和CMOS,以及扫描仪和相机的成像过程。
同时,还涵盖了像素的概念、采样理论和量化过程。
2.**颜色模型**:书中详细讨论了RGB、CMYK、HSV、YCbCr等常见颜色模型,以及它们在不同应用场景下的选择和转换方法。
3.**图像增强**:通过滤波器、直方图均衡化等手段改善图像的视觉效果,提升图像质量,这部分包括线性和非线性滤波、对比度增强等技术。
4.**图像复原**:针对图像退化问题,如噪声、模糊等,提出了一系列恢复技术,如Wiener滤波、反卷积等。
5.**图像分割**:这是图像分析的关键步骤,包括阈值分割、区域生长、边缘检测等方法,用于将图像划分为有意义的部分。
6.**特征提取**:为了识别和理解图像,需要从图像中提取有意义的特征,如角点、边缘、纹理和形状,这些特征可用于后续的模式识别和对象识别。
7.**模式识别**:利用机器学习算法,如支持向量机、神经网络、决策树等,对图像中的模式进行分类和识别,是图像处理领域的高阶应用,广泛应用于OCR文字识别、人脸识别、医学影像分析等领域。
8.**OCR文字识别**:光学字符识别技术是模式识别的一个实例,通过识别图像中的文字并转化为可编辑文本,该技术在文档自动化处理、图书数字化等方面有着广泛的应用。
压缩包中的文件名表明资源分为了三个部分:`数字图像处理——应用篇.part1.rar`、`数字图像处理——应用篇.part2.rar`和`数字图像处理——应用篇.part3.rar`。
通常,这种分卷压缩格式是为了便于大文件的传输和存储,用户需要下载所有部分并使用合适的解压工具(如WinRAR或7-Zip)合并解压,才能获得完整的PDF文件。
《数字图像处理——应用篇》是一本涵盖广泛、深度适中的教材,适合计算机视觉、图像处理、模式识别等相关领域的学生和研究人员。
通过学习本书,读者不仅可以掌握基本的图像处理技术,还能了解其在实际应用中的策略和方法,为进入这个领域的深入研究打下坚实基础。
1
共 425 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡