- 博客(121)
- 收藏
- 关注
原创 图灵机仿真 和 递归函数仿真系统 与 0/1背包问题 c++
对两个仿真系统进行开发和测试,包括图灵机仿真系统和递归函数仿真系统。演示二分搜索算法在这两个系统中的执行过程,并进行纸带空间、步数、栈空间等资源使用情况的计数。对比分析两种仿真系统在解决0/1背包问题时采用不同算法的性能差异。//1. 图灵机仿真系统//功能要求://仿真有限状态自动机及其状态转移过程。//仿真纸带及读写头的读、写操作。//演示给定输入时二分搜索算法的动态执行过程,计数纸带空间和步数。//////2. 递归函数仿真系统//功能要求://仿真递归函数的调用过程。
2024-07-04 13:28:42 237
原创 普利姆最小生成树算法 c++
Prim算法是基于贪心策略的经典算法。它在每一步都选择权重最小的边,这样的选择是局部最优的,最终保证全局最优,即生成的最小生成树的总权重最小。
2024-07-03 11:06:28 785
原创 TCP单进程循环服务器程序与单进程客户端程序
本实验设定PDU没有头部(Header),仅有定长负载(Fixed-length Payload)。请求报文RQT PDU包含一个操作符与两个操作数,而回复报文REP PDU则只包含运算结果。
2024-06-28 16:12:42 927
原创 C++ 串口读写
这段代码演示了如何使用 Windows API 中的串口通信功能进行简单的数据发送和接收。它使用了串口的基本操作和设置,并通过。函数实现了一个简单的串口通信示例,发送一个十六进制数据,并读取串口返回的数据。等不安全的 C 标准库函数的警告定义,表示不生成相关的警告信息。
2024-06-27 16:33:42 648
原创 opencv c++ 检测图像尺寸大小,标注轮廓
本项目利用OpenCV与C++开发,旨在实现自动检测图像中物体尺寸并分类的功能。通过灰度处理、二值化、轮廓检测与边界框绘制,能有效分析图像中最大物体的尺寸,并将其归类为大、中、小三种类别。该工具不仅提供了便捷的图像处理能力,还为进一步的计算机视觉研究与应用提供了实用的基础工具。
2024-06-17 11:22:18 937
原创 opencv 使用 VideoCapture 读取视频isOpened() 返回false
3、查找ffmpeg.dll 文件,拷贝到运行程序下。2、视频源文件能否正常播放;
2024-05-11 18:30:28 323 1
原创 使用bat批量修改文件名
文件的文件名中的数字部分补零成四位,并将文件重命名为新的文件名。: 这个命令用于关闭命令回显,即在脚本运行时不在命令提示符窗口上显示执行的命令。: 在文件名前面补零至足够的位数,这里是补零到四位数字。: 将补零后的数字和原始扩展名重新组合成新的文件名。: 仅保留后四位数字,忽略之前添加的多余的零。: 暂停脚本的执行,等待用户按下任意键继续。命令将原始文件名重命名为新的文件名。,以便能够在循环内获取变量的当前值。: 改变当前目录到指定的文件夹路径。为指定的文件夹路径。: 获取文件的扩展名。
2024-01-26 17:18:48 1220
原创 原子操作和锁的多线程示例
通过结合使用原子操作和互斥锁,我们确保了对计数器的并发访问是线程安全的。每个线程在执行递增操作之前会获取互斥锁的锁定,这样可以确保每个递增操作的执行是原子的,并且不会发生竞态条件或数据不一致的问题。需要注意的是,原子操作和互斥锁是并发编程中常用的工具,但在实际应用中,需要根据具体情况选择合适的并发控制机制。原子操作适用于简单的、不需要复杂同步的操作,而互斥锁适用于需要保护共享资源的复杂操作。在实际应用中,需要根据具体情况选择合适的并发控制机制,并注意使用它们的约束和最佳实践,以确保代码的正确性和性能。
2023-12-22 14:25:58 417
原创 冒泡排序/选择排序/插入排序/快速排序/归并排序/桶排序/堆排序/希尔排序/计数排序/基数排序/二分查找/广度优先搜索/深度优先搜索
冒泡排序 选择排序 插入排序 快速排序 归并排序 桶排序 堆排序 希尔排序 计数排序 基数排序 二分查找 广度优先搜索 深度优先搜索
2023-12-20 16:06:42 797
原创 GDI+图片格式转换
请注意,这只是一个概述,并且在实际应用中可能需要处理更多的细节和错误检查。GDI+(Graphics Device Interface Plus)是一种用于图形绘制和图像处理的应用程序编程接口(API),在Windows平台上广泛使用。在GDI+中,可以使用。要进行图像格式转换,需要加载源图像并创建一个新的目标图像,然后使用GDI+提供的方法将源图像的像素数据复制到目标图像中。初始化GDI+:在使用GDI+之前,需要先初始化GDI+库。引入GDI+库:在使用GDI+之前,需要引入相应的GDI+库,通常是。
2023-12-15 14:55:54 574
原创 c++ 管理系统/包含增删改查排序保存加载文件功能(结构体和链表两种方式)
更新员工信息:用户可以输入要更新的员工的姓名,然后输入新的年龄和职位,系统将根据姓名找到该员工并更新其年龄和职位。删除员工:用户可以输入要删除的员工的姓名,系统将根据姓名查找并从员工列表中删除该员工的记录。搜索员工:用户可以输入要搜索的员工的姓名,系统将根据姓名查找并显示该员工的详细信息。添加员工:用户可以输入员工的姓名、年龄和职位,系统将把员工添加到员工列表中。从文件加载数据:系统将从之前保存的文件中加载员工数据,并更新当前的员工列表。排序员工:系统将按照职位对员工列表进行排序,并显示排序后的员工信息。
2023-12-15 14:49:55 416
原创 C++进行FTP上传和下载
在UploadFile函数中,首先通过curl_easy_init函数初始化CURL对象,然后使用fopen函数打开本地文件。接下来,通过调用curl_easy_setopt函数设置相关参数,如CURLOPT_UPLOAD表示启用上传模式,CURLOPT_URL表示设置远程FTP URL,CURLOPT_READDATA表示设置读取数据的文件指针。接下来,定义一个UploadFile函数,用于执行FTP上传操作。函数中,您可以设置本地文件路径和远程FTP URL,并调用相应的函数进行上传或下载。
2023-12-12 16:57:05 1045
原创 单向链表和双向链表
否则,遍历链表找到最后一个节点,然后将新节点插入到最后一个节点的后面。在 main 函数中,首先将头节点初始化为 NULL,然后使用 insert 函数向链表插入节点,并使用 printList 函数打印链表的内容。定义一个单向链表的节点结构体 Node,包含一个整型数据 data 和一个指向下一个节点的指针 next。双向链表相比于单向链表的优势在于它可以在常数时间内进行逆向遍历,因为每个节点都有一个指向前一个节点的指针。函数也与单向链表的实现相同,从头节点开始遍历链表,并打印每个节点的数据。
2023-12-11 15:24:25 1306
原创 信号量 - 生产者进程和消费者进程之间的通信
在生产者线程中,使用WaitForSingleObject等待可用的槽位,然后生产数据并将其存储在缓冲区中。之后使用ReleaseSemaphore释放一个信号量,表示有一个槽位已被使用。在消费者线程中,使用WaitForSingleObject等待有数据可消费,然后从缓冲区中消耗数据。生产者线程将数据存储在缓冲区中,消费者线程从缓冲区中消耗数据。通过信号量的控制,生产者和消费者线程之间实现了同步和互斥,确保生产者不会在缓冲区已满时继续生产,消费者不会在缓冲区为空时继续消费。
2023-12-11 15:16:02 403
原创 C++ 实现二叉树搜索功能
如果目标值与根节点的值相等,则表示找到目标值,返回 true。如果目标值小于根节点的值,则递归地在左子树中搜索目标值。如果目标值大于根节点的值,则递归地在右子树中搜索目标值。中序遍历是一种深度优先遍历方式,它首先遍历左子树,然后输出根节点的值,最后遍历右子树。如果不为空,则先递归地遍历左子树,然后输出根节点的值,最后递归地遍历右子树。首先,它检查根节点是否为空,如果为空,则创建一个新节点,并将其作为根节点。如果根节点不为空,则根据节点值的大小,递归地将新节点插入到左子树或右子树中。: 这是程序的主函数。
2023-12-11 14:58:41 481
原创 使用共享内存实现进程间通信的用法
通过共享内存,不同的进程可以共享数据,以实现高效的数据交换和通信。然后,使用 MapViewOfFile 函数将共享内存映射到当前进程的地址空间,并将返回的指针 sharedData 转换为 SharedData* 类型,以便我们可以直接操作共享数据。首先,我们使用 CreateFileMapping 函数创建一个共享内存对象,并指定共享内存的大小为 bufferSize(即 SharedData 结构体的大小)。在另一个进程中,我们可以使用相同的共享内存名称打开和映射共享内存,然后读取其中的数据。
2023-12-11 14:27:06 358
原创 生产者-消费者 队列
总体而言,消费者队列适用于需要在多线程环境中实现生产者-消费者模式的场景,提供了更高级的功能和线程安全性,但引入了额外的复杂性。总而言之,消费者队列是一种特殊的队列,专门用于实现生产者-消费者模式,提供了额外的功能和操作来支持并发和线程间的数据传递。在中断处理程序中,由于中断的特殊性,往往是在单线程环境中进行处理的,因此可以避免引入复杂的同步机制,减少代码的复杂性和开销。功能和操作:消费者队列除了支持基本的入队和出队操作外,还提供了特定的功能,如阻塞等待和通知机制,以便生产者和消费者之间的同步和协调。
2023-12-07 16:44:02 933
原创 使用ssh连接linux时出现的错误(Permission denied, please try again.)
【代码】使用ssh连接linux时出现的错误(Permission denied, please try again.)
2023-11-09 09:50:48 650 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人