全部工程
C++ 与 Qt 桌面合集 · Windows 版已发布

Liss Qt Labs · 三个 C++ 桌面实验

调度、压缩与表达式计算,把三种内部过程变成可以操作的窗口。

查看最新版本Windows · 最新正式版
查看源码
技术方向
C++ 桌面 / 可视算法
设计主张
把输入、内部状态与结果放在同一个窗口。
关键能力
  • 调度与内存同屏
  • 流式压缩与校验
  • 表达式求值轨迹

时间片轮转中的 PCB、连续内存图与进程占用,空闲碎片在空间中可见。

三个窗口,三种看得见的计算

把早期 C++ / Qt 实践中的操作系统模拟、Huffman 压缩和计算器放在同一组桌面实验里。输入、内部状态和输出同时可见,既能直接使用,也能沿着画面理解背后的模型。

技术构成

C++20 / Qt 6 Widgets
Widgets 组织窗口,QPainter 自绘图表,QSS 统一深色样式。
调度 / 连续内存模型
连接 PCB、状态队列和可视内存布局。
Huffman / 位流
从频率统计生成前缀码,流式编码并验证恢复结果。
双栈 / 逆波兰式
解析科学表达式,并保留可阅读的求值轨迹。

设计与实现

运行、就绪与阻塞队列,配合内存图、PCB 和事件轨迹观察状态转换。 放大查看
运行、就绪与阻塞队列,配合内存图、PCB 和事件轨迹观察状态转换。

OS Lab · 调度与内存一起看

状态与队列相互对应

创建进程,单步或自动推进时间片轮转;运行、就绪、阻塞状态同时反映在 PCB 与队列中。

碎片有空间上的含义

最大空闲区分配配合内存图呈现占用与释放;紧凑移动分配区,也同步进程的内存首地址。

压缩与解压往返后,字节频率、前缀码、平均码长和完整性校验同屏。 放大查看
压缩与解压往返后,字节频率、前缀码、平均码长和完整性校验同屏。

Huffman Lab · 让压缩结果可以核对

从字节频率到前缀码

使用最小堆构建 Huffman 树,自写编码表与比特打包;频率、平均码长、信息熵和头部开销一起解释压缩率。

完整的文件往返

Qt Concurrent 在后台分块处理并支持取消;原子保存与 SHA-256 校验让文件往返形成闭环。

科学表达式的结果、历史、逆波兰式和逐步求值路径在一个窗口中对应。 放大查看
科学表达式的结果、历史、逆波兰式和逐步求值路径在一个窗口中对应。

Calculator · 看得见的表达式求值

手写解析与求值

运算符栈生成逆波兰式,再由数值栈计算;优先级、右结合幂、一元符号和错误位置都有明确约定。

计算过程可复用

科学函数、DEG / RAD、变量、记忆与 Ans 组成日常工作流,历史记录与求值轨迹保留在界面里。

画面与演示说明

OS Lab 是教学模拟,不访问系统进程或真实物理内存。Huffman 使用独立 LHF2 格式;小文件或随机数据可能增大。计算器采用双精度实数。

快速开始

一个包,三个程序

完整解压 Windows x64 ZIP,分别运行 LissOsLab.exe、LissHuffmanLab.exe 或 LissCalculator.exe;保留同目录 DLL、plugins 与 third-party 文件夹。

从一个过程开始

OS Lab 创建进程并单步推进;Huffman Lab 选择文件压缩、解压;Calculator 输入表达式,查看结果和求值轨迹。

查看可操作样例

各程序支持 --showcase 载入示例;样例仍使用同一业务模型,可以继续修改和运行。

powershell
.\LissOsLab.exe --showcase
.\LissHuffmanLab.exe --showcase
.\LissCalculator.exe --showcase
全部工程