- 博客(23)
- 收藏
- 关注
原创 C++面对对象的总结
面向对象是一种编程思想,把一切东西看成是一个个对象,把这些对象拥有的属性变量和操作这些属性变量的函数打包成一个类来表示 面向对象:将数据与函数绑定到一起,进行封装,加快开发程序,减少重复代码的重写过程面向对象的三大特征是封装、继承、多态。
2024-04-10 20:54:37
1118
原创 QT实现串口通信
串行接口:是一种可以将接收来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接收的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。
2024-04-08 20:31:47
4086
2
原创 Makefile
make 内置变量$@ 目标文件的完整名$+ 所有依赖文件 以空格隔开 也可能会包含重复的依赖文件$^ 所有的不重复的依赖文件 以空格隔开$< 第一个依赖的文件名字gcc $<所有时间比目标文件晚(更新的)的依赖文件 以空格隔开eg:当前路径下有: a.c b.c c.ca.o:a.cb.o:b.cc.o:c.c上面这个 Makefile 在增加 .c 后 就要修改相应的 Makefilemain.c。
2023-07-25 17:13:06
261
原创 信号与槽的关联
槽和普通的C++成员函数几乎是一样的-可以是虚函数;可以被重载;可以是共有的、保护的或是私有的,并且也可以被其它C++成员函数直接调用;还有,它们的参数可以是任意类型。唯一不同的是:槽还可以和信号连接在一起,在这种情况下,每当发射这个信号的时候,就会自动调用这个槽。connect()语句看起来会是如下的样子:这里的sender和receiver是指向QObject的指针,signal和slot是不带参数的函数名。实际上,SIGNAL()宏和SLOT()宏会把它们的参数转换成相应的字符串。
2023-07-17 19:24:36
229
原创 C++异常(exception)
所谓的异常就是不正常,指在程序运行的过程中,由于系统条件、操作不当等原因所引起的程序运行错误 常见的异常:除零错误、指针访问受保护的空间、数组越界、内存分配失败、打开的文件不错在…在C++中,新增加了一种错误(异常)处理方式编译时错误:在程序编译阶段就能够发现的错误运行时错误:编译能够通过,在运行的时候会有一些错误产生为了提高系统的健壮性,加强容错能力,在编程过程中,这些错误(异常)必须要处理,防止系统崩溃。
2023-07-11 19:08:59
3905
原创 QT的SQL模块 - QSqlTableModel的使用
1、SQLite是一种无需服务器、无需进行任何配置的数据库。2、SQLite是可以跨平台使用的数据库。3、SQLite的驱动库文件很小,包含完整功能的驱动可以小到只有500KB。QtSQL提供的主要类的简要功能描述如下图所示QSqlDatabase用于建立与数据库的连接,一般先加载需要的数据库驱动,然后设置数据库的登录参数。数据库的操作一般需要将数据库的内容在界面上进行显示和编辑,Qt采用Model/View结构进行数据库内容的界面显示。
2023-07-10 21:21:52
1534
3
原创 C++实现十大经典排序算法
1)、比较两个相邻的元素,如果第一个比第二个大,就交换他们位置。2)、从第一个元素开始与他的下一个元素比较,这样最后的元素就会是最大的元素。3)、重复以上步骤。
2023-07-04 13:55:50
237
原创 QT项目-贪吃蛇的实现
启动或重新启动一个超时时间间隔为毫秒的定时器。如果定时器正在运行,它将被停止和重新启动。如果singleShot为true,定时器将只激活一次。同上,重载了start()。停止定时器。如果定时器正在运行,返回true,否则返回false。返回定时器的剩余时间(毫秒为单位),直到超时。如果定时器不活跃,返回值是-1。如果定时器过期,返回值为0。设置超时间隔(毫秒为单位)。默认值是0,这时,一旦窗口系统事件队列中的所有事件都已经被处理完,一个时间间隔为0的QTimer就会触发。
2023-07-03 11:33:28
1666
原创 TCP通信协议原理(三次握手-四次挥手)
1)第一次握手:建立连接时,客户端向服务器发送SYN包(seq=x),请求建立连接,等待确认2)第二次握手:服务端收到客户端的SYN包,回一个ACK包(ACK=x+1)确认收到,同时发送一个SYN包(seq=y)给客户端3)第三次握手:客户端收到SYN+ACK包,再回一个ACK包(ACK=y+1)告诉服务端已经收到4)三次握手完成,成功建立连接,开始传输数据示意图。
2023-06-30 14:08:37
2061
原创 基于QUdpSocket实现的UDP通信
UDP是轻量的,不可靠的,面向数据报,无连接的协议。与TCP不同,两个程序之间进行UDP通信无需预先建立持久的socket连接,UDP每次发送数据都到指定目标地址和端口。
2023-06-28 11:35:58
1102
原创 Qt的TCP通信—服务端的实现
QTcpServer是从QObject继承的类,他主要用于服务器简历网络监听,创建网络Socket连接。其主要接口函数如图所示。QTcpSocket是从QIODevice间接继承的类,具有流读写的功能,他除了构造函数和析构函数,其他函数都是从QAbstractSocket继承或重定义的。其主要函数接口如下图所示。
2023-06-26 19:51:45
3486
原创 Qt的TCP通信—客户端的实现
服务器和客户端的实现只是简单的演示了TCP通信的基本原理,TCPServer只允许一个TCPClient客户端接入。而一般的TCP服务器程序允许多个客户端接入。为了使每个socket连接独立通信不影响,一般采用多线程,既为一个socket连接创建一个线程#### 程序运行结果如图所示[外链图片转存中...(img-ldEvMlvq-1687778801285)]### 总结服务器和客户端的实现只是简单的演示了TCP通信的基本原理,TCPServer只允许一个TCPClient客户端接入。
2023-06-26 19:30:47
1290
原创 大数相加(C语言链表实现)
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
2023-06-26 14:51:29
218
原创 队列的定义与部分习题讲解
队列一、队列的定义 队列,简称队,如下图所示。它是一种运算受限的线性表,其仅允许在表的一端进行插入,而在表的另一端进行删除,通常把进行插入的一端称作队尾,进行删除的一端称作队首或对头。向队列插入新元素称作进队或入队,新元素进队后就成为新的队尾元素;从队列中删除元素称为出队或离队,元素出队后,其后继元素就成为队首元素。二、队列的特点 队列的主要特点是“ 先进先出 ”,即先进队的元素先出队,所以队列也称先进先出表。三、队列的存储结构 队列有两种主要的存储结构,即顺序队和链队,前者采用
2022-05-12 16:51:14
2018
原创 栈的定义与部分习题讲解
栈一、栈的定义 栈是一种只能在一端进行插入和删除操作的线性表,表中只允许进行插入和删除操作的一端称为栈顶。栈顶的当前位置是动态的,栈顶的当前位置是由一个成为栈顶指针的位置指示器来指示。表的另一端称为栈底。当栈中没有元素时,称为空栈,栈的插入操作称为进栈或入栈,栈的删除操作称为出栈或退栈。如下图时队元素的进栈和出栈操作:二、栈的特点 栈的主要特点是 “ 后进先出 ”,即后进栈的元素先出栈。栈也被称为后进先出表三、栈的存储结构栈有两种主要的存储结构,即顺序栈和链栈。前者采用顺序存储结构表
2022-05-11 18:21:13
1150
原创 双链表的基本操作与习题练习
一、双链表的定义双向链表也是链表的一种,有一个数据域data,它是用来存放数据的,有两个指针域,分别指向直接前驱pre和直接后继next。 从任意一个节点开始,都可以很方便的访问它的前驱节点和后继节点。使用这种方式解决了单链表中不能使用反向遍历的问题。二、双链表的结构双向链表也是采用的链式存储结构 ,因此它的结构图为:双链表节点类型D_LinkList的声明如下:typedef int ElemType;typedef int Status;typedef struct D_LinkLis
2022-05-09 21:02:14
1996
原创 单链表的基本操作之部分习题的讲解
单链表的基本操作之习题篇1、有一个线性表(a1,a2,a3,…an),n>=2,采用带头结点的单链表L存储,设计一个算法将其就地逆置,空间复杂度为O(1)解题思路1: 用指针p遍历原单链表,先将头节点L的next域置为NULL而变成一个空链表,然后节点采用头插法插入L中。示例图:对应算法如下:void ReverseLinkList(LinkList& L){ LNode* p = L->next, * q; L->next = NULL; //将L
2022-05-05 23:16:53
1599
原创 单链表的基本操作之创建链表并进行简单操作
单链表的创建与基本操作1、单链表的理解1.1单链表的定义 线性表的链式存储又称单链表,它是指通过依据任意的存储单元来存储线性表中的数据元素。为了建立数据元素之间的线性关系,对每个链表结点,除存放元素自身的信息外,还需要存放一个指向后继的指针。单链表结点如下所示。其中data为数据域,存放数据元素;next为指针域,存放其后继结点的地址。 1.2单链表的图形解释1.1.3单链表的特点1)单链表不要求逻辑上相邻的两个元素在物理位置上也相邻,因此不需要连续的存储空间。2)单链表是非随机的存储结
2022-05-03 23:27:30
2946
原创 一、线性表之顺序表
一、线性表之顺序表1.1顺序表的定义 线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。又称顺序表。1.2顺序表的特点1)逻辑上相邻的元素 ai, ai+1, 其存储位置也是相邻的;2)对数据元素ai的存取为随机存取或按地址存取。3)存储密度高。 存储密度D=(数据结构中元素所占存储空间)/( 整个数据结构所占空间) 。2.1顺序表的存储类型2.1.1 静态分配#define MAXSIZE 100 typedef int ElemType;//静态分
2022-05-03 13:20:02
1529
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人