# sdd_calc **Repository Path**: bitpg/sdd_calc ## Basic Information - **Project Name**: sdd_calc - **Description**: 使用sdd方式开发的计算器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-12 - **Last Updated**: 2026-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 暗色现代风格计算器 基于 C (C11) + raylib 5.5 的桌面计算器,暗色主题,圆角按钮,支持四则运算、乘方运算、连续运算和逐位删除。 ## 功能 - `+` `-` `×` `÷` `x^y` 四则及乘方运算,结果保留 2 位小数 - 双行显示:上行表达式 + 下行动态结果 - 连续运算(`3 + 5 = × 2 =` → `16.00`) - `C` 清空全部,`DEL` 逐位删除 - 除数为零显示红色 `Error` ## 界面 ``` ┌──────────────────────────────────────┐ │ ┌────────────────────────────────┐ │ │ │ 35 + 12 = │ │ │ │ 47.00 │ │ │ └────────────────────────────────┘ │ │ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │ │ │ C │ │DEL │ │x^y │ │ ÷ │ │ │ └────┘ └────┘ └────┘ └────┘ │ │ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │ │ │ 7 │ │ 8 │ │ 9 │ │ × │ │ │ └────┘ └────┘ └────┘ └────┘ │ │ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │ │ │ 4 │ │ 5 │ │ 6 │ │ - │ │ │ └────┘ └────┘ └────┘ └────┘ │ │ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │ │ │ 1 │ │ 2 │ │ 3 │ │ + │ │ │ └────┘ └────┘ └────┘ └────┘ │ │ ┌────┐ ┌────┐ ┌──────────┐ │ │ │ 0 │ │ . │ │ = │ │ │ └────┘ └────┘ └──────────┘ │ └──────────────────────────────────────┘ ``` ## 环境要求 - Windows 10/11 64 位 - [raylib 5.5](https://github.com/raysan5/raylib/releases/tag/5.5)(MinGW-w64 版本,安装到 `C:\raylib\raylib-5.5_win64_mingw-w64`) - GCC(MinGW-w64,如 [w64devkit](https://github.com/skeeto/w64devkit)) ## 构建与运行 ```bash .\build.bat # 编译生成 build\calc.exe .\build\calc.exe # 启动计算器 ``` ## 项目结构 ``` ├── README.md ├── spec.md # 需求规格说明书 ├── plan.md # 执行规划文档 ├── tasks.md # 任务清单 ├── build.bat # 一键构建脚本 ├── sdd-demo.md # SDD 开发过程记录 ├── src/ │ ├── calc.h # 计算逻辑头文件(状态机声明) │ ├── calc.c # 计算逻辑实现(5 状态 FSM) │ ├── ui.h # UI 头文件(布局常量 + 主题色) │ ├── ui.c # UI 绘制(圆角按钮 + 双行显示区) │ └── main.c # 主程序(窗口 + 事件循环) └── build/ ├── calc.exe └── raylib.dll ``` ## 验收标准 | 操作 | 预期 | |------|------| | `3 + 5 =` | `8.00` | | `10 - 4 =` | `6.00` | | `6 × 7 =` | `42.00` | | `8 ÷ 2 =` | `4.00` | | `5 ÷ 0 =` | `Error`(红色) | | `3.5 + 2.1 =` | `5.60` | | `10 ÷ 3 =` | `3.33` | | `3 + 5 = C` | `0` | | `3 + 5 = × 2 =` | `16.00` | | `3 + 5 = 9` | `9` | | `123 + 456` 按 DEL | `123 + 45` | | `3 + 5` 按 DEL 两次 | `3 +` 回退等待 | | `2 x^y 3 =` | `8.00` | | `2 x^y 3 = + 5 =` | `13.00` | ## 文档 - **[spec.md](spec.md)** — 需求规格(做什么) - **[plan.md](plan.md)** — 执行规划(怎么做,分几步) - **[tasks.md](tasks.md)** — 任务清单(勾选进度) - **[sdd-demo.md](sdd-demo.md)** — SDD 开发全过程记录