- 博客(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
原创 数据库的存储引擎
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-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
原创 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
原创 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
关于#拒绝访问#的问题,如何解决?
2023-05-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人