- 博客(31)
- 收藏
- 关注
原创 实现YOLO半自动化标注流程
本文介绍了YOLO半自动化标注流程的三步法:首先通过YOLOv8的predict命令自动生成标注文件(save_txt=True),然后将预测结果复制到图片目录;其次使用labelimg人工修正标注错误;最后将修正后的数据合并到原始数据集进行模型训练。该方法通过"自动预测-人工校验-数据扩充"的循环,显著提升了标注效率,只需少量人工干预就能大幅扩充数据集,为训练高性能模型奠定基础。关键点是利用save_txt参数实现预测结果到标注格式的自动转换。
2025-08-01 15:29:28
2119
原创 C语言队列的实现
本文介绍了C语言中队列的基本实现原理与代码实现。队列采用循环数组结构,通过结构体queue_t封装数组指针、入队/出队下标、容量和当前数据量。关键操作包括:入队时数据存入arr[in]并递增in(达到容量时归零);出队时从arr[out]取数并递增out(同样循环处理)。代码实现了初始化、释放、判空/满、入队/出队等基本功能,通过size变量有效管理队列状态,避免数组越界,实现高效的循环存储机制。
2025-08-13 19:22:46
486
原创 C语言栈的实现
本文介绍了C语言中栈的基本实现方法。首先定义了一个stack_t结构体,包含数组指针、栈顶top和容量cap。重点讲解了入栈和出栈的操作流程,并分析了栈空(top=0)和栈满(top=cap)的判定条件。文章提供了完整的栈实现代码,包括初始化、释放、判空/满、压栈和弹栈等基本操作函数。最后展示了使用示例,将1-11依次压入容量为11的栈,再全部弹出并打印。栈采用"后进先出"(LIFO)原则,通过top指针控制数据存取位置。
2025-08-12 20:29:57
421
原创 C语言命令行参数
本文介绍了C语言中命令行参数的使用方法。通过main(int argc, char* argv[])函数接收参数,argc表示参数个数,argv[]存储具体参数值。文章演示了两个实用案例:1)登录验证系统,通过比较输入的用户名密码与预设值进行验证;2)鸡兔同笼计算器,根据输入的头数和腿数,运用数学公式计算鸡兔数量并进行合理性验证。案例中使用了atoi()进行字符串转整数,strcmp()进行字符串比较等关键函数。这些示例展示了命令行参数在实际编程中的应用价值。
2025-08-11 19:35:03
468
原创 C语言gdb调试
本文以计算数组元素之和的程序为例,详细介绍了gdb调试的基本流程和常用命令。主要内容包括:1) 使用-g选项编译程序;2) 启动gdb调试环境;3) list命令查看源代码;4) break命令设置断点;5) run命令执行程序;6) next命令单步执行。通过具体代码示例演示了每个命令的用法和输出结果,帮助读者理解如何在程序执行过程中暂停、查看变量状态和跟踪执行流程。文中配有命令行截图,直观展示调试过程中的关键步骤和输出信息。
2025-08-09 18:45:17
778
原创 C语言宏相关操作
本文介绍了C语言宏的使用方法及其优势。宏分为无参宏和带参宏,通过有意义的名称替代常量,提高代码可读性和维护性。无参宏如#define PI 3.14159可直接替换值;带参宏如#define SQUARE(x) ((x)*(x))能处理不同类型数据。文章还讲解了编译时定义宏、宏运算符(#字符串化和##连接符)以及预定义宏(如__FILE__、__LINE__等调试信息)。宏通过预处理替换实现代码复用,避免多处修改,特别适合常量管理和跨平台场景。
2025-08-08 20:06:51
526
原创 C语言随机数
本文介绍了C语言中生成随机数的方法。核心要点包括:1) 使用rand()函数生成伪随机数,配合srand()设置随机种子;2) 常用time(0)获取系统时间作为种子,确保每次运行产生不同随机序列;3) 通过取模运算rand()%n可生成指定范围的随机数;4) 提供了双色球游戏的实现示例,展示了生成不重复随机数的技巧。文中包含完整的代码示例,演示了如何生成1-33范围内的6个不重复红球和1-16的蓝球。
2025-08-08 08:31:48
410
原创 C语言数组
本文介绍了C语言数组的基本概念和使用方法。主要内容包括:1) 数组的定义和初始化规则,包括完整初始化、部分初始化和省略元素个数等特殊情况;2) 数组元素的访问方式和地址连续性;3) sizeof运算符在数组中的应用;4) 变长数组的特点和使用限制;5) 多维数组的结构和初始化方法。特别强调了数组越界访问的风险和二维数组"行优先"的初始化原则。通过示例代码演示了各种数组操作的正确实现方式。
2025-08-07 20:13:39
787
原创 变量的生命周期、作用域与静态变量
摘要:本文介绍了变量生命周期与作用域的核心概念,重点区分了全局变量、局部变量和块级变量的作用范围及存在时间。全局变量在程序运行期间始终存在且可被多个函数访问,局部变量仅在函数内有效,块级变量则限于特定代码块内。特别讲解了static修饰的静态变量特性:静态局部变量保持程序级生命周期但作用域不变,静态全局变量限制为当前文件访问。通过代码示例展示了不同变量的使用场景,并对比了多文件编程时普通全局变量与静态全局变量的可访问性差异。
2025-08-07 09:03:47
714
原创 C语言指针数组和数组指针
本文解析了C语言中指针数组和数组指针的区别。指针数组int* p[3]是以数组为主体,存储3个int*类型元素;数组指针int (*p)[3]是以指针为主体,指向包含3个int元素的数组。文章特别强调了数组指针的类型概念,并通过二维数组与数组指针的等价性进行说明。最后通过选择题形式,测试读者对指针类型匹配的理解,指出char s[3][10]、(*k)[3]和*p之间类型不匹配的常见错误。
2025-08-05 17:30:37
378
原创 C语言类型转换
本文介绍了C语言中的类型转换机制,包括隐式类型转换和显式类型转换。隐式转换包含三种情况:整数转浮点数、有符号转无符号数、小字节类型转大字节类型。显式转换(强制类型转换)则通过类型强制运算符实现,但可能导致数据截断或失真。文章通过代码示例详细说明了每种转换的规则和注意事项,强调强制转换不会改变原变量的类型和内存占用,只是临时按目标类型规则解读数据。
2025-08-05 10:25:24
216
原创 C语言基础知识汇总
本文总结了C语言编程中的16个关键知识点。主要内容包括:头文件包含方式的区别、变量命名规则、预编译概念、运算符注意事项、循环结构差异、变量类型比较方法、sizeof与strlen区别、变量声明与定义区别、const与宏定义差异、野指针和内存泄漏概念、static关键字作用、main函数参数、防止头文件重复包含的方法、编译过程步骤以及const修饰指针的三种情况。这些知识点涵盖了C语言基础语法、内存管理、编译原理等核心内容,是C语言学习和开发的重要参考。
2025-08-04 20:15:59
1871
原创 C语言Makefile
Makefile用于自动化编译多文件程序的工具文件,记录编译步骤并支持增量编译。基本格式为"目标:依赖文件"后跟以Tab开头的编译命令。示例展示了如何将main.c和swap.c编译为可执行文件main的过程,包括生成中间.o文件并最终链接。通过模式规则"%.o:%.c"可简化Makefile编写,自动为每个.c文件生成对应.o文件,其中$<表示源文件,$@表示目标文件。修改源文件后只需执行make命令,Make工具会自动检测变化并重新编译必要文件,提高编译效率
2025-08-04 17:38:52
301
原创 C语言的前操作与后操作
摘要: 本文通过C语言示例解析了前操作(++val)和后操作(val++)的区别。在单独使用时,二者效果相同;但在复合操作中,前操作会先自增/减再执行其他操作,后操作则先执行其他操作再自增/减。例如printf("%d",val++)先打印后自增,而printf("%d",++val)先自增后打印。赋值语句中同样遵循此规则。理解这一特性对避免编程错误至关重要。
2025-08-04 14:45:42
209
原创 C语言进制转换
摘要 本文系统介绍了计算机中不同进制数据的表示和转换方法。主要内容包括:1) 二进制存储原理及符号位概念;2) 二进制与十进制正负数的相互转换规则;3) 二进制与八进制/十六进制的转换技巧;4) C语言中格式化输出不同进制数据的实现。重点讲解了"取反加一"等核心转换方法,并强调数据类型对转换结果的影响。通过具体示例演示了各种进制间的转换过程,为理解计算机数据存储和进制转换提供了实用指导。
2025-08-04 11:07:07
1347
原创 C语言数据类型
本文介绍了C语言中常见的数据类型及其特性,包括整型(char、short、int、long等)、浮点型(float、double)的数值范围、存储大小和格式占位符。详细说明了sizeof操作符的用法及其注意事项,特别指出sizeof中的赋值操作无效。还讲解了字符类型的本质(ASCII码存储)和常见特殊字符(\n、\b、\r、\t等)的转义用法,并提供了对应示例代码。文章最后列出了几个重要字符的ASCII码值(如'A'=65,'a'=97等),方便开发者快速查阅。
2025-08-01 18:52:51
299
原创 C语言变量
本文介绍了C语言变量的基本概念和使用方法。主要内容包括:1) 变量定义和赋值的语法规则;2) 变量的初始化方式;3) 常见数据类型及其内存占用;4) 变量的访问方式(通过变量名或地址);5) printf和scanf中常用的占位符;6) 变量命名规则;7) 通过第三方变量实现两个变量值交换的经典方法。文章通过代码示例详细说明了变量定义、赋值、初始化的过程,并解释了变量交换过程中数据备份的重要性。
2025-08-01 15:20:03
319
原创 C语言主函数
这段内容介绍了C语言中main函数的基本结构和相关语法要点。主要包括:#include预处理指令的作用,用于包含头文件;main函数的标准写法,其中void表示无参数,int指定返回类型;return语句的两个功能:结束函数执行和返回指定值;以及当main函数没有显式return 0时会默认返回0的特性。同时通过"hello,world!"示例展示了基本的C程序结构。这些知识是C语言编程的基础核心内容。
2025-08-01 11:21:37
251
原创 Linux常用命令
本文总结了Linux常用命令,包括基本操作、文件管理和系统管理三大类。主要介绍了Tab键补全、Ctrl组合键功能(终止程序、切换输入法等)、窗口操作快捷键(Ctrl+Alt+T新开窗口、Ctrl+Shift+T新标签页)。详细讲解了目录操作命令(cd、pwd、ls)、文件操作命令(touch、mkdir、rm、cat)以及重点命令cp和mv的使用方法,包括文件复制/移动、目录递归操作等场景。还包含历史命令查询(history)、清屏(clear)和切换root用户(su root)等实用技巧,涵盖了Linu
2025-08-01 09:38:38
532
原创 vim编译器的使用
本文介绍了vim文本编辑器的基本使用方法。内容包括文件创建(touch命令)、vim进入编辑模式(i键)和一般模式(esc键)的切换,以及光标移动(G/gg/ngg)、复制粘贴删除(shift+v/y/d/p/x)、撤销(u)与反撤销(ctrl+r)等操作。还讲解了命令行模式(shift+:)下的保存(w)、保存退出(wq)和强制退出(q!)命令。配图展示了vim界面和基本操作示例,适合初学者快速掌握vim的基本功能。
2025-08-01 08:51:59
370
原创 Java安装教程:配置环境变量、JDK的下载与安装、以及Eclipse IDE的安装与下载(全网最详细的讲解)
Java安装教程:配置环境变量、JDK的下载与安装、以及Eclipse IDE的安装与下载看我这一篇就够了
2023-02-23 20:01:20
606
原创 试题 算法训练 P0601
编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串打印出来。
2023-02-10 16:40:56
236
原创 数据结构的二叉树综合训练
数据结构的二叉树综合训练。创建一棵二叉树,求二叉树的叶子节点的个数以及叶子节点有哪些。输入二叉树的先序表达式求二叉树的后序表达式
2022-12-29 10:40:55
337
学生成绩管理系统课程设计报告(武汉东湖学院...)
2022-12-29
C语言数据结构校园导航咨询系统课程设计报告(武汉东湖学院...)
2022-12-28
32位MIPS单周期CPU设计(武汉东湖学院、武汉大学...)
2022-12-29
门电路逻辑功能与测试 .docx
2022-12-29
触发器的应用实验以及完成对时钟控制RS触发器、JK触发器和主从钟控RS触发器、JK触发器的比较.docx
2022-12-29
modelsim计算机组成原理的实验需要的工具
2022-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅