程序设计20231311课程 计算机

C++ 设计模式之中介者模式

设计模式之中介者模式 中介者模式,用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地互相引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。该模式很好理解,其UML图如下: Mediator中每个交互者的引用,在Mediator内部封装了各种类之间的交互。至于那个类和那个类交合则 ......
中介者 模式 设计模式 中介

C++ 设计模式之享元模式

设计模式之享元模式 享元模式,运用共享技术有效地支持大量细粒度的对象。面向对象技术可以很好地解决一些灵活性或扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式正式为了解决这依赖问题而诞生的。享元模式通过共享技术实现相同或相似对 ......
模式 设计模式

C++ 设计模式之解释器模式

设计模式之解释器模式 解释器模式,给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。解释器模式解决的问题是,如果一种特定类型的问题发生的频率足够高,那么可能就只得将该问题的各个示例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些 ......
模式 解释器 设计模式

C++ 设计模式之责任链模式

设计模式之责任链模式 责任链模式,使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象练成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。该模式很好理解,其UML图如下: 每个ConcreteHandler都有一定的请求处理能力,当自己处理不了的时候就把请求转 ......
模式 设计模式 责任

C++ 设计模式之命令模式

设计模式之命令模式 命令模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。其UML类图如下: 该模式主要是为了隔离请求和实际执行者之间解除。就是解耦和,所有的请求统一有一个类负责,而该类负责管理这些请求(添加请求、撤销请求之类的) ......
模式 设计模式 命令

简单猜数字游戏设计

下面是游戏设计要求: 游戏随机选择一个 100 以内的自然数, 然后让玩家猜出这个数字。每轮告诉玩家他猜数字高了还是低了,直到猜出数字为止。 代码实现通过上述游戏要求,我们来探索如何将上述要求转换为代码。 初始设置包含一个游戏标题,一个用于输入内容输入框,一个提交按钮,以及一个提示游戏的游戏说明 < ......
数字

C++ 设计模式之桥接模式

设计模式之桥接模式 桥接模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化。这里说的实现分离,并不是说然抽象类与派生类分离,这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。其UML图如下: 结合上图理解一下其定义。抽象部分指的是Abstraction或者RefinedAbst ......
模式 设计模式

C++ 设计模式之单例模式

设计模式之单例模式 保证一个类仅有一个实例,并提供一个访问他的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且可以提供一个访问该实例的接口。其UML图如下: 其示例代码 ......
模式 设计模式

C++ 设计模式之组合模式

设计模式之组合模式 组合模式,将对象组合成属性结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。其UML图如下: 一个组织有很多子组织,而无论子组织是单独一个部门或是一个分组织。该组织都希望把它们当成一样的子组织来管理。举个例子吧,就拿公司来说吧,一个公司总部 ......
模式 设计模式

C++ 设计模式之简单工厂模式

设计模式之简单工厂模式(C++) 简单工厂模式,主要用于创建对象。新添加类时,不会影响以前的系统代码。核心思想是用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。优点:适用于不同情况创建不同的类时。缺点:客户端必须要知道基类和工厂类,耦合性差。需要根据不同的需 ......
模式 设计模式 工厂

C/C++数据结构与算法课程设计[2023-07-06]

# C/C++数据结构与算法课程设计[2023-07-06] 数据结构与算法课程设计 一、课程设计的目的、要求和任务 本课程设计是为了配合《数据结构与算法》课程的开设,通过设计完整的程序,使学生 掌握数据结构的应用、算法的编写等基本方法。 1.课程的目的 (1)使学生进一步理解和掌握课堂上所学各种基 ......
数据结构 算法 结构 课程 数据

C/C++课程设计题[2023-07-06]

# C/C++课程设计题[2023-07-06] 要求 1、独立完成。可以选一类题目,即自拟题目。也可以选二类题目,按照学号尾号对应做相应题目。 2、提交电子版作业:每人一个文件夹命名为:学号+姓名。文件夹内课程设计报告一份,源代码一份。十九周周五前交给学委。 3、成绩自评级填写到报告首页。成绩自评 ......
课程 2023 07 06

如何洞察 .NET程序 非托管句柄泄露

## 一:背景 ### 1. 讲故事 很多朋友可能会有疑问,C# 是一门托管语言,怎么可能会有非托管句柄泄露呢? 其实一旦 C# 程序与 C++ 语言交互之后,往往就会被后者拖入非托管泥潭,让我们这些调试者被迫探究 `非托管领域问题`。 ## 二:非托管句柄泄露 ### 1. 测试案例 为了方便讲述 ......
句柄 程序 NET

10个适合后端程序员的前端框架

思维导航 前言 AdminLTE Gentelella layuimini Materialize vue-element-admin vue-admin-better Ant Design Vue vue-vben-admin ngx-admin react-admin DotNetGuide技术 ......
前端 程序员 框架 程序

代码的坏味道 《重构改善既有代码的设计》

1. Duplicated Code重复代码,在程序中多次出现的相同结构或功能的代码 同一个类中的两个函数含有相同的表达式 两个互为兄弟的子类中含相同的表达式 相互独立的类中出现相同表达式 2. Long Method 过长的函数难以理解及维护 段函数或间接层具有很强的解释能力、共享能力和选择能力 ......
代码 味道

蓝牙Mesh协议是一种专为广域物联网(IoT)应用设计的蓝牙通信协议。它允许多个设备之间建立一个自组织的网络,形成一个能够覆盖较大范围的通信网络。

蓝牙Mesh协议是一种专为广域物联网(IoT)应用设计的蓝牙通信协议。它允许多个设备之间建立一个自组织的网络,形成一个能够覆盖较大范围的通信网络。 蓝牙Mesh网络采用了网状拓扑结构,其中每个设备都可以与其他设备直接通信,从而实现设备之间的互连。这种网状结构有助于提供更广阔的覆盖范围,并且支持多跳传 ......
网络 通信网络 专为 多个 范围

程序的内存布局

程序在内存空间上的布局如下图: 1. **代码段(.text)**:这里存放的是CPU要执行的指令,代码是可共享的,相同的代码在内存中只有一份拷贝,同时这个段是只读的,防止程序误修改指令。 2. **初始化数据段(.data)**:这里存放是是程序中需要明确赋初始值的变量,例如全局变量。代码段和初始 ......
布局 内存 程序

通知的设计

# 1.通知的模块设计 将不同的通知方式设计为不同的插件,引入不同的插件包,并将支持的插件配置到数据库里,从数据库中load出来配置然后进行安装流程 ![image](https://img2023.cnblogs.com/blog/680792/202307/680792-202307071048 ......

小程序分享好友文件

wx.downloadFile({ url: '文件线上地址', // 下载url success (res) {// 下载完成后转发 wx.shareFileMessage({ filePath: res.tempFilePath, success() { }, fail: console.err ......
好友 文件 程序

C#自定义checkBox开关按钮控件,设计漂亮美观的UI按钮

第一步: 先准备开关按钮要使用到的背景图片,一张是开启的,一张是关闭的,如下图: 一共有6种款式,大家也可以全部加进去 然后将这些图片作为资源文件添加到项目中,如下图: 第二步、新建用户控件,命名为:ButtonCheck.cs ButtonCheck.cs 代码如下: /// <summary> ......
按钮 控件 checkBox

浙大暑期密码学课程-笔记|两方安全计算

> 浙大暑期密码学课程-笔记|两方安全计算 > > 视频地址:**[浙大暑期Crypto课程-MPC I(上)](https://www.bilibili.com/video/BV1yX4y1p7rG/?spm_id_from=333.788&vd_source=15b7926a3a203446fa ......
密码学 密码 课程 笔记

盘一盘高性能设计的哪些点(二)

继续上一篇 [盘一盘高性能设计的那些点(一)](https://www.cnblogs.com/niejunlei/p/17522879.html) 文章,继续探讨高性能设计的一些点! ![image](https://img2023.cnblogs.com/blog/603942/202307/6 ......
高性能

安防监控视频融合EasyCVR平台非按需定时快照功能的设计与实现方法

平台能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理。平台丰富的视频能力及拓展性,可应用在智慧工地、智慧园区、智慧工厂、智慧码头、智慧水利等场景中。 ......
快照 EasyCVR 功能 方法 平台

目录:计算机基础(网络)

## 什么是计算机网络:[链接](https://www.cnblogs.com/kxwslmsps/p/17241604.html) ## TCP/IP概念:[链接](https://www.cnblogs.com/kxwslmsps/p/17234429.html) ## IP地址:[链接](h ......
计算机 基础 目录 网络

目录:计算机基础(操作系统)

## 什么是操作系统:[链接](https://www.cnblogs.com/kxwslmsps/p/17234418.html) ## 什么是进程:[链接](https://i.cnblogs.com/posts/edit;postId=17234421) ## 什么是线程:[链接](https ......
计算机 基础 目录 系统

图解小程序静默登录那些事

1. 背景 之前,作者在文章《小程序静默登录方案设计》中提到过,小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。 即 「静默登录」 ,开发者通过调用 wx.login 获取到 code ,将其发送到开发者后端,开发者后端通过接口去微信后端换取到 op ......
程序

.NET程序-配置使用Fidder代理,抓取后台HTTP请求

一般我们用Fidder查看浏览器的Http请求来分析页面的性能问题,但是如果是后台.Net发起Http请求怎么看?下面介绍一种方法,通过配置.NET程序,使用Fidder代理可以查看后台的HTTP请求。 首先开启Fiddler2代理: 下面有三种方式设置System.Net使用Fidder作为。 方 ......
后台 程序 Fidder HTTP NET

小程序静默登录方案设计

1. 背景 首先谈谈在小程序的开发中,如何借助微信的能力标识一个用户? 微信官方提供了两种标识: OpenId 是一个用户对于一个小程序/公众号的标识,开发者可以通过这个标识识别出用户。 UnionId 是一个用户对于同主体微信小程序/公众号/APP 的标识,开发者需要在微信开放平台下绑定相同账号的 ......
方案设计 方案 程序

vue--计算属性

在 Vue.js 中,计算属性(Computed Property)是一种特殊的属性,它基于现有的数据计算出一个新的值,并且会根据其依赖的数据进行自动更新。计算属性主要用于将复杂的逻辑和变量计算封装为属性,以便在模板中直接使用。以下是使用计算属性的一般步骤: 1.在 Vue 实例的 computed ......
属性 vue

在uniapp中获取微信小程序状态栏和导航栏的高度

在微信小程序中,可以使用 uni.getSystemInfo() 方法获取设备的系统信息,包括状态栏的高度和顶部导航栏的高度。您可以使用这些信息计算顶部图标距离。 下面是一个示例代码,展示如何在 UniApp 中获取顶部图标距离: getTopIconDistance() { uni.getSyst ......
高度 状态 程序 uniapp