当前位置: 首页 > news >正文

通讯录管理小程序

通讯录管理系统

是对c++基础语法的巩固,比较简单的一个小程序,重点在于养成良好的c++代码习惯
通讯录是一个可以记录亲人、好友信息的工具。

本教程主要利用C++来实现一个通讯录管理系统

下面是一些需要实现的功能:

1. 添加联系人

  • 功能描述:实现添加联系人,人数上限为1000人

    信息包括(姓名、性别、年龄、联系电话、家庭住址)
  • 实现步骤:
    • 设计联系人结构体
    • 设计通讯录结构体
    • mian函数中创建通讯录
//设计联系人结构体
struct Person
{//姓名string m_name;//性别 1男0女int m_sex;//年龄int m_age;//联系电话string m_phonenum;//住址string m_address;
};//设计通讯录结构体
struct Addressbooks
{//通讯录中保存的联系人数组struct Person personArray[MAX];//通讯录当前保存的联系人个数int size;
};
  * 封装添加联系人函数
//1.添加联系人
void addPerson(Addressbooks *abs)
{//判断通讯录是否已经满了if (abs->size == MAX){cout <<"通讯录已满,无法添加联系人!" << endl;return;}else{//添加联系人//姓名string name;cout <<"请输入联系人姓名:" << endl;cin >> name;abs->personArray[abs->size].m_name = name;//性别int sex;cout <<"请输入性别:" << endl;cout <<"1---男" << endl;cout <<"0---女" << endl;while (true){cin >> sex;//如果不是0或1则输入形式错误if (sex==1||sex==0){abs->personArray[abs->size].m_sex=sex;break;}cout <<"输入有误,请重新输入:" << endl;}//年龄int age;cout <<"请输入年龄:" << endl;cin >> age;abs->personArray[abs->size].m_age = age;//联系电话string phonenum;cout <<"请输入联系方式:" << endl;cin >> phonenum;abs->personArray[abs->size].m_phonenum = phonenum;//地址string address;cout <<"请输入地址:" << endl;cin >> address;abs->personArray[abs->size].m_address = address;abs->size++;cout <<"添加成功!" << endl;system("pause");system("cls");}
}
  * 测试添加联系人功能

2. 显示联系人

* 功能描述:显示通讯录中已有联系人
* 实现步骤:* 封装显示联系人函数
//封装显示联系人函数
void showPerson(Addressbooks *abs)
{//判断通讯录是否为空if (abs->size == 0)cout <<"通讯录为空!"<< endl;else{for (int i = 0; i < abs->size; i++){cout <<"姓名:"<< abs->personArray[i].m_name << "\t";cout <<"性别:"<< (abs->personArray[i].m_sex == 1 ? "男" : "女") << "\t";cout <<"年龄:"<< abs->personArray[i].m_age << "\t";cout <<"联系电话:"<< abs->personArray[i].m_phonenum << "\t";cout <<"住址:"<< abs->personArray[i].m_address << endl;}system("pause");system("cls");}
}
    * 测试显示联系人功能

3. 查找联系人

* 功能描述:按照指定的姓名查找联系人
* 实现步骤:* 封装查找联系人函数
//检测联系人是否存在,如果存在就返回联系人在通讯录中的位置,否则就返回-1
int isEmpty(Addressbooks *abs,string name)
{for (int i = 0; i < abs->size; i++){if (abs->personArray[i].m_name == name)return i;}return -1;
}//4.查找联系人
void findPerson(Addressbooks *abs)
{cout <<"请输入要查找的联系人姓名:"<< endl;string name;cin >> name;int ret=isEmpty(abs,name);if (ret == -1)cout <<"查无此人!"<< endl;else{cout <<"姓名:"<< abs->personArray[ret].m_name << "\t";cout <<"性别:"<< (abs->personArray[ret].m_sex == 1 ? "男" : "女") << "\t";cout <<"年龄:"<< abs->personArray[ret].m_age << "\t";cout <<"联系电话:"<< abs->personArray[ret].m_phonenum << "\t";cout <<"住址:"<< abs->personArray[ret].m_address << endl;}
}
    * 测试查找联系人函数

4. 删除联系人

* 功能描述:根据姓名删除联系人
* 实现步骤:* 检测联系人是否存在* 封装删除联系人函数
//3.删除联系人
void deletePerson(Addressbooks *abs)
{cout <<"输入要删除的联系人姓名:"<< endl;string name;cin >> name;//ret=-1没查到、否则查到了int ret=isEmpty(abs,name);if (ret == -1)cout <<"查无此人!"<< endl;else{cout <<"查到此人!"<< endl;cout <<"是否删除 "<< abs->personArray[abs->size].m_name <<" 的相关信息"<< endl;cout <<"1---Yes"<< endl;cout <<"0---No"<< endl;int flag=0;cin >> flag;if (flag==1){//数据前移for (int i = ret; i < abs->size-1; i++)abs->personArray[i]=abs->personArray[i+1];abs->size--;//更新通讯录中的人数cout <<"操作成功!"<< endl;}}
}
    * 测试联系人函数功能

5. 修改联系人

* 功能描述:按照联系人姓名修改相关信息
* 实现步骤:* 封装修改联系人函数
//5.修改指定联系人
void modifyPerson(Addressbooks *abs)
{cout <<"请输入要修改的联系人姓名:"<< endl;string name;cin >> name;int ret=isEmpty(abs,name);if (ret == -1)cout <<"查无此人!"<< endl;else{string name;cout <<"请输入联系人姓名:" << endl;cin >> name;abs->personArray[ret].m_name = name;//修改性别int sex;cout <<"请输入性别:" << endl;cout <<"1---男" << endl;cout <<"0---女" << endl;while (true){cin >> sex;//如果不是0或1则输入形式错误if (sex==1||sex==0){abs->personArray[ret].m_sex=sex;break;}cout <<"输入有误,请重新输入:" << endl;}//修改年龄int age;cout <<"请输入年龄:" << endl;cin >> age;abs->personArray[ret].m_age = age;//修改联系电话string phonenum;cout <<"请输入联系方式:" << endl;cin >> phonenum;abs->personArray[ret].m_phonenum = phonenum;//修改地址string address;cout <<"请输入地址:" << endl;cin >> address;abs->personArray[ret].m_address = address;}system("pause");system("cls");
}
    * 测试修改联系人功能

6. 清空联系人

* 功能描述:将通讯录逻辑清空
* 将通讯录联系人数量清空即可
//清空通讯录
void cleanPerson(Addressbooks *abs)
{abs->size=0;cout <<"通讯录已清空!"<< endl;system("pause");system("cls");
}

7. 退出系统

8.源代码

源码上传到Gitee(contact_management_system)上了,需要的自取。

相关文章:

通讯录管理小程序

通讯录管理系统 是对c基础语法的巩固&#xff0c;比较简单的一个小程序&#xff0c;重点在于养成良好的c代码习惯。 通讯录是一个可以记录亲人、好友信息的工具。 本教程主要利用C来实现一个通讯录管理系统 下面是一些需要实现的功能&#xff1a; 1. 添加联系人 功能描述&…...

[ESP32:Vscode+PlatformIO]添加第三方库 开源库 与Arduino导入第三方库的区别

前言 PlatformIO与Arduino在添加第三方库方面的原理存在显著差异 在PlatformIO中&#xff0c;第三方库的使用是基于项目&#xff08;工程&#xff09;的。具体而言&#xff0c;只有当你为一个特定的项目添加了某个第三方库后&#xff0c;该项目才能使用该库。这些第三方库的文…...

SpringSecurity:授权服务器与客户端应用(入门案例)

文章目录 一、需求概述二、开发授权服务器1、pom依赖2、yml配置3、启动服务端 三、开发客户端应用1、pom依赖2、yml配置3、SecurityConfig4、接口5、测试 一、需求概述 maven需要3.6.0以上版本 二、开发授权服务器 1、pom依赖 <dependency><groupId>org.springfr…...

k8s证书过期怎么更新?

在 Kubernetes 集群中&#xff0c;证书过期可能导致集群不可用&#xff0c;尤其是 API Server、Controller Manager、Scheduler 等组件所使用的证书。为了恢复集群的正常运行&#xff0c;您需要更新这些证书。以下是更新 Kubernetes 证书的基本步骤&#xff1a; 1. 检查证书状…...

【戒抖音系列】短视频戒除-1-对推荐算法进行干扰

如今推荐算法已经渗透到人们生活的方方面面&#xff0c;尤其是抖音等短视频核心就是推荐算法。 【短视频的危害】 1> 会让人变笨&#xff0c;慢慢让人丧失注意力与专注力 2> 让人丧失阅读长文的能力 3> 让人沉浸在一个又一个快感与嗨点当中。当我们刷短视频时&#x…...

VUE 集成企微机器人通知

message-robot 便于线上异常问题及时发现处理&#xff0c;项目中集成企微机器人通知&#xff0c;及时接收问题并处理 企微机器人通知工具类 export class MessageRobotUtil {constructor() {}/*** 发送 markdown 消息* param robotKey 机器人 ID* param title 消息标题* param…...

封装descriptions组件,描述,灵活

效果 1、组件1&#xff0c;dade-descriptions.vue <template><table><tbody><slot></slot></tbody> </table> </template><script> </script><style scoped>table {width: 100%;border-collapse: coll…...

等级保护2.0|网络安全服务

等级保护2.0|网络安全服务 定义 对于国家秘密信息、法人和其他组织及公民专有信息以及公开信息的存储、传输、处理这些信息系统分等级实行安全保护&#xff0c;对信息系统中发生的信息安全时间分等级响应、处置。 思想 对信息安全实行等级化保护和等级化管理 目标 突出重…...

STM32 RTC亚秒

rtc时钟功能实现&#xff1a;rtc模块在stm32内部&#xff0c;由电池或者主电源供电。如下图&#xff0c;需注意实现时仅需设置一次初始化。 1、stm32cubemx 代码生成界面设置&#xff0c;仅需开启时钟源和激活日历功能。 2、生成的代码,需要对时钟进行初始化&#xff0c;仅需…...

H5+CSS+JS制作好看的轮播图

先来看效果 点击下方按钮可以做到平滑切换轮播&#xff0c;轮播图片可以根据自定义随心变化。 先来看一下页面代码结构 <div class"container"><div class"lunbo-wrap"><div id"slide"></div><div class"butto…...

Win10 部署llama Factory 推荐教程和遇到的问题

教程 【大模型微调】使用Llama Factory实现中文llama3微调_哔哩哔哩_bilibili 大模型微调&#xff01;手把手带你用LLaMA-Factory工具微调Qwen大模型&#xff01;有手就行&#xff0c;零代码微调任意大语言模型_哔哩哔哩_bilibili 遇到问题解决办法 pytorch gpu国内镜像下载…...

Visual Studio踩过的坑

统计Unity项目代码行数 编辑-查找和替换-在文件中查找 查找内容输入 b*[^:b#/].*$ 勾选“使用正则表达式” 文件类型留空 也有网友做了指定&#xff0c;供参考 !*\bin\*;!*\obj\*;!*\.*\*!*.meta;!*.prefab;!*.unity 打开Unity的项目 注意&#xff1a;只是看&#xff0…...

idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡

idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡 问题 idea编译器 安装copilot AI工具 实际操作 在 IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤如下&#xff1a; 打开 IntelliJ IDEA&#xff1a; 打开你的 IntelliJ IDEA 应用…...

Leetcode 3449. Maximize the Minimum Game Score

Leetcode 3449. Maximize the Minimum Game Score 1. 解题思路2. 代码实现 题目链接&#xff1a;3449. Maximize the Minimum Game Score 1. 解题思路 这一题思路上就是一个二分法&#xff0c;尝试各个score&#xff0c;看看是否可以满足在给定的m次操作限制下&#xff0c;使…...

DeepSeek深度思考:客户端(Android/iOS)架构设计指南

目标读者&#xff1a;中高级开发者、架构师 适用场景&#xff1a;大型复杂应用开发、跨团队协作、长期维护迭代 一、架构设计核心原则 1.模块化&#xff08;Modularization&#xff09; 横向拆分&#xff1a;按功能边界划分&#xff08;如登录、支付、消息模块&#xff09;纵向…...

智能理解 PPT 内容,快速生成讲解视频

当我们想根据一版 PPT 制作出相对应的解锁视频时&#xff0c;从撰写解锁词&#xff0c;录制音频到剪辑视频&#xff0c;每一个环节都需要投入大量的时间和精力&#xff0c;本方案将依托于阿里云函数计算 FC 和百炼模型服务&#xff0c;实现从 PPT 到视频的全自动转换&#xff0…...

HTML 颜色值

HTML 颜色值 引言 在网页设计和开发中,颜色是一个重要的元素,它能够影响用户的视觉体验和网站的视觉效果。HTML 颜色值是网页设计中用来指定文本、背景或其他元素颜色的标准。本文将详细介绍 HTML 颜色值的概念、类型、表示方法以及在实际应用中的注意事项。 HTML 颜色值的…...

kafka消费端之消费者协调器和组协调器

文章目录 概述回顾历史老版本获取消费者变更老版本存在的问题 消费者协调器和组协调器新版如何解决老版本问题再均衡过程**第一阶段CFIND COORDINATOR****第二阶段&#xff08;JOINGROUP&#xff09;**选举消费组的lcader选举分区分配策略 第三阶段&#xff08;SYNC GROUP&…...

【C++】解锁<list>的正确姿势

> &#x1f343; 本系列为初阶C的内容&#xff0c;如果感兴趣&#xff0c;欢迎订阅&#x1f6a9; > &#x1f38a;个人主页:[小编的个人主页])小编的个人主页 > &#x1f380; &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐文章 > ✌️ &#x1f91e; &#x1…...

【玩转全栈】----Django模板的继承

先赞后看&#xff0c;养成习惯&#xff01;&#xff01;&#xff01; 目录 模板继承的好处 模板继承的语法规则 更新代码 上文中的部门管理页面&#xff1a; 【玩转全栈】----Django制作部门管理页面-CSDN博客 大家会发现&#xff0c;由于定义了多个html文件&#xff0c;多个ht…...

【紫光同创PG2L100H开发板】盘古676系列,盘古100Pro+开发板,MES2L676-100HP

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 一&#xff1a;开发系统介绍 开发系统概述 MES2L676-100HP开发板采用紫光创 logos2系列 FPGA&#xff0c;型号&#x…...

Mac下使用brew安装go 以及遇到的问题

首先按照网上找到的命令进行安装 brew install go 打开终端输入go version&#xff0c;查看安装的go版本 go version 配置环境变量 查看go的环境变量配置&#xff1a; go env 事实上安装好后的go已经可以使用了。 在home/go下新建src/hello目录&#xff0c;在该目录中新建…...

活动预告 |【Part 2】Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁

课程介绍 通过 Microsoft Learn 免费参加 Microsoft 安全在线技术公开课&#xff0c;掌握创造新机遇所需的技能&#xff0c;加快对 Microsoft Cloud 技术的了解。参加我们举办的“通过扩展检测和响应抵御威胁”技术公开课活动&#xff0c;了解如何更好地在 Microsoft 365 Defen…...

android的DataBinding简介

Android DataBinding 简介 DataBinding 是 Android Jetpack 中的数据绑定库&#xff0c;用于将 UI 组件直接与数据模型绑定&#xff0c;减少模板代码并实现双向数据同步。它通过声明式布局简化 UI 更新逻辑&#xff0c;常用于 MVVM&#xff08;Model-View-ViewModel&#xff0…...

基于DeepSeek API和VSCode的自动化网页生成流程

1.创建API key 访问官网DeepSeek &#xff0c;点击API开放平台。 在开放平台界面左侧点击API keys&#xff0c;进入API keys管理界面&#xff0c;点击创建API key按钮创建API key&#xff0c;名称自定义。 2.下载并安装配置编辑器VSCode 官网Visual Studio Code - Code Editing…...

【DeepSeek】私有化本地部署图文(Win+Mac)

目录 一、DeepSeek本地部署【Windows】 1、安装Ollama 2、配置环境变量 3、下载模型 4、使用示例 a、直接访问 b、chatbox网页访问 二、DeepSeek本地部署【Mac】 1、安装Ollama 2、配置环境变量 3、下载模型 4、使用示例 5、删除已下载的模型 三、DeepSeek其他 …...

vscode预览插件

在左侧列表拓展里搜索 Live Preview 安装&#xff0c;然后在html页面点击右键找到show Preview 结果如下图 然后就可以进行代码开发并实时预览了...

迅为RK3568开发板篇OpenHarmony实操HDF驱动控制LED-编写应用APP

在应用代码中我们实现如下功能&#xff1a; 当应用程序启动后会获取命令行参数。如果命令行没有参数&#xff0c;LED 灯将循环闪烁&#xff1b;如果命令行带有参数&#xff0c;则根据传输的参数控制 LED 灯的开启或关闭。通过 HdfIoServiceBind 绑定 LED灯的 HDF 服务&#xff…...

在大型语言模型(LLM)框架内Transformer架构与混合专家(MoE)策略的概念整合

文章目录 传统的神经网络框架存在的问题一. Transformer架构综述1.1 transformer的输入1.1.1 词向量1.1.2 位置编码&#xff08;Positional Encoding&#xff09;1.1.3 编码器与解码器结构1.1.4 多头自注意力机制 二.Transformer分步详解2.1 传统词向量存在的问题2.2 详解编解码…...

tolua[一]框架搭建,运行example

一.安装tolua https://github.com/topameng/tolua 下载LuaFramework_UGUI的zip 将Assets目录拷贝到项目根目录下 提示确认注册&#xff0c;遇到这个对话框点确定即可 生成如下目录 二.LuaFramework->Build Windows Resource 接下来的目标是将这个main场景跑起来 需要先执行…...

大数据项目4:基于spark的智慧交通项目设计与实现

项目概述 项目直达 www.baiyuntu.com 随着交通数据的快速增长&#xff0c;传统的交通管理方式已无法满足现代城市的需求。交通大数据分析系统通过整合各类交通数据&#xff0c;利用大数据技术解决交通瓶颈问题&#xff0c;提升交通管理效率。本项目旨在通过大数据技术&#…...

Vue 响应式渲染 - 条件渲染

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue响应式渲染 - 条件渲染 目录 条件渲染 v-if v-if-else 模版template 物流状态显示判断 设置数据 不同状态渲染 总结 条件渲染 v-if 使用Vue条件判断显示和 隐藏。 示例如下&#xff1a; <!DOCTYPE html> …...

活动预告 |【Part1】Microsoft Azure 在线技术公开课:AI 基础知识

课程介绍 参加“Azure 在线技术公开课&#xff1a;AI 基础知识”活动&#xff0c;了解 AI 核心概念。参加我们举办的本次免费培训活动&#xff0c;了解组织如何使用 AI 技术克服实际挑战&#xff0c;以及如何借助 Azure AI 服务构建智能应用程序。本次培训适用于任何对 AI 解决…...

OpenSIPS-Dispatcher模块详解:优化SIP流量分发的利器

在 OpenSIPS 中&#xff0c;dispatcher 模块用于实现负载均衡和故障转移。通过 dispatcher 模块&#xff0c;你可以将 SIP 请求分发到一组后端服务器&#xff08;如媒体服务器、代理服务器等&#xff09;&#xff0c;并根据配置的算法和策略动态调整分发逻辑。 模块功能使用样…...

深入理解linux中的文件(下)

目录 一、语言级缓冲区和内核级缓冲区 二、C语音中的FILE* fp fopen(“./file.txt”,"w"): 四、理解磁盘结构&#xff1a; 物理结构 逻辑结构 五、未被打开的文件&#xff1a; 六、更加深入理解inode编号怎么找到文件&#xff1a; 七、对路径结构进行…...

Deepseek系列从v3到R易背面经版

deepseek v3 base要点 MTP : Multi-Token Prediction 训练时&#xff1a; 1. 把前一个block中input tokens经过embedding layer和transformer block的输出&#xff0c;进入output head之前的内容记为h&#xff0c;与下一个block的input tokens经过embedding layer输出的内容都…...

SQLAlchemy 的内存消耗

为何要研究SQLAlchemy 的内存消耗问题&#xff1f;因为SQLAlchemy在应用中&#xff0c;绝大多数问题体现在应用人员对SQLAlchemy 的内存消耗问题不认知、不重视、不处理&#xff0c;最终造成整个系统的大问题&#xff0c;使SQLAlchemy 的性能大打折扣&#xff0c;最终影响了SQL…...

Centos Ollama + Deepseek-r1+Chatbox运行环境搭建

Centos Ollama Deepseek-r1Chatbox运行环境搭建 内容介绍下载ollama在Ollama运行DeepSeek-r1模型使用chatbox连接ollama api 内容介绍 你好&#xff01; 这篇文章简单讲述一下如何在linux环境搭建 Ollama Deepseek-r1。并在本地安装的Chatbox中进行远程调用 下载ollama 登…...

vscode和pycharm的区别

VSCode&#xff08;Visual Studio Code&#xff09;和 PyCharm 是两款常用的 Python 开发工具&#xff0c;它们在功能和使用体验上有一些关键区别&#xff1a; 1. 核心定位 VSCode&#xff1a;轻量级、多语言支持的代码编辑器&#xff0c;依靠插件扩展 Python 开发能力。PyCh…...

【0403】Postgres内核 检查(procArray )给定 db 是否有其他 backend process 正在运行

文章目录 1. 给定 db 是否有其他 backend 正在运行1.1 获取 allPgXact[] 索引1.1.1 MyProc 中 databaseId 初始化实现1.2 allProcs[] 中各 databaseId 判断1. 给定 db 是否有其他 backend 正在运行 CREATE DATABASE 语句创建用户指定 数据库名(database-name)时候, 会通过 …...

MySQL 数据库的体系架构

MySQL 数据库的体系架构是其高效、灵活和可扩展性的核心基础。其设计采用 分层模块化 结构&#xff0c;主要分为以下四层&#xff1a; 1. 连接层&#xff08;Connectors & Connection Pool&#xff09; 功能&#xff1a;负责处理客户端连接、认证和权限管理。 连接管理&a…...

【C++高并发服务器WebServer】-14:Select详解及实现

本文目录 一、BIO模型二、非阻塞NIO忙轮询三、IO多路复用四、Select()多路复用实现 明确一下IO多路复用的概念&#xff1a;IO多路复用能够使得程序同时监听多个文件描述符&#xff08;文件描述符fd对应的是内核读写缓冲区&#xff09;&#xff0c;能够提升程序的性能。 Linux下…...

apisix网关ip-restriction插件使用说明

ip-restriction插件可以在网关层进行客户端请求ip拦截。 当然了&#xff0c;一般不推荐使用该方法&#xff0c;专业的事专业工具做。建议有条件&#xff0c;还是上防火墙或者waf来做。 官方文档&#xff1a;ip-restriction | Apache APISIX -- Cloud-Native API Gateway whit…...

15vue3实战-----props和emit传值

15vue3实战-----props和emit传值 1.emit的使用2.配合props实现完整父子通信 vue3中props和emit的使用有点不一样,但万变不离其宗。 1.emit的使用 子组件: <script setup lang"ts"> // 定义触发的事件及其数据类型 const emit defineEmits([update, delete]…...

第二节 docker基础之---镜像构建及挂载

查看当前镜像&#xff1a; [rootdocker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE [rootdocker ~]#很明显docker是咱们新搭建的所以目前还没有镜像 1&#xff0c;搜索镜像&#xff1a; [rootdocker ~]# docker search centos 搜索镜像并过滤是官…...

Android性能优化

Android性能优化 如何优化一个包含大量图片加载的Android应用&#xff0c;以提高性能和用户体验&#xff1f; 优化一个包含大量图片加载的Android应用&#xff0c;可以从以下几个方面入手&#xff0c;以提高性能和用户体验&#xff1a; 选择合适的图片加载库 使用成熟的图片…...

scikit-learn简介

scikit-learn 是一个广泛使用的 Python 库&#xff0c;主要用于 机器学习&#xff08;ML&#xff09;。它提供了一些简单高效的工具&#xff0c;适用于 数据挖掘 和 数据分析。scikit-learn 基于 NumPy、SciPy 和 matplotlib 等科学计算库&#xff0c;具有 易于使用的接口 和 高…...

查询已经运行的 Docker 容器启动命令

一、导语 使用 get_command_4_run_container 查询 docker 容器的启动命令 获取镜像 docker pull cucker/get_command_4_run_container 查看容器命令 docker run --rm -v /var/run/docker.sock:/var/run/docker.sock cucker/get_command_4_run_container 容器id或容器名 …...

ssti学习笔记(服务器端模板注入)

目录 一&#xff0c;ssti是什么 二&#xff0c;原理 所谓模板引擎&#xff08;三列&#xff0c;可滑动查看&#xff09; 三&#xff0c;漏洞复现 1&#xff0c;如何判断其所属的模板引擎&#xff1f; 2&#xff0c;判断清楚后开始注入 &#xff08;1&#xff09;Jinja2&a…...

Docker 部署 RabbitMQ | 自带延时队列

一、获取镜像 docker pull farerboy/rabbitmq:3.9.9 二、运行镜像 docker run -d --name rabbitmq \n --hostname rabbitmq \n -p 15672:15672/tcp \n -p 5672:5672/tcp \n -v /wwwroot/opt/docker/rabbitmq:/var/lib/rabbitmq \n farerboy/rabbitmq:3.9.9 备注&#xff1a;…...