AI开发C语言应用按步走,表达式计算器calc的第十八步,帮助信息更新、测试覆盖增强
2026/7/26 11:24:15
网站建设
项目流程
calc18 — 帮助信息更新、测试覆盖增强
1. 概述
本次迭代完成了两项工作:
- 更新
--help输出— 使print_help()与 v2.0 全部功能同步 - 测试覆盖增强— 补齐 9 个覆盖缺口,测试用例总数从 112 增至 121
2. 变更清单
| 文件 | 操作 | 说明 |
|---|
main.c | 编辑 | print_help()全面更新:增加版本号、数字格式、逻辑值、11 级优先级表、完整函数列表、变量赋值示例 |
test.expr | 编辑 | 新增 9 个测试用例(前缀/后缀 ++/–、嵌套条件、?/:单独错误) |
3. 帮助信息更新
3.1 新增内容
| 项目 | 更新前 | 更新后 |
|---|
| 版本号 | 无版本号 | calc — 中缀表达式求值器 v2.0 |
| 数字格式 | 无说明 | 42 3.14 .5 1e2 0xFF 0777 0b1010 |
| 逻辑值 | 无说明 | true false |
| 变量赋值 | 无说明 | = 变量赋值 |
| 优先级表 | 仅 3 级(v1.0) | 完整 11 级(从?:到后缀++/--) |
| 函数列表 | 简略sin cos ... | 完整 16 个函数名 |
| 示例 | 5 个 | 6 个(增加x = 5 + 3) |
3.2 优先级表
1. ?: 条件表达式 2. || 逻辑或 3. && 逻辑与 4. | ^ & 位运算 5. == != 比较 6. < <= > >= 关系 7. << >> 移位 8. + - 加减 9. * / % 乘除取模 10. ++ -- - ! ~ 一元/前缀 11. ++ -- () 后缀/括号
4. 新增测试用例
| # | 表达式 | 结果 | 覆盖路径 |
|---|
| 113 | ++x | 1 | 前缀++,未定义变量视为 0 |
| 114 | --x | -1 | 前缀--,未定义变量视为 0 |
| 115 | ++5 | error | 前缀++后跟非变量 |
| 116 | x++ | error | 后缀++未定义变量 |
| 117 | 5++ | error | 后缀++后跟字面量 |
| 118 | 1?2:3?4:5 | 2 | 嵌套条件表达式 |
| 119 | 0?1:2?3:4 | 3 | 条件为假时走嵌套分支 |
| 120 | ? | error | 单独?无表达式 |
| 121 | : | error | 单独:无表达式 |
5. 测试验证
$maketest============================================calc — 测试套件============================================PASS[1](90-18)/3+15 →39... PASS[113]++x →1PASS[114]--x→-1PASS[115]++5 → error PASS[116]x++ → error PASS[117]5++ → error PASS[118]1?2:3?4:5 →2PASS[119]0?1:2?3:4 →3PASS[120]? → error PASS[121]:→ error============================================121passed,0failed,121total============================================
6. 帮助信息输出验证
$ ./build/calc--helpcalc — 中缀表达式求值器 v2.0 用法: calc"表达式"批处理模式,求值并输出结果 calc 交互模式(REPL),显示运算步骤 calc--help显示帮助信息 calc--version输出版本号 支持的运算符: + - * / % 四则运算与取模... 优先级(从低到高):1. ?: 条件表达式...11. ++ --()后缀/括号 内置函数: sin cos tan asin acos atan sqrt pow exp log log10 floor ceil abs fabs atan2...