自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SQLite数据库从0到1

SQLite数据库功能特性:ACID事务;;足够小,大致13万行C代码4MB左右;。独立,无额外依赖。源码完全开源。支持多种编程语言,如 C/C++、PHP、Java、Python 等。ACID:在 DBMS 写入或更新数据过程中,为保证事务正确可靠,具备4 个特性。常用指令SQLite数据库中的主表保存数据库表的关键数据信息,命名为sqlite_master。创建SQ Lite数据库及创建表。

2025-02-27 15:42:36 1050

原创 MFC文件和注册表的操作

4、C语言和MFC的文件操作用途广泛;注册表 存储在二进制文件里面,win32API提供了大量的函数操作注册表。1、调试日志 debugview 文件日志:警告日志 错误日志。对于宽字节而言 wchar a[20] = “bingo”;3、文件传输 CFile 与 socket 结合使用。文件、管道、邮槽 通信资源、磁盘设备、控制台、目录。注册表:Win+R组合键 regedit。6、注册表的操作 病毒 逆向 操作注册表。5、配置文件 windows。

2025-02-25 15:51:54 858

原创 动态链接库

DLL就是真个windows操作系统的基础。动态链接库不能直接运行,也不能接收消息。他们是一些独立的文件Windows API中的所有函数都包含在DLL中其中最重要的DLL使用动态链接库的好处增强产品的功能。(更换界面的DLL)换皮肤提供二次开发的平台。(SDK基础版本)简化项目管理(串行开发,以多个DLL的方式实现)可以节省磁盘空间和内存有助于资源的共享。(对话框模板,字符串,图标)有助于实现应用程序的本地化。(多语言版本)可以采用多种编程语言来编写。

2025-02-24 21:42:29 921

原创 进程基本概念和通信方式

剪切板比较简单。剪切板和匿名管道只能实现同一机器的两个进程通信,而不能实现网络进程之间的通信。邮槽是基于广播的,可以一对多发送。但只能一个发送,一个接收,要想同时发送接收,须写两次代码。邮槽的缺点:传输的数据量很小424字节以下。命名管道和邮槽可以进行网络通信。命名管道只能是点对点的单一通信。WM_COPY_DATA封装数据和解析数据。非常方便。如果数据量大,建议使用命名管道。

2025-02-24 16:17:01 723

原创 多线程群聊服务器设计

1、每来一条消息,服务端起一个线程(安排一个工人)维护。3、某个连接断开,需要处理断开的连接。2、将收到的消息转发给所有的客户端。2、与服务器进行通信。

2025-02-23 11:28:33 177

原创 多线程(一)

main函数返回后,整个进程终止,同时终止其包含的所有线程。起两个线程,一个加+1,一个减 -1。它可以由进程的任何线程 使用。通过API来创建,每个内核对象。调用创建内核对象的函数后,,但其他大多数成员都是。

2025-02-17 22:18:08 297

原创 MFC项目怎么添加工具栏?

在创建MFC项目的时候,我选择的是经典菜单,后续添加工具栏该怎么办呢?

2025-02-09 18:02:17 323

原创 MFC——简单绘图

MFC简单绘图

2025-02-08 22:36:30 333

原创 数据库的存储引擎

​ MySQL中存在多种存储引擎的概念。简而言之,存储引擎就是指,为,可以根据实际来存储。因为存储引擎指定了,即如何,是否,同时存储引擎也决定了表在计算机中的方式。

2025-02-07 11:43:48 419

原创 数据库管理——存储过程和函数

在具体创建存储过程时,存储过程名不能与已经存在的存储过程名重名,实战中推荐存储过程名命名为procedure_xxx或者proc_xxx。proc_param中每个参数的语法形式如下:IN 输入类型、OUT 输出类型、INOUT(输入 / 输出类型)param_name表示参数名type表示参数类型,可以是任意一个数据类型在存储过程中使用变量定义变量为变量赋值从表employee中查询id为3的记录,将该记录的id值赋给变量光标的使用声明光标打

2025-02-06 21:51:21 1281

原创 数据库管理——触发器

表示触发事件,即触发器执行条件,包含DELETE、INSERT和UPDATE语句;trigger_STMT表示激活触发器后被执行的语句。为了解决该问题,可以使用关键字DELEMITER语句。执行语句中如果要引用更新记录中的字段,对于。查看系统表triggers实现查看触发器。,后者在触发器事件之后执行触发器语句;语句可以和**NEW(更新后)OLD(更新前)**同时使用。的系统表,因此查询该表格的记录。指定了触发器执行的时间,前者。MySQL中,在系统数据库。表示触发事件的操作表名;

2025-02-06 11:09:33 736

原创 数据库管理——视图操作

​,是一种的表。视图就,通过这个窗口可以看到系统,这样不看整个数据库表中的数据,而。视图可以使用户的,而且可以。

2025-02-05 20:15:13 1003

原创 数据查询——其他查询

​ 查询数据是指从数据库中获取所需要的数据,eg:数据库已保存的用户表读取当前用户的密码进行验证。

2025-02-05 14:30:12 784

原创 数据查询——简单查询

​ 查询数据是指从数据库中获取所需要的数据,eg:数据库已保存的用户表读取当前用户的密码进行验证。

2025-02-05 11:47:32 821

原创 作业-设计游戏用户信息表

分成两个表:用户信息表和用户验证表。作用二:用来保存用户的基本信息。作用一:验证用户身份。

2025-02-04 16:50:38 400

原创 数据库管理——表操作

表的插入、更新、删除

2025-02-03 17:59:23 271

原创 数据库管理——表索引

索引类型​索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引索引。

2025-02-03 16:23:03 1087

原创 数据表创建——列的完整性约束

​完整性约束条件是对字段进行限制,要求用户对该属性进行操作符合特定的要求。如果不满足完整性约束条件,数据库系统将不再执行用户操作。

2025-02-02 17:40:39 847

原创 表的创建(列的类型定义)

[在这里插入图片描述](https://i-blog.csdnimg.cn/direct/80c1f838742c40809d29ec911c2d12c2.png类型名称后面的小括号:表示 显示宽度,并不是占用字节数,一般配合zerofill使用,数字位数不够,用’0’补充UNSIGNED(无符号)use school;#指定zerofill之后,自动转换为int unsigned表示自增、从1开始,每一行加1。一个表中最多由 一个AUTO_INCREMENT列。

2025-01-26 16:43:51 1118

原创 数据库&MySql——数据库操作

​ 关系数据库是建立在关系模型上的。而关系模型本质上就是若干个存储数据的二维表,可以把它们看作很多Excel表。

2025-01-26 11:21:24 372

原创 C++11新特性——智能指针(二)

初始化构造函数使用make_shared初始化对象,分配内存效率更高函数的主要功能是在动态内存中分配一个对象并初始化它,返回指向此对象的int其他使用陷阱shared_ptr作为被管控的对象的成员时,小心因循环引用造成无法释放资源。

2025-01-25 15:32:13 722

原创 C++11新特性——C++智能指针(一)

​ 如果我们,那么对象时,让它的指向的,这看似是一个very nice的方案?智能指针就是通过这个原理来解决指针自动释放的问题!

2025-01-23 20:06:33 238

原创 C++11新特性——类型转换(二)

四种C++类型转换

2025-01-22 20:43:21 223

原创 C++11及其新特性 (一)

array、explicit、左值和右值、函数返回值当引用

2025-01-22 12:10:37 317

原创 STL项目实践

并能根据每种不同类型的比较规则从容器中取得最大或最小的那个值或对象。实现一个通用的容器,能够支持插入多种不同的。p15_stl_实践.cpp。

2025-01-21 21:25:44 770

原创 异常处理机制

异常是一种程序控制机制,与函数机制互补​。函数是一种以栈结构展开的上下函数衔接的程序控制系统,异常是另一种控制结构,它可以在出现“意外”时中断当前函数,并以某种机制(类型匹配)回馈给隔代的调用者相关的信息。

2025-01-21 20:00:03 678

原创 类模板实战项目——vector基础功能复现

请设计一个数组模板类( Vector ),完成对int、char、float、double 以及任意的自定义类等类型元素进行管理。需要注意的是,在重载<<时,如果类模板,需要在 operator << 后面加上。类模板实践测试.cpp。

2025-01-20 20:50:30 1222

原创 C++核心编程--模板的使用

先写出一个实际的类将此类中准备改变的类型名(如int 要改变为float或char)改用一个自己指定虚拟类型名在类声明前面加入一行,格式为:template <typename 虚拟类型参数>如:templateclass A{…};//类体用类模板定义对象时,用以下形式:类模板名<实际类型名> 对象名;或 类模板名<实际类型名> 对象名(实参表列);如:A cmp;A cmp(3,7);

2025-01-20 16:56:25 738

原创 学习虚函数

用来修饰类的虚函数,使得该虚函数在子类中,不能被重写。如果基类指针指向的是基类对象,那么只调用。在项目属性中C/C++命令行选项中添加。override仅能用于修饰虚函数。用来修饰类,让该类不能被继承。,不需要在函数的实现中使用。,使基类析构函数为虚函数。释放基类指针时,会实现。理解:使得该功能终结。如果基类指针指向的是。

2025-01-19 15:49:26 844

原创 仙侠游戏——C++基础的应用

为了便于实现贸易活动,在灵石类中重载加法+运算在灵石类中重载减法-运算在灵石类中重载比较运算>=在灵石类中添加获取块数的方法在妖兽类中重载==运算在妖兽类中添加获取战斗力的方法。

2025-01-17 19:58:44 211

原创 C++基础易错点

【要使用。

2025-01-17 19:50:08 261

原创 AtCoder Beginner Contest 094 D - Binomial Coefficients

题解

2024-07-23 10:34:33 236 1

原创 【无标题】

【代码】【无标题】

2024-03-25 16:27:45 121 1

原创 codeforce897 D. Cyclic Operations 题解

因此,我们假设有借,并且题目给出的b数组,就是最终形成的数组,结合一下上下文我们知道,每进行一次操作后,模拟一下可以发现,如果我们操作了[i_1,i_2,...,i_k]这k个位置,然后对于每个位置i向位置。至于图中不属于环的部分,他们显然可以作为最先被操作的点,也就是说后序的操作可能会覆盖掉原先的环,导致了。图中会有不属于环的部分,所以我们直接默认最后不属于环的部分,他们原先一定是属于某个覆盖的环中。a[i]连接一条有向边,那么[i_1,i_2,..i_k]这k个位置必然形成一个大小为k的有向环;

2023-09-13 11:54:18 178 1

原创 string的用法

cout<<"str="<<str<<" str的类型为"<<typeid(str).name()<<endl;//将字符串的前n个字符插入到pos位置。cout<<"num="<<num<<" num的类型为"<<typeid(num).name()<<endl;cout<<"num="<<num<<" num的类型为"<<typeid(num).name()<<endl;cout<<"str="<<str<<" str的类型为"<<typeid(str).name()<<endl;

2023-07-14 16:34:39 843 1

原创 面向对象综合程序设计(Java)课程设计:学生成绩管理系统

为了帮助老师更好地管理学生并及时了解学生成绩,设计本成绩管理系统来帮助老师更为直观的了解学生学习情况。

2023-06-12 20:16:57 1502 2

原创 1——基本数据类型

Java入门 ——基础数据类型

2023-03-05 21:33:03 194 2

原创 【无标题】

三步必杀,一次差分不够,那就再来一次吧!!

2022-11-09 18:33:56 126

原创 PTA错题集

PTA错题集

2022-11-09 09:38:41 2573

多线程-互斥量、事件对象、信号量、关键代码段

多线程-互斥量、事件对象、信号量、关键代码段

2025-02-23

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

TA关注的人

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