自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 VS配置redis环境、redis简单封装

dpkg -L libhiredis-dev | grep '\.so$' //驱动文件。dpkg -L libhiredis-dev | grep '\.h$' //头文件。方便找我把它解压缩在/usr/local/redis,如果没有redis文件夹先到。完成之后会生成一个bin目录下有redis服务端与客户端。我们更多希望它在后台自动运行因此会修改它的配置文件。但是会爆红,原因是我们没有安装这个文件库。//查看它所在运行的进程。//redis的头文件。CTL+C 关闭服务器。

2025-05-27 10:57:48 940

原创 VS编码访问Mysql数据库

libmysqlcppconn-dev是 MySQL Connector/C++ 的开发包,它的主要用途是让 C++ 开发者能够方便地在应用程序中与 MySQL 数据库进行交互。dpkg -L libmysqlcppconn-dev | grep '\.so$' //查询库的位置(驱动库共享文件)dpkg -L libmysqlcppconn-dev | grep '\.h$' //查询头文件的位置。dpkg -L libmysqlcppconn-dev //验证安装位置。

2025-05-24 17:10:46 295

原创 linux进程管理

1.程序:程序(program)是存放在磁盘文件中的可执行文件。2.进程:程序的执行实例被称为进程(process)。3.进程ID:进程都一定有一个唯一的数字标识符,称为进程PID(process ID)。进程ID总是一非负整数。(id上限65535,在每一次重新运行都是随机分配)4.结构:linux中进程包含PCB(进程控制块)、程序以及程序所操纵的数据结构集,可分为“代码段”、“数据段”和“堆栈段”。6.init进程:通常ID为1,不会终止,结束时由内核调用。

2025-05-19 20:46:49 476

原创 socket通信中一定要注意收发数据长度保持一致

原因:之所以会读取很多零是因为上一次回应进来的登录响应收到的数据长度大于了接受的数据长度,在接受端第一次把有效部分读取完之后,其余部分都是没有实际数据的,所以都是空,读取出来就都是0显示。立马好友请求的响应又被发送了进来,但是前面的空数据还没读取导致他们的位置存在偏差,读取的数据就会发生紊乱,后面出现了244、842018865等数字,获取不到正确完整的结构,也就无法解析头合体了。bug:在下面结果可以明显看到前置服务器是拿到了好友列表并且发送给了客户端,但是客户端却接受不到正确的相应头,而且会有很多0。

2025-05-16 19:55:06 140

原创 linux基础与操作

介于使用者和 UNIX/Linux 操作系统之核心程序(kernel)间的一个接口读取输入和语法分析命令列处理万用字符解释重定向和管道搜索和运行程序后台作业 shell编程等bin:linux常用的命令。如:cp、mv。boot:系统启动时要用到的程序。C盘dev:所有linux系统中使用的外部设备映射文件。和我们常用的windows, dos操作系统不一样。它实际上是一个访问这些外部设备的端口。(虚拟光驱、usb)etc:系统管理的各种配置文件和子目录。

2025-03-04 20:52:20 550

原创 友元和运算符重载

成员函数作为类的成员函数或友元函数、作为一般函数(很少用)( ) [ ] -> = 的重载函数必须是类的成员函数成员函数原型的格式: 函数类型 operator 运算符(参数表);成员函数定义的格式: 函数类型 类名::operator 运算符(参数表){ 函数体;以成员函数的方式重载运算符单目运算符:不带参数,该类对象为唯一操作数双目运算符:带一个参数,该类对象为左操作数、参数为右操作数友元函数。

2025-01-04 21:02:28 932

原创 c++继承与多态

在基类中冠以关键字 virtual 的成员函数函数类型 函数名称(参数列表);如果virtual一个函数在基类中被声明为虚函数,则他在所有派生类中都是虚函数(包括重定义函数)只有通过基类指针或引用调用虚函数才能引发动态绑定(用基类指针指向派生类指针)在类体系中访问一个虚函数时,应使用指向基类类型的指针或对基类类型的引用,以满足运行时多态性的要求。当然也可以像调用普通成员函数那样利用对象名来调用一个函数。在派生类中重新定义虚函数时,必须保证该函数的值和参数与基类中的定义完全一致,否则就属于重载。

2025-01-04 21:01:32 930

原创 c++类和对象

static] 数据类型 类名::数据成员名称=初始值;对象的指针:和一般的指针变量的声明和设定方式相同。对象指针名-> 成员名 Delete 指针名;类名* 指针名=new 类名(参数表);const 类名 对象名(参数表);访问 类名::静态成员函数。

2024-12-07 01:06:20 876

原创 c++面向对象设计方法

3. 类是一个抽象的概念,用来描述某一类对象所共有的、本质的属性和类行为 根据抽象的原则对客观事物进行归纳和划分 C++通过建立数据类型——类来支持封装和数据隐藏。一个定义完好的类可以作为独立模块使用。 类的定义格式分为说明部分和实现部分 说明部分包含数据成员和成员函数说明 实现部分是用来对成员函数的定义 类的一般定义格式如下: 4. 封装封装是指按照信息屏蔽的原则,把对象的属性和操作结合在一起,构成一个独立的对象。 通过限制对属性和操作的访问权限,可以将属性“隐藏”在

2024-12-04 23:06:05 577

原创 c语言文件操作

思维导图

2024-11-20 22:27:03 204

原创 C语言链表

如图 7-1 所示,如果将“节点 2”视为父节点,则其左子节点和右子节点分别是“节点 4”和“节点 5”,左子树是“节点 4 及其以下节点形成的树”,右子树是“节点 5 及其以下节点形成的树”。需要注意的是,插入节点可能会改变二叉树的原有逻辑结构,而删除节点通常意味着删除该节点及其所有子树。与链表类似,二叉树的基本单元是节点,每个节点包含值、左子节点引用和右子节点引用。当给定一个二叉树的节点时,我们将该节点的左子节点及其以下节点形成的树称为该节点的。

2024-11-12 21:57:18 1463

原创 C语言指针基础

一个变量的地址称为该变量的指针。

2024-11-03 18:57:07 834

原创 Django+websocket实现一个简单聊天

WebSocket是独立的、创建在TCP上的协议,它使用HTTP/1.1协议的101状态码进行握手。为了创建WebSocket连接,需要通过浏览器发出请求,之后服务器进行回应,这个过程通常称为“握手”(handshaking)。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。

2024-11-01 20:58:34 1079

原创 c结构体基础

一旦声明了结构体,就可以定义一个或多个该类型的变量示例:struct cat books1;这条语句将会预留足够的内存来存放该结构体中的所有项int edn;

2024-10-27 15:15:40 753

原创 C数组与字符串

存储类型 数据类型 数组名[数组长度];例如:int player[11];数组名后接一个或多个括在方括号内的表达式,用以指定数组的维数 数组长度只能是常量和常量表达式(大于0)

2024-10-21 14:07:21 627

原创 C控制语句

常规格式:if (表达式)语句;·表达式是要判断的条件,跟在后面的是一个或一组语句·在if后的语句不止一个,应用大括号{}将他们组织起来。这样的组会称为“复合语句”或“代码块”。如果只有一个语句,大括号{}可以省略,但不建议。语法形式:if(表达式){ 语句-1;else{ 语句-2;·如果 if 表达式的值为true(非0),将执行 if 语句(一个或一组)后的语句块·如果 if 表达式的值为false(0),那么控制权将交给else 表达式后面的语句。

2024-10-20 14:50:40 773

原创 输入输出与运算符

函数原型:printf()语句中的使用的控制字符串及其语法同样适用于scanf()语句返回值:输入成功的参数数量,否则返回0scanf()使用非打印字符来判断输入数据是什么时候开始和结束的可以忽略空白区域和行边界来获取数据scanf()使用变量指针,参数列表应遵循以下规则:如果希望读取基本数据类型变量的值,应在变量名的前面加上符号& 当读取指针变量指向的值时,在变量名前不能使用 &

2024-10-19 21:30:54 737

原创 C语言基础

语言简洁,紧凑,灵活,关键字少运算符丰富数据结构丰富结构化语言语法限制不严格能够对硬件和内存进行操作代码质量和效率高移植性好。

2024-10-18 14:13:30 671 1

原创 Redis-基础

每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加hash表。HSETNX:添加一个hash类型的key的field值,前提是这个field不存在,否则不执行。Hash类型,也叫散列,其中value是一个无序字典,类似java中的HashMap结构。SET:添加或者修改已经存在的一个string类型的键值对,不存在添加,已存在修改。SETNX:添加一个string类型的键值对,前提是这个key不存在,否者不执行。

2024-08-10 10:36:12 825 2

原创 Git的基本操作

打开终端cmd。

2024-08-09 11:49:46 1340 1

原创 python爬虫的基础知识

爬虫开发需要掌握编程基础,特别是网络请求、HTML/CSS/JavaScript解析、数据存储和异常处理等技能。通过学习爬虫,你可以巩固和提升你的编程技能,特别是Python等编程语言的应用能力。在当今数据为王的时代,数据是做出明智决策的重要依据。通过爬虫,你可以获取到各种公开的数据资源,如市场分析、用户行为、行业趋势等,从而为你的个人决策或商业决策提供有力支持。爬虫可以实现自动化处理任务,如数据抓取、信息监控、报表生成等。这些任务如果手动完成,不仅费时费力,而且容易出错。

2024-07-27 11:46:57 1529 1

原创 python运维实战-ssh工具

一个简单易用的SSH管理工具,允许用户通过图形化界面实现对虚拟机(VM)的基本操作。通过集成SSH协议,该工具能够提供远程登录、命令执行、文件传输等核心功能,为用户提供便捷、安全的虚拟机管理体验。使用 Python 的 Tkinter 模块编写 SSH 工具需要综合考虑界面设计、SSH 连接的实现、用户体验和安全等方面。通过 Tkinter 提供的丰富小部件,可以创建直观且易于操作的界面,让用户输入主机名、用户名、密码等信息,并提供连接按钮来触发 SSH 连接。

2024-07-21 09:08:49 1207

原创 javaScript常用对象

数组的定义格式有两种:方式1var 变量名 = new Array(元素列表);//1,2,3 是存储在数组中的数据(元素)方式2var 变量名 = [元素列表];

2024-07-19 22:17:45 1037

原创 JavaScript

=:判断类型是否一样,如果不一样,则进行类型转换再去比较其值===:js 中的全等于判断类型是否一样,如果不一样,直接返回false再去比较其值。

2024-07-16 20:43:13 723

原创 DQL数据查询

条件查询是指在SELECT语句中使用WHERE子句来过滤出满足特定条件的数据。它允许根据指定的条件从数据库表中提取出符合条件的数据。SELECT 列名1, 列名2, ...FROM 表名WHERE 条件;说明:列名1、列名2表示需要检索的列名,可以选择性地指定需要的列,也可以使用 * 来表示检索所有列。表名表示要从中检索数据的表名。WHERE子句用于指定过滤条件,只有满足条件的行才会包含在结果集中。

2024-07-15 21:38:32 1287 1

原创 tk模块构建一个简单的学生信息管理系统

(1)创建一个students和user数据库分别用来存储学生信息和用户信息。创建students,user数据库(2)创建项目所需文件。

2024-07-14 10:10:47 697

原创 DML数据操作

主键约束(PRIMARY KEY constraint)用于唯一标识数据库表中的每条记录。它有以下特点和要求:唯一性:主键必须包含唯一的值,确保每条记录都可以被唯一标识。非空性:主键列不能包含NULL值,确保每条记录都具有一个有效的标识。单一性:每个表应该有一个主键,并且每个表只能有一个主键。这是确保表中每条记录都有唯一标识的基本要求。主键约束的作用是提供唯一性和标识性,它有以下几个方面的好处:通过主键,我们可以精确地定位和访问表中的每条记录,从而提高检索和查询的效率。

2024-07-13 09:52:08 1262

原创 数据库与SQL语言

在执行DML语句之后,可以通过提交事务(COMMIT)将修改的数据永久保存到数据库中,或者通过回滚事务(ROLLBACK)来撤销对数据的修改。注意1:除了SELECT语句,DQL还可以包括其他一些语句,如子查询语句(将一个查询结果作为另一个查询的输入)、WITH语句(定义可重用的查询块)、UNION操作(将多个查询结果合并)等。注意2:DML语句也可以与DDL语句结合使用,例如可以在一个事务中先创建表(DDL),然后插入数据(DML),最后提交事务。这样可以确保数据的一致性,并且可以实现复杂的数据库操作。

2024-07-12 09:19:50 1182

原创 python运算符

如果表达式1为假,则最终结果由表达式2来决定,如果表达式2为真,则最终结果为真;如果表达式2为假,则最终结果为假。按位与(&):对两个数的二进制位进行与操作,只有当两个对应位都为 1 时,结果为 1,否则为 0。按位或(|):对两个数的二进制位进行或操作,只要两个对应位中有一个为 1,结果为 1,否则为 0。按位异或(^):对两个数的二进制位进行异或操作,当两个对应位不同时,结果为 1,否则为 0。如果表达式1为真,则最终的运算结果由表达式1来决定,为真,表达式2不需要在进行运算。

2024-07-11 09:10:45 681

原创 python深浅拷贝

浅拷贝会创建一个新的对象,但是如果原对象中的元素是可变的,那么新对象中的这些元素将是原对象中对应元素的引用(即内存地址相同),而不是它们的拷贝。这意味着,如果你修改了新对象中的这些可变元素,原对象中的相应元素也会被修改。浅拷贝在需要快速复制对象但不需要完全独立于原对象(特别是当内部元素不可变时)时非常有用。然而,当内部元素是可变类型时,需要特别小心,因为对浅拷贝的修改可能会意外地影响到原对象。

2024-07-10 09:25:37 939 2

原创 正则表达式详解

正则表达式的匹配规则有很多,很容易记混,只有多加练习才能烂熟于心,用起来才能得心应手。

2024-07-09 10:43:40 1687

原创 python中的输入与输出

标准输入(stdin)是指用户通过键盘或其他输入设备输入的数据。通过标准输入,程序可以接受用户输入的文本、数字或其他数据,并将其用于执行特定的任务。在实际项目中经常会用到输入,所以怎么标准的进行输入就显得格外重要。

2024-07-08 16:18:26 828 1

原创 利用爬虫爬取百度图片

导包(爆红的话终端使用pip 命令下载即可)

2024-07-07 09:46:06 2132 9

原创 python必备知识点之循环结构

定义:循环是一种控制流语句,它允许你重复执行一段代码块直到满足某个条件为止。

2024-07-06 11:20:39 2228

原创 python必备知识点之数据类型

字符串是 Python 中最常用的数据类型。我们一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。运行结果:使用单引号情况运行结果:说明:字符串的定义代码出现了语法错误(SyntaxError)。单引号在字符串定义中必须成对出现,而且Python解析器在解析代码时,会自动认为第一个单引号和最近的一个单引号是一对!运行结果:建议:在Python中,如果存在多个引号① 单引号放在双引号中;② 双引号放在单引号中。列表 (List)特征:有序的可变序列。定义:用方括号。

2024-07-05 18:10:19 2219 2

基于Django的新能源汽车销售平台

毕业设计

2025-05-27

Qt开发基于C++的智能执法记录仪

本程序是一个单机版的执法记录仪应用程序,用 Qt、C++语言编写,在 Linux 环境下运 行。模拟执法记录仪(执法记录仪是根据执法部门的实际需要,设计研发的一款高科技产品, 集数码摄像、数码照相等功能于一身,能够对执法过程进行动态、静态的现场情况数字化记 录,它适用于药监、交通、城管、食品监管等行业在各种环境中执法使用,是执法人员必不 可少的守护精灵)的功能,实现用户登录注册、视频的播放存储、拍照存储、视频回放、照 片查看以及视频转码等功能。

2025-05-27

基于c++门诊预约管理系统

c++小项目

2025-03-04

基于c语言俄罗斯方块小游戏

基于c语言俄罗斯方块小游戏

2025-03-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除