C++ Qt养猪模拟课设:从编译踩坑到性能优化实战
简介这是一份面向计算机及相关专业本科生的C课程设计级项目资源基于Qt框架实现功能完整的养猪场模拟系统兼顾算法逻辑、数据结构与GUI开发实践。资源共45个文件含14个.cpp源码、13个.h头文件支撑核心业务如Pig、PigFarm、PigSty等类模块6张PNG界面图标与2个WAV音效增强交互体验2个.ui文件定义主界面与添加猪崽窗口另有项目说明.md、.pro工程配置及绘图模块drawgraph.h/cpp等整体7.66MB结构清晰、模块解耦度高。已有120人学习下载适合课设开发、C进阶训练及Qt入门实战。读者可直接运行验证全部功能包括猪圈动态分配、多品种混养约束、周期性出栏与补栏、销售/采购记录持久化存储、猪瘟传播模拟、体重增长随机建模以及基于文件的数据自动加载与多维度统计图表展示。1. 这不是玩具一个用 C 和 Qt 写的养猪模拟游戏为什么能当课设硬核通关你打开压缩包看到main.cpp、pigfarm.h、mainwindow.ui还有个README.md里写着“课程设计基于 Qt 的生猪养殖模拟系统”。别急着关掉——这真不是学生随便拖几个按钮拼出来的“电子养猪场”截图。它背后是 C 对象生命周期管理的实战沙盒猪只状态机待产/哺乳/育肥/出栏靠QTimer驱动饲料库存、市场价格、疫病爆发概率全由QVectorQMapQString, double动态建模Qt 的信号槽机制被用来解耦“猪圈温度传感器报警”和“自动开启通风扇”的逻辑链。我带过三届计科课设90% 的 C 项目栽在“对象析构顺序错乱导致野指针崩溃”而这个源码里QScopedPointerPigPen的用法恰恰卡在 C11 智能指针与 Qt 对象树管理的交界点上。如果你正被 Visual Studio 报LNK2005: already defined、Qt Creator 提示:-1: error: dependent ...\qt\5.15.2\msvc2019_64\include\qtwid卡住编译或者想搞懂为什么QTableWidget插入 500 头猪就卡成 PPT——这篇笔记就是为你写的。它不教你怎么画可爱小猪图标而是带你把这套课设代码变成你 C 工程能力的实体证明。2. 编译前必须跨过的三道坎环境、依赖、Qt 版本对齐2.1 环境底座Visual Studio Qt 安装组合的黄金配比这个课设源码默认适配MSVC2019 编译器 Qt 5.15.2msvc2019_64。注意不是 Qt 6.x不是 MinGW更不是 Qt for WebAssembly。很多同学直接双击pigfarm.pro用 Qt Creator 打开结果报错qmake: could not find a Qt installation of ——根本原因是 Qt Creator 没绑定正确的 Kit。先确认你的 Visual Studio 安装了C 构建工具Desktop development with C再单独安装Microsoft Visual C 2015–2022 Redistributable (x64)这是运行时依赖不是编译器。然后去 Qt 官网归档页 下载Qt 5.15.2 for Visual Studio 2019文件名类似qt-opensource-windows-x86-5.15.2.exe安装时务必勾选MSVC 2019 64-bit组件并记下安装路径如C:\Qt\5.15.2\msvc2019_64。提示不要用在线安装器MaintenanceTool升级已安装的 Qt 5.15.2——它会悄悄覆盖mkspecs目录导致 qmake 生成错误的.vcxproj文件。重装才是最稳的后悔药。2.2 Qt Creator 中 Kit 配置的实操步骤打开 Qt Creator → Tools → Options → Kits → Compilers点击Add→Microsoft Visual C Compiler→ 选择x64版本路径类似C:\Program Files\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe点击Qt Versions→Add→ 选择qmake.exe路径为C:\Qt\5.15.2\msvc2019_64\bin\qmake.exe最后在Kits标签页新建一个 KitName:MSVC2019 Qt5.15.2Device type: DesktopCompiler: 刚刚添加的 MSVC x64Qt version: 刚刚添加的 5.15.2Debugger: 自动识别通常为CDB验证方法新建空 Qt Widgets Application 项目能成功构建并运行QMessageBox::information()说明 Kit 就绪。2.3 解决:-1: error: dependent ...\qt\5.15.2\msvc2019_64\include\qtwid类型报错这个错误本质是头文件包含路径断裂常见于两种情况.pro文件中INCLUDEPATH写死了绝对路径如INCLUDEPATH C:/Qt/5.15.2/msvc2019_64/include但你的 Qt 装在D:\Qt#include QWidget被误写成#include QWidget引号路径优先搜索当前目录找不到才走系统路径。修复方案打开pigfarm.pro删掉所有硬编码的INCLUDEPATH和LIBS -L...行确保所有头文件包含用尖括号#include QMainWindow、#include QTimer而非双引号在.pro文件末尾添加标准 Qt 模块声明QT core widgets gui greaterThan(QT_MAJOR_VERSION, 4): QT widgets执行qmake右键项目 →Run qmake再Build。如果仍报错打开Build Run→Projects→Build Steps→Make确认qmake参数为空不要加-spec win32-msvcKit 已指定。3. 从 main.cpp 到猪圈核心类结构与状态驱动逻辑拆解3.1 主程序骨架QApplication 生命周期与主窗口初始化main.cpp是整个系统的入口但它的精妙之处在于没有手动 delete 任何 Qt 对象#include QApplication #include mainwindow.h int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; // 栈对象父对象为 QApplication w.show(); return a.exec(); // 启动事件循环自动管理对象树 }关键点MainWindow构造函数中所有 UI 控件如ui-tableViewPig、ui-labelTemp都通过ui-setupUi(this)创建且this即 MainWindow 实例作为它们的 parent。这意味着当w栈对象析构时Qt 对象树自动递归 delete 所有 child不需要new MainWindow改成堆分配——课设级项目反而更安全若你强行new MainWindow却忘记delete或setParent(nullptr)断开树就会触发QObject: Cannot create children for a parent that is in a different thread崩溃。血泪经验有学生为“省内存”把 Pig 类改成QSharedData派生结果QVectorPig复制时 shallow copy 导致多处指向同一块内存喂食操作改了 A 猪体重却同步影响 B 猪——根源是没吃透 Qt 对象树和值语义的边界。3.2 Pig 类轻量级数据容器 状态机引擎pig.h定义了Pig结构体非 QObject 派生这是性能关键struct Pig { int id; QString breed; // 品种长白、杜洛克、大白 int ageDays; // 实际日龄整数避免浮点误差 double weightKg; // 当前体重kg enum State { WAITING, PREGNANT, NURSING, FATTENING, SOLD }; State state; QDateTime lastEventTime; // 上次状态变更时间戳 };状态流转由FarmManager类统一调度而非每个 Pig 自己startTimer()FarmManager::updateDaily()每 1000ms 触发一次模拟一天遍历QVectorPig根据ageDays和state计算新状态if (pig.state Pig::PREGNANT pig.ageDays 114) { pig.state Pig::NURSING; pig.weightKg 1.2; // 产仔后母猪体重变化 emit pigBorn(pig.id); // 发射信号通知 UI 更新 }这种集中式状态机避免了 100 头猪各自启动 QTimer 导致的线程竞争也便于调试——你只需在updateDaily()打断点就能单步跟踪所有猪的状态跃迁。3.3 FarmManager业务逻辑中枢与 Qt 信号枢纽FarmManager是真正的“养猪厂大脑”它继承自QObject为了使用信号槽但不继承 QWidgetclass FarmManager : public QObject { Q_OBJECT public: explicit FarmManager(QObject *parent nullptr); void startSimulation(); // 启动定时器 void stopSimulation(); void addPig(const Pig pig); // 添加新猪 signals: void pigBorn(int pigId); // 产仔信号 void pigSold(int pigId); // 出栏信号 void feedConsumed(double kg); // 饲料消耗信号 public slots: void onTemperatureChanged(double temp); // 接收温控传感器信号 };UI 层MainWindow通过connect()订阅这些信号connect(farmManager, FarmManager::pigBorn, this, MainWindow::onPigBornUpdateUI); connect(farmManager, FarmManager::feedConsumed, ui-labelFeed, QLabel::setText);这种解耦让业务逻辑可独立单元测试FarmManager可脱离 UI 运行也方便后续扩展——比如接入真实温湿度传感器时只需替换onTemperatureChanged的实现UI 层完全不用动。4. UI 卡顿与数据爆炸QTableWidget 性能瓶颈的硬核优化4.1 为什么插入 500 头猪就卡成幻灯片原始代码用QTableWidget::setItem(row, col, new QTableWidgetItem(...))逐行插入问题在于每次setItem()都触发viewport()-update()强制重绘整个视图QTableWidgetItem是 heavyweight 对象每行 6 列 × 500 行 3000 个对象内存占用飙升QTableWidget内部用QListQTableWidgetItem*存储随机访问 O(n)滚动时频繁查找 item。实测数据插入 500 头猪耗时 2.3 秒内存峰值 180MB滚动时帧率跌至 8 FPS。4.2 三步替换QTableView 自定义 Model 数据懒加载步骤 1替换 UI 控件在mainwindow.ui中将QTableWidget替换为QTableView并在MainWindow::setupUi()中关联// 删除原 ui-tableWidgetPig 的所有 setItem() 代码 ui-tableViewPig-setModel(pigModel); // pigModel 是自定义 model 实例 ui-tableViewPig-setSelectionBehavior(QAbstractItemView::SelectRows); ui-tableViewPig-verticalHeader()-setVisible(false);步骤 2实现PigTableModel继承QAbstractTableModelclass PigTableModel : public QAbstractTableModel { Q_OBJECT public: explicit PigTableModel(QObject *parent nullptr); int rowCount(const QModelIndex parent QModelIndex()) const override; int columnCount(const QModelIndex parent QModelIndex()) const override; QVariant data(const QModelIndex index, int role Qt::DisplayRole) const override; QVariant headerData(int section, Qt::Orientation orientation, int role Qt::DisplayRole) const override; void updatePigList(const QVectorPig pigs); // 外部调用更新数据 private: QVectorPig m_pigs; // 真实数据存储轻量 };核心优化点data()方法只在role Qt::DisplayRole时返回字符串其他角色如Qt::EditRole直接return QVariant()rowCount()返回m_pigs.size()columnCount()固定为 6ID/品种/日龄/体重/状态/操作updatePigList()内部调用beginResetModel()/endResetModel()批量刷新而非逐行 notify。步骤 3启用视图优化选项ui-tableViewPig-setUniformRowHeights(true); // 所有行高一致避免计算 ui-tableViewPig-setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); ui-tableViewPig-setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); ui-tableViewPig-setAlternatingRowColors(true);实测效果500 头猪加载时间降至 0.12 秒内存峰值 42MB滚动帧率稳定 60 FPS。注意不要在data()中做耗时计算如QString::number(pig.weightKg, f, 2)应提前存入Pig结构体的QString displayWeight字段——这是 Qt Model/View 架构的铁律。5. 编译与运行避坑指南那些让你凌晨三点还在查文档的错误5.1 LNK2005: symbol already defined 错误重复定义现象链接阶段报错main.obj : error LNK2005: public: __cdecl Pig::Pig(void) (??0PigQEAAXZ) already defined in pig.obj原因pig.h中定义了Pig构造函数实现如Pig() : id(0), ageDays(0) {}且该头文件被main.cpp和farmmanager.cpp同时 include导致两个 .obj 文件都生成了Pig::Pig()符号。解决方案 A推荐pig.h中只声明构造函数Pig();在pig.cpp中实现方案 B在pig.h中加inline Pig() { ... }强制内联方案 C用#pragma once或#ifndef PIG_H头卫士但无法解决 inline 函数重复定义仅防头文件多次 include。5.2 Qt Creator 报错 “No rule to make target ‘…/moc_mainwindow.cpp’”现象构建时提示make: *** No rule to make target …/moc_mainwindow.cpp, needed by …/mainwindow.o. Stop.原因.pro文件未正确启用CONFIG c11或HEADERS mainwindow.h缺失导致 mocMeta-Object Compiler未生成moc_mainwindow.cpp。解决检查.pro文件是否包含CONFIG c11 HEADERS mainwindow.h \ pig.h \ farmmanager.h SOURCES main.cpp \ mainwindow.cpp \ pig.cpp \ farmmanager.cpp手动触发 moc右键项目 →Run qmake→Clean→Rebuild若仍失败在Build Run→Projects→Build Steps→Make中确认make命令参数为all非debug。5.3 运行时报错 “The program has unexpectedly finished” 且无堆栈现象程序一闪而退Application Output 窗口只显示The program has unexpectedly finished.排查路径在main()开头加qDebug() App started;确认是否进入 main在MainWindow构造函数第一行加qDebug() MainWindow constructing;若卡在第二步检查ui-setupUi(this)是否引用了不存在的控件名如.ui文件中控件叫pushButtonFeed但代码里写ui-pushButtonFood最常见原因QTimer::singleShot(0, this, MainWindow::initFarm)中initFarm()里调用了未初始化的farmManager指针如farmManager-addPig(...)但farmManager是 raw pointer 且未 new。5.4 中文乱码Qt Creator 显示正常exe 运行时中文变方框现象ui-labelTitle-setText(养猪模拟系统);在 Qt Creator 预览正常但生成 exe 运行时显示□□□□□□原因Windows 系统默认 ANSI 编码GBK而 Qt 默认 UTF-8QString构造时若源码文件保存为 GBK中文字符串会被错误解析。解决将所有.cpp/.h文件用 Notepad 转为 UTF-8 without BOM 编码在main()开头添加#if QT_VERSION QT_VERSION_CHECK(5, 10, 0) QTextCodec::setCodecForLocale(QTextCodec::codecForName(UTF-8)); #endif或更彻底用QString::fromLocal8Bit(中文)替代裸字符串但需全局替换工作量大。6. 让课设脱颖而出三个可立即落地的进阶技巧6.1 用 QSettings 实现配置持久化告别硬编码参数原始代码中饲料价格、猪只日增重系数、疫病爆发概率全写死在FarmManager.cpp里const double FEED_PRICE_PER_KG 3.2; // 元/kg const double DAILY_WEIGHT_GAIN 0.8; // kg/天 const double DISEASE_PROBABILITY 0.005; // 0.5% 每天这导致每次调参都要重新编译。换成QSettings用户可在 UI 中修改并自动保存步骤 1定义 SettingsManager 单例class SettingsManager : public QSettings { Q_OBJECT public: static SettingsManager instance() { static SettingsManager inst; return inst; } double feedPrice() const { return value(economy/feed_price, 3.2).toDouble(); } void setFeedPrice(double v) { setValue(economy/feed_price, v); } private: SettingsManager() : QSettings(PigFarm, Simulation) {} };步骤 2在 UI 中绑定滑动条// MainWindow 构造函数中 ui-sliderFeedPrice-setValue(SettingsManager::instance().feedPrice() * 10); connect(ui-sliderFeedPrice, QSlider::valueChanged, [](int v) { double price v / 10.0; ui-labelFeedPrice-setText(QString::number(price, f, 1) 元/kg); SettingsManager::instance().setFeedPrice(price); });效果配置保存在C:\Users\user\AppData\Local\PigFarm\Simulation.ini重启后自动加载。学生答辩时演示“动态调整饲料价格观察利润曲线”瞬间拉开差距。6.2 用 QMovie 实现猪只状态动画低成本提升沉浸感QTableWidget或QTableView的单元格只能放文字但QStyledItemDelegate可以绘制任意内容。为“状态”列添加小动画步骤 1准备 GIF 资源pregnant.gif母猪腹部微光脉动nursing.gif小猪吮吸动画fattening.gif猪肚皮缓慢起伏放入:/res/资源路径Qt Resource System。步骤 2自定义 Delegateclass PigStateDelegate : public QStyledItemDelegate { Q_OBJECT public: void paint(QPainter *painter, const QStyleOptionViewItem option, const QModelIndex index) const override { QString state index.data(Qt::DisplayRole).toString(); QPixmap pix; if (state 妊娠) pix QPixmap(:/res/pregnant.gif); else if (state 哺乳) pix QPixmap(:/res/nursing.gif); else pix QPixmap(:/res/fattening.gif); QRect rect option.rect; rect.adjust(4, 4, -4, -4); // 留边距 painter-drawPixmap(rect, pix); } };步骤 3应用 DelegatePigStateDelegate* delegate new PigStateDelegate(ui-tableViewPig); ui-tableViewPig-setItemDelegateForColumn(4, delegate); // 第5列是状态无需额外线程Qt 自动播放 GIF。答辩时评委看到“猪圈里小猪在动”印象分直线上升。6.3 用 QProcess 启动外部 Python 分析脚本打通数据出口课设常被问“数据能导出吗能做分析吗” 原始代码只有 CSV 导出。进阶做法一键启动 Jupyter Notebook 分析当日数据。步骤 1生成分析数据void FarmManager::exportToPython() const { QFile file(pig_data.csv); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) return; QTextStream out(file); out id,breed,age_days,weight_kg,state\n; for (const auto pig : m_pigs) { out QString::number(pig.id) , pig.breed , QString::number(pig.ageDays) , QString::number(pig.weightKg, f, 1) , stateToString(pig.state) \n; } file.close(); }步骤 2用 QProcess 启动 Pythonvoid MainWindow::on_btnAnalyze_clicked() { farmManager-exportToPython(); QProcess* proc new QProcess(this); proc-start(python, {analyze_pig.py}); // 脚本需预装 pandas/matplotlib connect(proc, QProcess::finished, [](int exitCode) { if (exitCode 0) { QMessageBox::information(this, 分析完成, 报告已生成report.html); } }); }analyze_pig.py用pandas读 CSV生成体重分布直方图、日增重趋势折线图用plotly输出交互式 HTML。答辩时打开浏览器展示动态图表技术深度肉眼可见。我带课设时学生只要做到其中一项尤其是 QSettings 配置持久化答辩分数基本稳在 90。因为这证明他理解了“软件不是写完就结束而是要可配置、可扩展、可交付”。这套养猪模拟代码表面是课设内核是工业级 Qt 应用的最小可行范式——对象树管理、Model/View 分离、资源抽象、跨进程协作。你把它跑通、调优、再加点料就不是交作业而是给自己攒下第一份拿得出手的 C Qt 工程作品集。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

三分钟搞懂MCP协议:它和A2A、Function Call、Agent到底有啥区别?为什么说它是AI界的“万能插座”?TaoToken统一Key视角

三分钟搞懂MCP协议:它和A2A、Function Call、Agent到底有啥区别?为什么说它是AI界的“万能插座”?TaoToken统一Key视角

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 7:57:03 阅读更多 →
与Gemini共舞:把对话式AI变成你的创作灵感引擎

与Gemini共舞:把对话式AI变成你的创作灵感引擎

说实话,我一开始也没想到,一个对话式AI能把我从“灵感枯竭”的边缘拉回来。过去写东西,我习惯一个人死磕,脑袋里翻来覆去就那么几个角度,越写越窄。后来我开始认真把gemini当作创作搭子,每天丢给它各种奇怪…

2026/10/12 7:57:07 阅读更多 →
嵌入式驱动开发实战:从字符设备到中断处理与调试技巧

嵌入式驱动开发实战:从字符设备到中断处理与调试技巧

1. 嵌入式驱动开发到底在做什么 先把话说透:嵌入式驱动开发,本质上就是写一层“翻译软件”,让操作系统能跟硬件外设对上话。上层应用想点亮一颗LED、读一个温湿度传感器、往Flash里写一段数据,它不会直接去操作寄存器,…

2026/10/11 22:36:41 阅读更多 →

最新新闻

Java异步编程进阶:CompletableFuture任务编排与线程池实战

Java异步编程进阶:CompletableFuture任务编排与线程池实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 2:43:28 阅读更多 →
单片机毕设项目:基于单片机的智能婴儿摇篮温湿度调节与远程监控系统设计 基于WIFI的婴儿床哭泣尿床监测与环境联动控制装置设计(032707)

单片机毕设项目:基于单片机的智能婴儿摇篮温湿度调节与远程监控系统设计 基于WIFI的婴儿床哭泣尿床监测与环境联动控制装置设计(032707)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/10/14 2:43:28 阅读更多 →
【计算机毕业设计单片机案例】基于STM32的婴儿监护环境调节与摇篮哄睡系统设计 基于物联网的智能婴儿床环境调节与生理状态监测装置设计(032707)

【计算机毕业设计单片机案例】基于STM32的婴儿监护环境调节与摇篮哄睡系统设计 基于物联网的智能婴儿床环境调节与生理状态监测装置设计(032707)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/10/14 2:43:28 阅读更多 →
我们在联想 ThinkStation PGX 上搭了一个“AI 编辑部“

我们在联想 ThinkStation PGX 上搭了一个“AI 编辑部“

在输入框里只敲了五个字:“本周的选题”,随后,屏幕上的工具调用记录一行行滚过:分析账号定位、生成检索条件、搜索近期内容、排出候选题。我们选定一个,它又去补资料、搭大纲、写初稿……这不是一次简单的模型问答&…

2026/10/14 2:43:28 阅读更多 →
基于Python的电影受众群体特征分析与可视化实战

基于Python的电影受众群体特征分析与可视化实战

提到“基于Python的电影受众群体特征研究”这个毕设题目,很多准备开题的同学第一个反应是:这方向是不是太普通了?我自己的看法是,普通题目更容易做出完整度和深度。它把Python数据处理、统计分析、可视化、机器学习串成了一条完整…

2026/10/14 2:43:28 阅读更多 →
人行动5.0结业测试:从模型微调到部署排错的备考指南

人行动5.0结业测试:从模型微调到部署排错的备考指南

简介:适用于讯飞新员工及转正考核准备的结业测试答案文档,内容围绕‘讯飞人行动’5.0版本的结业测评展开,完整覆盖单选题、多选题与判断题三类题型,可帮助考生在短时间内掌握考核要点。资源共1个docx文件、仅23KB,轻量…

2026/10/14 2:42:28 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →