- 博客(19)
- 资源 (2)
- 收藏
- 关注
原创 C++笔记,类的创建和函数对象
1.类面向对象三个基本特征:封装、继承、多态。其实类跟结构体差不多(结构体是类的一个特定情况),只不过关键字是class。类:具有同种属性的对象称为类,是个抽象的概念。比如说:汽车、人、狗、神;对象:日常生活中的所有东西都是对象,是类的实例化。比如说:推土车是汽车的实例化;姚明是人的实例化;小白(狗的名字)是狗的实例化;二郎神是神的实例化;属性:用来描述具体某个对象的特征的是属性,是静态的。比如:姚明身高2.6米多;小白的毛发是棕色的;二郎神额头上有只眼睛;方法:...
2021-06-02 01:27:50
574
原创 C++笔记,语法和基础
学完C语言后,需要再学一门面向对象的高级语言,C++是不二之选,笔记中对C++某些地方的理解是建立在C语言基础上的,并且举例了C语言和C++知识点之间的不同。此篇文章中介绍了C++的常用语法,并与C语言之间进行对比(C++的语法大部分是包含C语言的)。Hello World下面是一个输出"Hello World!"的程序:#include <iostream>using namespace std;int main(void){ char *sData =.
2021-06-02 01:23:29
292
2
原创 基于51单片机的蓝牙台灯
大一期间学51单片机时做的小作品,功能如下:1、通过按键调节灯的亮度(1-10档位);2、通过蓝牙远程控制灯的亮度和开关;3、感应,根据附近是否有人自动进行开关灯。功能展示视频链接:https://www.bilibili.com/video/BV1BA411N7dQ/原理图的AD工程、源代码的keil工程:链接:https://pan.baidu.com/s/1c5jMNadqDgQBc1UeQcf5yg提取码:xt85(一)材料最小系统:ST...
2021-03-17 00:50:49
5641
26
原创 基于51单片的电风扇系统
大一期间学51单片机时做的小作品,功能如下:1、可通过红外遥控器对风扇系统的功能进行远程遥控;2、手动控制电风扇的风速(1-5档位);3、定时,当设定的时间倒计完后风扇会自动关闭;4、风扇会根据周围环境温度自动调整档位;5、可设置风扇的启动温度。功能展示视频链接:https://www.bilibili.com/video/BV1dV411Y7a2/原理图的AD工程、源代码的keil工程:链接:https://pan.baidu.com/s/1c5jMNad...
2021-03-17 00:45:54
5908
13
原创 基于51单片机的密码指纹识别门锁
大一期间学51单片机时做的小作品,功能如下:1、密码解锁,输入正确的密码会提示'OPEN',当输入密码错误次数超过三次则会提示'已锁定';2、指纹解锁,若该指纹存在指纹库中则会提示'OPEN';3、修改密码,需先输入当前密码;4、修改指纹,有添加指纹、搜索指纹、清空指纹库,三个功能。功能展示视频链接:https://www.bilibili.com/video/BV11y4y187jU/原理图的AD工程、源代码的keil工程:链接:https://pan.baid..
2021-03-17 00:44:36
14098
17
原创 动态规划(介绍 + leetcode 例题)
动态规划(Dynamic Programming),因此常用DP指代动态规划。动态规划解题思路:(1)确定「DP状态」:「最优子结构」和「无后效性」(2)确定「DP转移方程」。下面通过宝石挑选问题来介绍动态规划。(一)宝石挑选问题1.问题引入小Q是一个宝石爱好者。这一天,小Q来到了宝石古董店,店家觉得小Q是个宝石行家,于是决定和小Q玩一个游戏。游戏是这样的,一共有n块宝石,每块宝石在小Q心中都有其对应的价值。注意,由于某些...
2021-02-06 20:23:26
2200
原创 输出日志log调试
一、gdb安装(一)首先检查系统中有没有安装过,有的话用以下命令卸载gdb旧版本$ rpm -qa | grep gdb(二)卸载完后,安装(若下载的速度太慢,可参考我另一篇文章:修改ubuntu下载源)$ apt-get gdb二、编译并生成可执行文件例如现在需要调试book119.c的文件(一)编译,并生成可执行文件用gcc编译源程序的时候,编译后的可执行文件不会包含源程序代码,如果您打算编译后的程序可以被调试,编译的时候要加-g的参数$gcc-...
2021-01-25 00:17:11
1043
原创 GDB多线程调试(调试命令+调试演示)
多线程调试(一)多线程调试命令shell的命令:(1)查看当前运行的进程:ps aux | grep book(2)查看当前运行的轻量级进程:ps -aL | grep book(3)查看主线程和子线程的关系:pstree -p 主线程idgdb的命令:(1)查看可切换调试的线程:info threads(2)切换调试的线程:thread 线程id(3)只运行当前线程:set scheduler-locking on(4)运行全部的线程:set schedul..
2021-01-24 23:29:03
19256
原创 GDB多进程调试(调试命令+调试演示)
GDB多进程调试(一)多线程调试命令(1)调试父进程:set follow-fork-mode parent (缺省值,即默认)(2)调试子进程:set follow-fork-mode child(3)设置调试模式:set detach-on-fork [on | off] (缺省值on)on:调试当前进程的时候,其它的进程继续运行。off:调试当前进程的时候,其它的进程被gbd挂起。(4)查看可调试的进程:info inferiors(5)切换调试的进程:inferior
2021-01-24 23:23:48
2375
原创 GDB的安装和基本调试(安装步骤+基本调试命令和演示)
一、gdb安装(一)首先检查系统中有没有安装过,有的话用以下命令卸载gdb旧版本$ rpm -qa | grep gdb(二)卸载完后,安装(若下载的速度太慢,可参考我另一篇文章:修改ubuntu下载源)$ apt-get gdb二、编译并生成可执行文件例如现在需要调试book119.c的文件(一)编译,并生成可执行文件用gcc编译源程序的时候,编译后的可执行文件不会包含源程序代码,如果您打算编译后的程序可以被调试,编译的时候要加-g的参数$ gcc-g-...
2021-01-24 23:15:40
15370
原创 归并排序算法(介绍+图解+源码+性能)
此为第四篇,归并排序算法。归并排序 “归井”的含义是将两个或两个以上的有序表组合成一个新的有序表。假定待排序表含有n个记录,则可将其视为n个有序的子表,每个子表的长度为1,然后两两归井,得到n/2 个长度为2或1的有序表;继续两两归并.......如此重复,直到合并成1个长度为n的有序表为止,这种排序方法称为2路归并排序。 如下图所示为2路归并排序的一个例子,经过三趟归并后合并成了有序序列:1.例程/****************************...
2021-01-18 04:29:22
618
原创 插入排序算法:直接插入排序、希尔排序(介绍+图解+源码+性能)
此为第三篇,插入排序算法:直接插入排序、希尔排序。简介 插入排序是一种简单直观的排序方法,其基本思想是:每次将一个待排序的记录按其关键字大小插入到前面己排好序的子序列中,直到全部记录插入完成。 基于插入的排序算法主要介绍直接插入排序和希尔排序。一.直接插入排序 假设在排序过程中,待排序表 L[1....n]在某次排序过程中的某一时刻状态如下: 要将元素L(i)插入到已有序的子序列 L[1....i-1]中,需要执行以下操作(为避免混淆,下面...
2021-01-18 04:25:31
986
原创 C/C++编码规范
C++编码规范写出漂亮易读的程序是很重要的,不仅方便自己查看,也方便别人修改。于是我参考了网上别人的优秀博文(文章后面会贴出出处),对原内容进行了些修改,并整理成此文章。以下的编码规则适用于C++游戏服务端,当然,其它语言也可以参考该规则。一、文档的结构头文件用来声明,cpp文件用来定义。声明和定义分开,可以让代码更清晰、方便阅读,同时,如果在某些场合,代码不能公开,只向用户提供头文件和二进制的库即可。通常这样的情况下,头文件和源文件是在不同目录的,按照实际意义区分目录,一个目录内超过10个文.
2020-12-27 23:29:05
3833
原创 串的模式匹配,KMP算法(解释+源码)
解释大部分是直接copy《王道数据结构》还有一些是自己总结的,可能有些不太对,还请大家指出KMP算法关键点:后移多少位,取决于最长的公共前缀和后缀。例如:abcabcda --> 0ab --> 0abc --> a/ab c/bc --> 0abca --> a/ab/abc a/ca/bca --> 1abcab --> a/ab/abc/abca b/ab/cab/bcab --> 2abcabc ...
2020-08-08 17:46:20
457
原创 选择排序算法:简单选择排序、堆排序(介绍+图解+源码+性能)
解释部分是直接copy《王道数据结构》,专业的就是不一样,通俗易懂快速排序希尔排序归并排序
2020-08-08 17:33:44
1640
1
原创 交换排序算法:冒泡排序、快速排序(介绍+图解+源码+性能)
解释部分是直接copy《王道数据结构》,专业的就是不一样,通俗易懂冒泡排序选择排序插入排序
2020-08-08 17:25:14
609
原创 基于STC89C52单片机的ATK-AS608指纹识别系统
在家闲着无聊,就在现有资料的基础上进行修改,做了一个自己的指纹识别系统硬件部分:STC89C52、LCD12864、ATK-AS608、能降压到3.3V的降压模块、按键原理图:LCD12864使用的是串口显示,所以只3根控制线即可软件部分:在网上看了很多ATK-AS608相关的程序,大部分几乎都是一样的,可是我的模块总是无法初始化。用串口查看,单片机发送的指令没错,...
2020-03-18 00:46:24
4072
4
原创 两个字符串用gets函数读入。输出的正数或者负数的绝对值应是相比较的两个字符串的ASCII码的差值
#include<stdio.h>#include<string.h>#include<math.h>void main(){ char a[100],b[100]; int sum_a=0,sum_b=0,i; printf("第一串字符串:"); gets(a); printf("第二串字符串:"); ...
2018-10-21 01:56:11
2379
1
原创 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 (简单编程)
主要是用strcpy和strncpy,以下是源代码#include<stdio.h>#include<string.h>void main(){ void swap(char *p,int m); char a[100],n; printf("请输入一个字符串:"); gets(a); printf("向后移动位置:");...
2018-10-21 01:52:02
2403
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人