自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 golang 的github.com/dgrijalva/jwt-go包

除了标准的声明,用户可以自定义声明来携带更多的信息。例如,添加用户ID、权限等。通过以上示例,可以实现一个功能完善的JWT中间件,用于保护Gin框架下的API端点。该中间件能够高效验证JWT令牌,确保只有合法用户能够访问受保护的资源。同时,通过灵活的配置和自定义声明,可以满足不同的业务需求。此外,结合Gin框架的高性能特性,该中间件能够在高并发场景下稳定运行,保障应用的安全性和可靠性。包为Go语言提供了一个功能强大且易用的JWT实现。通过它,开发者可以轻松地生成和验证JWT,满足各种身份验证和授权需求。

2025-04-04 00:44:32 471

原创 golang 的encoding/json包

有时候,默认的序列化和反序列化方式无法满足需求,这时可以通过实现和方法来自定义行为。// 自定义 MarshalJSON 方法}{})p := P3{// 编码// 处理错误// 输出: {"Name":"jon","Address":{"state":"beijing"}}结构体通过自定义方法,将Name字段序列化为state字段。str = str[1 : len(str)-1] // 去除双引号if err!

2025-04-04 00:27:52 632

原创 html+css+javaScript实现一个扫雷游戏

扫雷游戏是一款经典的单人小游戏,玩家通过点击格子来探索地图,避开爆炸的雷。游戏的基本功能包括:多种地图尺寸:支持从10x10到30x30的不同尺寸地图。多级难度:通过调整雷的数量,提供不同难度级别的游戏体验。计时器:记录玩家完成游戏所用的时间。右键标记:允许玩家标记可疑的格子。自动打开空白区域:点击无雷的格子时,自动递归展开周围的周围无雷的格子。

2025-04-02 20:20:41 278

原创 html+css+js 实现一个贪吃蛇小游戏

# Node.js Express 小游戏项目初始化与运行指南 ## 项目描述 这是一个基于 Node.js 和 Express 的基本 Web 应用,包含自制的贪吃蛇游戏(通过`greedy_snake.html`访问)以及三个使用iframe展示的小游戏(由`other.js`提供支持)。## 初始化与安装 1. 首先,初始化一个新的 Node.js 项目: ```bash npm init ```2. 安装项目的核心依赖项:```bashnpm install

2025-04-02 19:09:10 401

原创 golang 的channel

关于golang的channel的简单介绍。

2025-04-01 18:26:37 625

原创 golang的database.sql包和事务处理

事务是数据库操作中的一个逻辑单元,由一系列的数据库操作组成。这一系列操作要么全部执行并且提交,要么全部回滚,确保数据的一致性和完整性。预处理语句是指在数据库中提前编译和优化的SQL语句模板,可以在之后多次重复使用。在这个示例中,预处理语句一次创建,多次执行,提升了效率,并降低了SQL注入的风险。

2025-03-30 22:13:31 1076

原创 golang 的reflect包的常用方法

p := Person{Name: "小明", Age: 22}

2025-03-30 21:56:28 244

原创 golang 的time包的常用方法

time.Time。

2025-03-30 21:50:10 409

原创 golang 的strconv包常用方法

【代码】golang 的strconv包常用方法。

2025-03-30 21:44:52 653

原创 golang strings包常用方法

【代码】golang strings包常用方法。

2025-03-30 21:37:12 371

原创 golang 的io与os包中的常用方法

io.ReadAll用于从Reader接口读取所有数据并返回一个字节切片。os.Open打开一个文件用于读取。如果操作成功,则返回一个指向File的指针;如果失败,则返回错误。更通用的打开文件的方式,允许指定标志(如只读、读写等)和权限模式。os.Create创建一个新文件用于写入,如果文件已存在则会被截断。向文件写入字符串,并返回写入的字节数。

2025-03-30 21:34:33 532

原创 golang 日志log与logrus

log特性loglogrus日志级别有限(Fatal、Error)多级别(Debug~Panic)格式化输出支持支持(Text/JSON)日志轮转不支持支持(需配合 lumberjack)钩子机制不支持支持输出目标标准输出/文件多种(文件、网络等)社区和扩展性内置库第三方库,社区丰富。

2025-03-30 15:42:16 861

原创 golang sync 同步与锁

syncMutex:互斥锁,用于保护临界区,防止多个goroutine同时访问共享资源。RWMutex:读写互斥锁,允许多个读者同时访问共享资源,而写者必须独占。WaitGroup:用于等待一组goroutine完成。Cond:条件变量,用于在goroutine之间协调事件发生的顺序。Map:一个并发安全的map,适合频繁的读写场景。Pool:对象池,用于管理一组可重用的对象,减少内存分配和垃圾回收的开销。Go语言通过sync。

2025-03-30 15:30:38 1124

原创 哔哩哔哩IT私塾python爬虫视频教程中的项目文件

第一个项目douban(纯python项目):爬取数据并保存到xls和数据库。第二个项目douban_flask(flask项目):把第一个项目得到的数据库文件的数据可视化。

2025-02-27 14:03:41 409

原创 java 客户端、服务端聊天系统 文字交流 (多线程)

该程序实现了一个简单的文字交流聊天室,允许多个客户端通过网络与服务端进行实时消息交流。服务端负责管理连接的客户端,广播消息并处理连接和断开操作,而客户端则提供用户界面供用户输入和接收消息。(运行一次客户端程序即生成一个客户端窗口)

2024-11-20 20:42:19 1033

原创 计算机图形学 实验二 三维模型读取与控制

计算机图形学 实验二 三维模型读取与控制

2024-11-08 12:02:37 1185

原创 贪吃蛇 C++简易版(完整代码)

【代码】贪吃蛇 C++简易版(完整代码)

2024-07-29 20:32:18 1914 1

原创 老鼠走迷宫游戏(已定义4个关卡)

老鼠走迷宫代码

2024-07-29 19:04:17 395

原创 5种查找方法简单介绍:顺序查找、分块查找、二分查找、哈希查找、插值查找

5种查找算法的简单介绍:顺序查找、分块查找、二分查找、哈希查找、插值查找

2024-06-27 13:39:07 1519

原创 5种算法简单介绍:贪心算法、分治法、回溯法、动态规划法、最大流算法

在这类问题中,可能会有许多可行解,每个解都对应一个值,动态规划的目标是找到具有最优值的解。分治法是一种将问题分解为若干个子问题,递归地解决这些子问题,然后将子问题的解合并起来得到原问题的解的算法。背包问题(给定一组物品,每种物品都有自己的重量和价值,在限定的总重量内,如何选择使得物品的总价值最高)。图的着色问题(给定一个无向图,用k种颜色给图中的顶点着色,使得任意两个相邻的顶点颜色不同)。最优子结构:原问题的最优解所包含的子问题的解也是最优的。保存子问题解:保存已解决的子问题的解,避免重复计算。

2024-06-26 21:58:34 800

原创 C++记录程序运行时间的4方法

首先,你需要安装Boost库,并在项目中包含Boost.Timer头文件。的精度在1到15毫秒之间,并且其值会在大约49.7天后回绕。Boost库提供了一个计时器模块,用于测量代码块的执行时间。库提供了基于系统时间的函数clock()。这两个函数提供了更高的精度,通常在微秒级别。这个函数返回从系统启动开始经过的毫秒数。库提供了高精度的时间测量功能。

2024-06-22 17:14:28 7491

原创 常见的8种排序(含代码示例):插入排序、冒泡排序、简单选择排序、希尔排序、快速排序、堆排序、归并排序、基数排序

该方法的基本思想是:先将整个待排序的记录序列分割成为若干子序列(由相隔某个“增量”的记录组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。从第一个元素开始,该元素可以认为已经被排序;通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

2024-06-22 17:05:08 651 2

原创 算法设计与分析:分治法求最近点对问题

算法设计与分析:分治法求最近点对问题蛮力法和分治法

2024-06-21 17:34:36 1278

原创 算法设计与分析:并查集法求图论桥问题

1. 掌握图的连通性。2. 掌握并查集的基本原理和应用。在图论中,一条边被称为“桥”代表这条边一旦被删除,这个图的连通块数量会增加。等价地说,一条边是一座桥当且仅当这条边不在任何环上,一个图可以有零或多座桥。现要找出一个无向图中所有的桥,基准算法为:对于图中每条边uv,删除该边后,运用BFS或DFS确定u和v是否仍然连通,若不连通,则uv是桥。应用并查集设计一个比基准算法更高效的算法,不要使用Tarjan算法。

2024-06-21 15:07:40 1303

原创 算法设计与分析:动态规划法求扔鸡蛋问题 C++

算法设计与分析:动态规划法求扔鸡蛋问题 三种方法:常规动态规划、动态规划加二分查找最优x、动态规划加逆向求解

2024-06-21 13:52:32 1761

原创 HTML+CSS+PHP实现网页留言板功能(含代码,需要创建数据库)

话说前头,我这方面很菜滴。这是我网页作业的一部分。

2024-06-18 23:11:49 2260 3

原创 算法设计与分析:网络流求解棒球赛淘汰问题C++

1. 实现利用网络最大流求解上述棒球赛淘汰问题的算法。2. 实验内容中要解释流网络的构造原理,以及解释为什么最大流能解决这个问题。3. 实验课时检查实现代码、算法原理以及表1数据作为输入时的算法运行结果,要求输出哪些队已没有夺冠的可能。

2024-06-18 22:39:07 2106

原创 算法设计与分析:回溯法求解地图涂色问题(含代码,4种改进方法)

算法设计与分析回溯法求解地图涂色问题4种改进方法

2024-05-07 22:17:07 1795

原创 并发和并行的区别和联系

总结来说,并发强调的是逻辑上的同时发生,而并行强调的是物理上的同时发生。并发通常指多个任务可以在同一个时间段内同时执行,但在宏观上仍然是“串行”的,即在单CPU系统中,多个任务轮流使用CPU资源。在微观层面,并发表现为多个进程或线程快速交替执行,而不是真正的同时执行。并行则是指多个任务在同一时刻真正意义上的同时执行,即在多处理器系统或多核处理器中,多个任务可以同时在不同的处理器核心上运行。并行在微观和宏观上都是同时发生的,因为它涉及到多个处理器或核心同时处理多个任务。

2024-03-07 11:32:03 692 1

原创 数据结构:串应用--KMP算法(next和nextval)C++

然后主串、模式串,以此类推。

2024-01-14 10:13:57 469 1

原创 数据结构:堆栈--迷宫求解 C++

t趟,每趟先输入N,NxN矩阵(0为路,1为墙)、起点坐标x1、y1、终点坐标x2、y2.

2024-01-14 10:05:28 426 1

原创 堆排序(大小堆)数据结构C++

if(jk[j+1])//改为=k[i])//改为

2024-01-06 11:59:08 405 1

原创 Java 服务端、客户端(间)文字交流(含图形用户界面)

利用数据报通信方式编写一程序,该程序生成两个客户端,一个服务器端,两个客户端可以相互进行简短的文字交流。

2024-01-02 12:40:19 612 1

原创 贪吃蛇C++

int nTail;dir = STOP;score = 0;nTail = 0;i++)i < height;i++)j < width;j++)elsek < nTail;k++)if (!printTail)i++)case 'a':dir = LEFT;break;case 'd':

2023-12-27 10:16:58 398 1

原创 森林叶子编码C++(森林转二叉树)

class BNode{//二叉树结点。class BTree{//二叉树。class Node{//树结点。class Tree{//树。

2023-12-26 22:55:26 515 1

原创 DS哈希查找--Trie树(C++)两种代码

它是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。输入的一组单词,创建Trie树。输入字符串,计算以该字符串为公共前缀的单词数。

2023-12-23 22:26:23 484 1

原创 DS哈希查找—线性探测再散列

定义哈希表为H(key)=key%11,输入表长(大于、等于11)。输入关键字集合,用线性探测在散列构建哈希表,并查找给定关键字。

2023-12-23 21:29:12 581 2

原创 平衡二叉树的根C++

【代码】平衡二叉树的根C++

2023-12-23 21:20:23 403 1

原创 二叉搜索树的最近公共祖先(C++)

给定一棵二叉搜索树的先序遍历序列,要求你找出任意两结点的最近公共祖先结点(简称 LCA)。

2023-12-23 20:40:55 352 1

原创 Java处理问题:客户端关闭后服务端会重复输出客户端最后传递的信息

在Java中,客户端关闭后服务端会重复输出客户端最后传递的信息,这是因为在TCP协议中,客户端关闭连接时,操作系统并不会立即关闭连接,而是会发送一个FIN包给服务端,告诉服务端客户端已经关闭连接。解决这个问题的方法是在服务端代码中判断客户端是否已经关闭连接,如果已经关闭连接,则不再输出客户端传递的信息。System.out.println("客户端已连接,IP地址为:" + socket.getInetAddress().getHostAddress());

2023-12-15 10:23:25 618

html+css+javaScript实现一个扫雷游戏(顺带上用iframe展示的3个小游戏:2048、数独、3D魔方)

扫雷游戏是一款经典的单人小游戏,玩家通过点击格子来探索地图,避开爆炸的雷。游戏的基本功能包括: 多种地图尺寸:支持从10x10到30x30的不同尺寸地图。 多级难度:通过调整雷的数量,提供不同难度级别的游戏体验。 计时器:记录玩家完成游戏所用的时间。 右键标记:允许玩家标记可疑的格子。 自动打开空白区域:点击无雷的格子时,自动递归展开周围的周围无雷的格子。

2025-04-02

html+css+js 实现一个贪吃蛇小游戏(顺带iframe展示其他3个找到的小游戏:2048、数独、3D魔方)

# Node.js Express 小游戏项目初始化与运行指南 ## 项目描述 这是一个基于 Node.js 和 Express 的基本 Web 应用,包含自制的贪吃蛇游戏(通过`greedy_snake.html`访问)以及三个使用iframe展示的小游戏(由`other.js`提供支持)。 ## 初始化与安装 1. 首先,初始化一个新的 Node.js 项目: ```bash npm init ``` 2. 安装项目的核心依赖项: ```bash npm install express ``` 3. 启动项目 ```bash node index.js ``` 4. 访问项目 访问localhost:3000,即可访问项目 5. 安装并使用nodemon:开发Node.js应用时自动重启服务器(可选) ```bash npm install -g nodemon nodemon index.js ```

2025-04-02

go学习中编写的代码,包含常用包的各种常用方法示例和注释说明

包含以下文件:file、filepath、format(printf)、runtine、in_out(scan_print)、io_os、ioutil(已废弃)、log、reflect、strconv、strings、sync、time、tx(事务)、wiki(基于Go语言的Web应用程序,基本的Wiki系统,go官网文档的教学例子)

2025-03-30

哔哩哔哩IT私塾python爬虫视频教程中的项目文件,包括douban和douban-flask

哔哩哔哩IT私塾python爬虫视频教程中的项目文件,包括douban和douban_flask

2025-02-27

java 客户端、服务端 文字交流 (多线程)

程序概述 该程序实现了一个简单的文字交流聊天室,允许多个客户端通过网络与服务端进行实时消息交流。服务端管理连接的客户端,广播消息并处理连接与断开操作,而客户端提供用户界面供用户输入和接收消息。 主要组件 服务端(Server): 使用 ServerSocket 监听客户端连接请求。 每个客户端由 ClientHandler 线程处理,负责消息的接收与发送。 使用 ArrayList 存储所有连接的客户端处理器,以便广播消息。 客户端(Client): 通过 Socket 连接到服务端。 提供用户界面 (ClientDemo 类) 供用户输入消息并显示接收到的消息。 通过输入流和输出流与服务端进行通信。 功能 消息发送与接收: 客户端可以输入消息并通过“发送”按钮将其发送到服务端,服务端会广播给所有客户端。 用户通知: 服务端会通知所有客户端有新客户端连接或断开,并在界面中显示相关消息。 使用说明 先运行服务端程序(端口60001); 再运行客户端(每运行一次即生成一个客户端窗口) “清除”按钮:清除输入框(也可以取消界面类底部注释语句以清除聊天记录)

2024-11-20

计算机图形学 实验二 三维模型读取与控制

1.OFF格式三维模型文件的读取 参考上机实验2.2的内容,完成对OFF格式三维模型文件的读取与显示,可改变物体的显示颜色,尽量特别,但不要太难看。 2.三维模型的旋转动画 参考实验2.1中动画的生成方式,并结合实验2.3中对模型进行旋转变换的过程,生成旋转动画。 3.键盘鼠标的交互 参考实验2.1中鼠标与键盘的交互,通过键盘设定选择绕x、y、z轴进行旋转,通过鼠标左右键控制动画的开始与暂停。 4.模型的修改 参考以下代码,通过键盘设定可以在cow.off和cube.off之间切换。 清除顶点数组缓存: glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); 二维向量: std::vector<std::vector<?>> 其他STL相关代码可以查阅C++ STL 教程 | 菜鸟教程 (runoob.com)

2024-11-08

迷宫游戏(已定义4个关卡)

关卡数和关卡内容可自定义

2024-07-29

算法设计与分析:网络流求解棒球赛淘汰问题C++

我们展示一组虚构的数据(这是在1996年8月30日美国联盟东区比赛结果的基础上略作修改得来的) 表1 各球队的得分情况和剩余的场次安排 其中,纽约扬基队暂时排名第一,总共胜75场,负59场,剩余28场比赛没打,其中和巴尔的摩还有3场比赛,和波士顿还有8场比赛,和多伦多还有7场比赛,和底特律还有3场比赛(还有7场与不在此分区的其他队伍的比赛)。底特律暂时只有49场比赛获胜,剩余27场比赛没打。如果剩余的27场比赛全都获胜的 没有夺冠(被淘汰)可能分两种情况: 1、明显的:win[i]+remain[i]<win[j]         即第i个队伍已经胜利场数加上剩余场数(即使最好情况下,剩余场数全赢)仍小于队伍j已经胜利的场数。 2、不明显的:最大流         对于剩下的队伍,如果有夺冠的可能(即不被淘汰的可能),则会比完剩下的全部场次remain[],直到最后夺冠,而不会中途被淘汰。须最好情况下成立:         

2024-06-28

算法设计与分析:分治法求最近点对问题(完整代码,可设置循环次数,用于效率分析)

算法设计与分析:分治法求最近点对问题(完整代码,可设置循环次数,用于效率分析) 保护蛮力法和分治法

2024-06-22

算法设计与分析:分治法求最近点对问题(完整代码)

算法设计与分析:分治法求最近点对问题 蛮力法和分治法

2024-06-22

算法设计与分析:并查集法求图论桥问题

算法设计与分析:并查集法求图论桥问题 基准法和使用并查集的高效算法(不使用Tarjan算法)

2024-06-21

算法设计与分析:动态规划法求扔鸡蛋问题 C++(完整代码)

算法设计与分析:动态规划法求扔鸡蛋问题 三种方法:常规动态规划法、动态规划加快速查找最优x、动态规划加逆向求解法

2024-06-21

HTML+CSS+PHP实现的网页留言板功能(需要创建数据库)

HTML+CSS+PHP实现的网页留言板功能(需要创建数据库) 4个文件:leaving.php,leaving_styles.css,post_massages.php,display_massages.php body部分包括一个输入框和一个留言展示框。 每个留言前输出留言时间;留言间用分割线分开。

2024-06-18

Java一个服务端、两个客户端(间)实现文字交流(含图形用户界面)

两个客户端和一个服务端。 连接成功时有提示信息。 任意一个客户端发送的信息都会被服务端接收并经服务端发送给其他的客户端;而服务端自己发送的信息所有客户端都能接收到。 先运行服务端,再运行(先后无要求)客户端1和2。

2024-05-17

算法设计与分析:回溯法求解地图涂色问题(含代码,4种改进方法)完整代码!

算法设计与分析:回溯法求解地图涂色问题(含代码,4种改进方法)完整代码!

2024-05-10

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

TA关注的人

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