20242817-李臻-课下作业:Qt和Sqlite
实验内容
阅读附件内容,编译运行附件中第一章,第三章的例子。
实验过程
第一章
- t1实践
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QVBoxLayout>int main(int argc, char *argv[])
{QApplication app(argc, argv);// 创建一个QWidget窗口QWidget window;window.setWindowTitle("t1"); // 设置窗口标题// 创建一个QPushButton按钮QPushButton hello("Hello, world!");hello.resize(100, 30);// 创建一个垂直布局管理器QVBoxLayout layout;// 将按钮添加到布局中layout.addWidget(&hello);// 设置窗口的主布局window.setLayout(&layout);// 显示窗口window.show();return app.exec();
}
- t2实践
#include <QApplication>
#include <QFont>
#include <QPushButton>int main(int argc, char *argv[])
{QApplication app(argc, argv);QPushButton quit("Quit");quit.resize(75, 30);quit.setFont(QFont("Times", 18, QFont::Bold));QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));quit.show();return app.exec();
}
- t3实践
#include <QApplication>
#include <QFont>
#include <QPushButton>
#include <QWidget>int main(int argc, char *argv[])
{QApplication app(argc, argv);QWidget window;window.resize(200, 120);QPushButton quit("Quit", &window);quit.setFont(QFont("Times", 18, QFont::Bold));quit.setGeometry(10, 40, 180, 40);QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));window.show();return app.exec();
}
- t4实践
#include <QApplication>
#include <QFont>
#include <QPushButton>
#include <QWidget>class MyWidget : public QWidget
{
public:MyWidget(QWidget *parent = 0); // 确保参数是指针类型
};MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{setFixedSize(200, 120);QPushButton *quit = new QPushButton(tr("Quit"), this);quit->setGeometry(62, 40, 75, 30);quit->setFont(QFont("Times", 18, QFont::Bold));connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
}int main(int argc, char *argv[])
{QApplication app(argc, argv);MyWidget widget;widget.show();return app.exec();
}
- t5实践
#include <QApplication>
#include <QFont>
#include <QLCDNumber>
#include <QPushButton>
#include <QSlider>
#include <QVBoxLayout>
#include <QWidget>class MyWidget : public QWidget
{
public:MyWidget(QWidget *parent = 0);};
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{QPushButton *quit = new QPushButton(tr("Quit"));quit->setFont(QFont("Times", 18, QFont::Bold));QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(quit);layout->addWidget(new QLCDNumber(2));layout->addWidget(new QSlider(Qt::Horizontal));layout->addWidget(new QSlider(Qt::Horizontal));connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));connect(layout, SIGNAL(valueChanged(int)), this, SLOT(display(int)));setLayout(layout);
}int main(int argc, char *argv[])
{QApplication app(argc, argv);MyWidget widget;widget.show();return app.exec();
}
- t6实践
#include <QApplication>
#include <QFont>
#include <QGridLayout>
#include <QLCDNumber>
#include <QPushButton>
#include <QSlider>
#include <QVBoxLayout>
#include <QWidget>class LCDRange : public QWidget
{
public:LCDRange(QWidget *parent = 0);};
LCDRange::LCDRange(QWidget *parent) : QWidget(parent)
{QLCDNumber *lcd = new QLCDNumber(2);lcd->setSegmentStyle(QLCDNumber::Filled);QSlider *slider = new QSlider(Qt::Horizontal);slider->setRange(0, 99);slider->setValue(0);connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(lcd);layout->addWidget(slider);setLayout(layout);
}class MyWidget : public QWidget
{
public:MyWidget(QWidget *parent = 0);
};MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{QPushButton *quit = new QPushButton(tr("Quit"));quit->setFont(QFont("Times", 18, QFont::Bold));connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));QGridLayout *grid = new QGridLayout;for (int row = 0; row < 3; ++row) {for (int column = 0; column < 3; ++column) {LCDRange *lcdRange = new LCDRange;grid->addWidget(lcdRange, row, column);}}QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(quit);layout->addLayout(grid);setLayout(layout);
}int main(int argc, char *argv[])
{QApplication app(argc, argv);MyWidget widget;widget.show();return app.exec();
}
- t7实践
lcdrange.h
#ifndef LCDRANGE_H
#define LCDRANGE_H#include <QWidget>class QSlider;class LCDRange : public QWidget
{Q_OBJECTpublic:LCDRange(QWidget *parent = 0);int value() const;public slots:void setValue(int value);signals:void valueChanged(int newValue);private:QSlider *slider;
};#endif
lcdrange.cpp
#include <QLCDNumber>
#include <QSlider>
#include <QVBoxLayout>
#include "lcdrange.h"LCDRange::LCDRange(QWidget *parent) : QWidget(parent)
{LCDNumber *lcd = new LCDNumber(2);lcd->setSegmentStyle(LCDNumber::Filled);slider = new QSlider(Qt::Horizontal);slider->setRange(0, 99);slider->setValue(0);connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));connect(slider, SIGNAL(valueChanged(int)), this, SIGNAL(valueChanged(int)));QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(lcd);layout->addWidget(slider);setLayout(layout);
}int LCDRange::value() const
{return slider->value();
}void LCDRange::setValue(int value)
{slider->setValue(value);
}
lcdmain.cpp
#include <QLCDNumber>
#include <QSlider>
#include <QVBoxLayout>
#include "lcdrange.h"LCDRange::LCDRange(QWidget *parent) : QWidget(parent)
{LCDNumber *lcd = new LCDNumber(2);lcd->setSegmentStyle(LCDNumber::Filled);slider = new QSlider(Qt::Horizontal);slider->setRange(0, 99);slider->setValue(0);connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));connect(slider, SIGNAL(valueChanged(int)), this, SIGNAL(valueChanged(int)));QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(lcd);layout->addWidget(slider);setLayout(layout);
}int LCDRange::value() const
{return slider->value();
}void LCDRange::setValue(int value)
{slider->setValue(value);
}
- t8实践
ui——mydialog.h
#ifndef UI_MYDIALOG_H
#define UI_MYDIALOG_H#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDialog>
#include <QtGui/QGridLayout>
#include <QtGui/QLineEdit>
#include <QtGui/QPushButton>
#include <QtGui/QTextBrowser>class Ui_MyDialog
{
public:QGridLayout *gridLayout;QTextBrowser *textBrowser;QLineEdit *lineEdit;QPushButton *pushButton;void setupUi(QDialog *MyDialog){if (MyDialog->objectName().isEmpty()){MyDialog->setObjectName(QString::fromUtf8("MyDialog"));}QSize size(328, 217);size = size.expandedTo(MyDialog->minimumSizeHint());MyDialog->resize(size);gridLayout = new QGridLayout(MyDialog);gridLayout->setObjectName(QString::fromUtf8("gridLayout"));textBrowser = new QTextBrowser(MyDialog);textBrowser->setObjectName(QString::fromUtf8("textBrowser"));gridLayout->addWidget(textBrowser, 0, 0, 1, 2);lineEdit = new QLineEdit(MyDialog);lineEdit->setObjectName(QString::fromUtf8("lineEdit"));gridLayout->addWidget(lineEdit, 1, 0, 1, 1);pushButton = new QPushButton(MyDialog);pushButton->setObjectName(QString::fromUtf8("pushButton"));gridLayout->addWidget(pushButton, 1, 1, 1, 1);retranslateUi(MyDialog);QObject::connectSlotsByName(MyDialog);} // setupUivoid retranslateUi(QDialog *MyDialog)
{MyDialog->setWindowTitle(QApplication::translate("MyDialog", "My_Dialog", 0, QApplication::UnicodeUTF8));pushButton->setText(QApplication::translate("MyDialog", "Enter", 0, QApplication::UnicodeUTF8));Q_UNUSED(MyDialog);
} // retranslateUi};namespace Ui {class MyDialog: public Ui_MyDialog {};
} // namespace Ui#endif // UI_MYDIALOG_H
mydialog.h
#ifndef MYDIALOG_H
#define MYDIALOG_H#include <QDialog>
#include "ui_mydialog.h"class MyDialog : public QDialog, public Ui_MyDialog
{Q_OBJECTpublic:MyDialog(QWidget *parent = 0);private slots:void enter();private:QString buf;
};#endif
mydialog.cpp
#include "mydialog.h"MyDialog::MyDialog(QWidget *parent) : QDialog(parent)
{setupUi(this);connect(pushButton, SIGNAL(clicked()), this, SLOT(enter()));
}void MyDialog::enter()
{buf += lineEdit->text() + '\n';lineEdit->clear();textBrowser->setText(buf);textBrowser->moveCursor(QTextCursor::End);
}
mydialogmain.cpp
#include <QApplication>
#include "mydialog.h"int main(int argc, char *argv[])
{QApplication app(argc, argv);MyDialog d;d.show();return app.exec();
}
第三章
实践截图
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>int rscallback(void *p, int argc, char **argv, char **argvv)
{int i;*(int *)p = 0;for(i=0; i<argc; i++)printf("%s=%s_", argv[i], argv[i]?argv[i]:"NULL");putchar('\n');return 0;
}int main(void)
{sqlite3 *db;char *err = 0;int ret = 0;int empty = 1;ret = sqlite3_open("./test.db", &db);if(ret != SQLITE_OK) {fputs(sqlite3_errmsg(db), stderr);fputs("\n", stderr);exit(1);}ret = sqlite3_exec(db, "select * from employee;", rscallback, &empty, &err);if(ret!=SQLITE_OK) {fputs(err, stderr);fputs("\n", stderr);sqlite3_close(db);exit(1);}if(empty) {fputs("table_employee_is_empty\n", stderr);exit(1);}sqlite3_close(db);return 0;
}
相关文章:
20242817-李臻-课下作业:Qt和Sqlite
实验内容 阅读附件内容,编译运行附件中第一章,第三章的例子。 实验过程 第一章 t1实践 #include <QApplication> #include <QWidget> #include <QPushButton> #include <QVBoxLayout>int main(int argc, char *argv[]) {QA…...
嵌入式机器学习平台Edge Impulse图像分类 – 快速入门
陈拓 2025/05/08-2025/05/11 1. 简介 官方网址 https://edgeimpulse.com/ 适用于任何边缘设备的人工智能: Gateways - 网关 Sensors & Cameras - 传感器和摄像头 Docker Containers - Docker容器 MCUs, NPUs, CPUs, GPUs 构建数据集、训练模型并优化库以…...
JavaWeb, Spring, Spring Boot
出现时间 JavaWeb - Spring - Spring Boot 一、JavaWeb 的发展历程 Servlet 和 JSP: Servlet:1997 年首次发布,用于处理 HTTP 请求和响应。 JSP:1999 年首次发布,用于动态生成 HTML 页面。 特点:提供了基…...
upload-labs靶场通关详解:第五关
一、分析源代码 $is_upload false; $msg null; if (isset($_POST[submit])) {if (file_exists(UPLOAD_PATH)) {$deny_ext array(".php",".php5",".php4",".php3",".php2",".html",".htm",".ph…...
【问题】Watt加速github访问速度:好用[特殊字符]
前言 GitHub 是全球知名的代码托管平台,主要用于软件开发,提供 Git 仓库托管、协作工具等功能,经常要用到,但是国内用户常因网络问题难以稳定访问 。 Watt Toolkit(原名 Steam)是由江苏蒸汽凡星科技有限公…...
GitHub打开缓慢甚至失败的解决办法
在C:\Windows\System32\drivers\etc的hosts中增加如下内容: 20.205.243.166 github.com 199.59.149.236 github.global.ssl.fastly.net185.199.109.153 http://assets-cdn.github.com 185.199.108.153 http://assets-cdn.github.com 185.199.110.153 http://asset…...
【25软考网工】第六章(3)数字签名和数字证书
博客主页:christine-rr-CSDN博客 专栏主页:软考中级网络工程师笔记 大家好,我是christine-rr !目前《软考中级网络工程师》专栏已经更新二十多篇文章了,每篇笔记都包含详细的知识点,希望能帮助到你!…...
Android Native 函数 Hook 技术介绍
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 前言 Android Native 函数 Hook 技术是一种在应用运行时拦截或替换系统或自身函数行为的手段,常见实现包括 PLT Hook、Inline Hook。 PLT Hook 和…...
代码随想录算法训练营第60期第三十二天打卡
大家好,今天是我们贪心算法章节的第三阶段,前面我们讲过的几道题不知道大家理解的情况如何,还是那句话,贪心算法没有固定的套路与模板,一道题一个思路,我们要多思考这样慢慢地我就就可以水到渠成。今天我们…...
Problem C: 异常1
1.题目描述 检测年龄,其中若为负数或大于等于200岁皆为异常,请将下列代码补充完整。 // 你的代码将被嵌入这里 class Main{ public static void main(String[] args){ Person p1new Person("John",80); Person p2new Pers…...
Ollama部署使用以及模型微调和本地部署
ollama是一款开源的本地大语言模型管理工具,专注于简化大语言模型(LLM)的本地部署和使用。以下是关于 Ollama 应用的详细介绍: Ollama 的主要功能 本地化部署: Ollama 支持在本地运行模型,无需依赖外部云…...
汇编学习——iOS开发对arm64汇编的初步了解
汇编学习——iOS开发对arm64汇编的初步了解 文章目录 汇编学习——iOS开发对arm64汇编的初步了解前言栈 指令 寄存器寄存器指令运算指令寻址指令前变基 与 后变基 栈堆(Heap)内存机制三、栈(Stack)内存机制 3. 多级调用示例 例子A…...
前端代理问题
在前后端联调的时候,有一次因为前端项目代理配置有问题,导致请求接口对不上, transpileDependencies: true,devServer: {hot: true,port: 8081,proxy: {/api: {target: http://localhost:8080,changeOrigin: true,ws: true,pathRewrite: {^/a…...
E+H流量计通过Profibus DP主站转Modbus TCP网关与上位机轻松通讯
EH流量计通过Profibus DP主站转Modbus TCP网关与上位机轻松通讯 在现代工业自动化的广阔舞台上,Profibus DP与Modbus TCP这两种通信协议各领风骚,它们在不同的应用场景中发挥着举足轻重的作用。但工业生产的复杂性往往要求不同设备、系统之间能够顺畅沟…...
TCP/IP 模型每层的封装格式
TCP/IP 模型是一个四层网络架构,每一层在数据传输时都会对数据进行封装,添加相应的头部(和尾部)信息。以下是各层的封装格式及关键字段说明: 1. 应用层(Application Layer) 封装格式:…...
openjdk底层汇编指令调用(一)——汇编指令及指令编码基础
汇编指令 计算机在执行过程时只识别代表0或者1的电信号。因此为了让计算机能够执行则须向计算机输入一系列01构成的指令。 例如在x64平台下,0x53,二进制为01010011,表示将rbx寄存器中的值压栈。 但是,对于程序员而言,…...
5G-A来了!5G信号多个A带来哪些改变?
5G-A来了!5G信号多个A带来哪些改变? 随着科技不断进步,通信网络的迭代升级也在加速。自4G、5G的推出以来,我们见证了通信技术的飞跃式发展。最近,越来越多的用户发现自己手机屏幕右上角的5G标识已经变成了“5G-A”。那…...
探索虚拟化:云计算时代的资源优化之道
前言 如果您想知道云提供商如何在全球范围内运行无数应用程序,而每个应用程序都没有机架服务器,那么答案就在于虚拟化。 它是为云提供支持的核心技术之一,在幕后悄悄工作,使现代计算高效、可扩展且具有成本效益。 在本文中&#x…...
用户登录构件示例
目录 一、登录构件概述 二、构件内部结构 1. 构件组成元素(表格形式) 2. 组件连接件设计...
【软件测试】基于项目驱动的功能测试报告
目录 一、项目的介绍 1.1 项目背景 二、测试目标 2.1 用户服务模块 2.1.1 用户注册模块 2.1.1.1 测试点 2.1.1.2 边界值分析法(等价类+边界值) 2.1.1.2.1 有效等价类 2.1.1.2.2 无效等价类 2.1.1.2.3 边界值 2.1.1.2.4 测试用例设计 2.2 文章标签模块 2.3 文章模…...
【QT】UDP通讯本地调试
qt已经写好了udp通讯代码,现在要进行测试。 1、终端输入ipconfig查看本机网卡的ipv4地址 2、 用udpBind函数,绑定到此ip和自定义的端口号。 3、 打开网络调试助手,自动检测到本机的ip地址,输入任意一个和程序里不一样的端口号。 …...
web animation API 锋利的css动画控制器 (更新中)
什么是web animation api 以及为什么要使用web animation api? web animation API 是web页面中控制DOM元素动画效果的javascript原生API。 它能够逐个关键帧控制动画效果,具有Timeline 机制能通过javascript来实现动画的暂停,播放&#x…...
Nginx的增强与可视化!OpenResty Manager - 现代化UI+高性能反向代理+安全防护
以下是对OpenResty Manager的简要介绍: OpenResty Manager (Nginx 增强版),是一款容易使用、功能强大且美观的反向代理工具 ,可以作为OpenResty Edge 的开源替代品基于 OpenResty 开发,支持并继承 OpenRes…...
Spring Boot 中的重试机制
Retryable 注解简介 Retryable 注解是 Spring Retry 模块提供的,用于自动重试可能会失败的方法。在微服务架构和分布式系统中,服务之间的调用可能会因为网络问题、服务繁忙等原因失败。使用 Retryable 可以提高应用的稳定性和容错能力 1。 使用步骤 &…...
[Java实战]Spring Boot 整合 Freemarker (十一)
[Java实战]Spring Boot 整合 Freemarker (十一) 引言 Apache FreeMarker 作为一款高性能的模板引擎,凭借其简洁语法、卓越性能和灵活扩展性,在 Java Web 开发中占据重要地位。结合 Spring Boot 的自动化配置能力,开发者能快速构建动态页面、…...
现有预测式外呼系统如何接入AI系统,使用AI辅助,判断出意向客户再转人工
很多用户还在使用老旧的预测式外呼系统,只能外呼接通后播放一个提示音,播放完提示音后在转给人工坐席, 如果重新部署一套AI外呼系统,涉及到业务系统的迁移,非常不方便。 现在我就做一个如何让现有外呼系统,…...
实战项目3(04)
目录 任务场景一 【r1配置】 【sw1配置】 任务场景二 【r1配置】 【sw1配置】 【sw2配置】 任务场景一 某公司网络为了减少广播包对网络的影响,网络管理员对网络进行了VLAN划分,完成VLAN划分后,为了不影响VL…...
[Java实战]Spring Boot 静态资源配置(十三)
[Java实战]Spring Boot 静态资源配置(十三) 引言 静态资源(如 HTML、CSS、JavaScript、图片等)是 Web 应用的基石。Spring Boot 通过自动化配置简化了静态资源管理,但面对复杂场景(如多模块项目、CDN 集成…...
ESP-ADF wifi_service子模块wifi_ssid_manager凭证管理函数详解
目录 ESP-ADF wifi_service子模块wifi_ssid_manager凭证管理函数详解WiFi凭证管理函数分析wifi_ssid_manager_savewifi_ssid_manager_erase_all 内部实现机制存储策略分析内部数据流向关键辅助函数分析重要的内部辅助函数详解get_stored_id_by_ssidnvs_get_write_idnvs_set_cou…...
数据分析预备篇---NumPy数组
NumPy是数据分析时常用的库,全称为Numerical Python,是很多数据或科学相关Python包的基础,包括pandas,scipy等等,常常被用于科学及工程领域。NumPy最核心的数据结构是ND array,意思是N维数组。 #以下是一个普通列表的操作示例:arr = [5,17,3,26,31]#打印第一个元素 prin…...
解决VirtualBox中虚拟机(ubuntu)与主机(windows)之间互相复制粘贴(文本)
一.开始的设置 1.在VirtualBox中打开设置,常规中修改主机与虚拟机交互设置 2.虚拟机关闭状态下,存储中选中控制器SATA,勾选‘使用主机输入输出’ 3.选中操作系统对应的虚拟文件,.vdi文件,勾选右边的固态驱动器。 4.启…...
单细胞RNA测序数据分析与可视化:从基础原理到高级应用
引言 单细胞RNA测序(scRNA-seq)技术的出现彻底改变了我们研究复杂生物系统的方式,使科学家能够在前所未有的精细水平上解析细胞异质性。传统的bulk RNA测序只能捕获细胞群体的平均表达特征,而单细胞转录组测序允许我们检测每个细…...
嵌入式硬件篇---UART
文章目录 前言1. UART协议基础1.1 物理层特性两根信号线无时钟信号电平标准TTL UARTRS-232 1.2 数据帧格式1.3 波特率计算波特率 2. STM32F103RCT6的UART配置2.1 硬件连接2.2 CubeMX配置启用USART1引脚分配中断启用(可选) 3. HAL库代码实现3.1 UART初始化…...
C# 通过ConfigurationManager读写配置文件App.Config
目录 简述代码描述一、构建App.config二、调用代码1、代码步骤说明2、输出结果说明 简述 App.config 是 C#中最常用的配置文件类型。 通常位于项目的根目录中,以 XML 格式存储配置信息。App.config 文件可以包含多个配置节,如 appSettings、connectionS…...
Python3安装HTMLTestRunner
1.下载HTMLTestRunner地址:http://tungwaiyip.info/software/HTMLTestRunner.html 2.下载的HTMLTestRunner.py是针对python2写的,所以需要改成python3适合的内容: 问题1:No module named StringIO, 原因:py…...
图形化编程革命:iVX携手AI 原生开发范式
一、技术核心:图形化编程的底层架构解析 1. 图形化开发的效率优势:代码量减少 72% 的秘密 传统文本编程存在显著的信息密度瓶颈。以 "按钮点击→条件判断→调用接口→弹窗反馈" 流程为例,Python 实现需定义函数、处理缩进并编写 …...
GC垃圾回收
Gc是语言提供的自动的内存管理机制,自动释放不需要的内存对象,让出存储器资源。 Go语言变革: V1.5的三色并发标记法 V1.5的三色并发标记为什么需要STW V1.5的三色标记为什么需要屏障机制(“强-弱”,三色不变式、插入屏障、删除屏障…...
“多端多接口多向传导”空战数据链体系——从异构融合架构到抗毁弹性网络的系统性设计
“多端多接口多向传导”空战数据链体系——从异构融合架构到抗毁弹性网络的系统性设计 文章目录 “多端多接口多向传导”空战数据链体系——从异构融合架构到抗毁弹性网络的系统性设计第一章 引言:空战数据链体系的范式革新1.1 空战数据链的演进逻辑1.2 新架构的核心理论价值1…...
Unity3D仿星露谷物语开发42之粒子系统
1、目标 使用例子系统,实现割草后草掉落的特效。 通过PoolManager获取特效预制体,通过VFXManager来触发特效。 2、配置例子特效 在Hierarchy -> PersistentScene下创建新物体命名为Reaping。 给该物体添加Particle System组件。 配置例子系统参数…...
python打卡训练营打卡记录day22
复习日 仔细回顾一下之前21天的内容,没跟上进度的同学补一下进度。 作业: 自行学习参考如何使用kaggle平台,写下使用注意点,并对下述比赛提交代码 kaggle泰坦尼克号人员生还预测 导入数据 # 导入所需库 import pandas as pd impor…...
网络编程(一)网络编程入门
本节课学习TCP客户端和服务器端编程架构,其分为分为C/S(客户端/服务器模式)和B/S(浏览器/服务器架构模式)两种模式。接下来我们分别了解这两种模式 C/S模式 C/S模式:服务器首先先启动,并根据客…...
华为IP(6)
VLAN聚合 VLAN聚合产生的技术背景 在一般是三层交换机中,通常采用一个VLAN接口的方式实现广播域之间的互通,这在某些情况下导致了IP地址的浪费 因为一个VLAN对应的子网中,子网号、子网广播地址、子网网关地址不能用作VLAN内的主机IP地址&a…...
初探机器学习与深度学习
本文以水果摊销量预测为例,揭示机器学习通过数据训练模型的核心逻辑,对比传统编程规则驱动模式。解析分类(疾病诊断)与回归(房价预测)两大任务的技术本质,类比前端开发中的类型定义与图表拟合。…...
3. 仓颉 CEF 库封装
文章目录 1. capi 使用说明2. Cangjie CEF2. 1实现目标 3. 实现示例 1. capi 使用说明 根据上一节 https://blog.csdn.net/qq_51355375/article/details/147880718?spm1011.2415.3001.5331 所述, cefcapi 是libcef 共享库导出一个 C API, 而以源代码形式分发的 li…...
Linux-TCP套接字编程简易实践:实现EchoServer与远程命令执行及自定义协议(反)序列化
一.TCP Socket常用API 1.1socket() NAMEsocket - create an endpoint for communicationSYNOPSIS#include <sys/types.h> /* See NOTES */#include <sys/socket.h>int socket(int domain, int type, int protocol); socket()打开一个网络通讯端口,如果…...
缓存(3):本地缓存作用 及 数据一致性 实现策略
概述 CAP 什么是CAP CAP理论,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。 三者关系如…...
【leetcode】《BFS扫荡术:如何用广度优搜索征服岛屿问题》
前言 🌟🌟本期讲解关于力扣的几篇题解的详细介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话不…...
vue中理解MVVM
理解 在 Vue 中,MVVM(Model-View-ViewModel) 是其核心设计思想之一,它帮助实现了数据驱动的视图更新和良好的代码结构分离。我们来具体解析 Vue 是如何实现 MVVM 模式的。 🌐 MVVM 是什么? 角色含义Vue…...
[工具]B站缓存工具箱 (By 郭逍遥)
📌 项目简介 B站缓存工具箱是一个多功能的B站缓存工具,包含视频下载、缓存重载、文件合并及系统设置四大核心功能。基于yutto开发,采用图形化界面操作,极大简化B站资源获取与管理流程。 工具可以直接将原本缓存的视频读取&#…...
Docker Compose 完全指南:从入门到生产实践
Docker Compose 完全指南:从入门到生产实践 1. Docker Compose 简介与核心价值 Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 文件来配置应用的服务,只需简单命令就能创建和启动所有服务。 核心优势:…...