C++编程基础总结与小测验指南

范围蔓延(Scope creep):指项目在实施过程中,其功能需求逐渐超出最初规划或阶段目标的现象。 软件验证(Software verification):通过测试确认软件在所有情况下均按预期工作的过程。单元测试(unit test) 针对代码的最小可测单元(通常为单个函数或调用)进行独立测试,以验证特定行为符合预期。单元测试框架可帮助组织测试用例。集成测试(integration testing) 则将多个单元组合后进行测试,确保其协同工作无误。 代码覆盖率(Code coverage):衡量测试过程中被执行的源代码比例。语句覆盖率(statement coverage) 表示测试例所执行的语句占总语句的百分比。分支覆盖率(branch coverage) 表示测试例所覆盖的分支(如 if-else 结构)占总分支的百分比。循环覆盖率(loop coverage,亦作 0-1-2 测试) 要求针对循环,分别验证其迭代 0 次、1 次及 2 次时的正确性。 快乐路径(happy path):指程序在无错误状态下的执行流程。悲伤路径(sad path) 指程序遭遇错误或失败状态的执行流程。不可恢复错误(non-recoverable error,又称致命错误) 指严重到导致程序无法继续运行的错误。若程序能妥善处理各类错误情形,则称其具有鲁棒性(robust)。 缓冲区(buffer):为临时存储数据而预留的一段内存区域,用于数据在不同位置之间的传输。 输入验证(input validation):检查用户输入是否符合程序预期要求的过程。 std::cerr:与 std::cout 类似的输出流,专门用于输出错误信息。 前置条件(precondition):某段代码(通常为函数)执行前必须始终成立的条件。 不变量(invariant):某组件执行期间必须始终成立的条件。 后置条件(postcondition):某段代码执行后必须始终成立的条件。 断言(assertion):除非程序存在缺陷,否则其值必定为真的表达式。在 C++ 中,运行时断言通常通过 assert 预处理宏实现,一般在非调试版本中禁用。static_assert 为编译期断言,在编译阶段求值。 断言应用于记录逻辑上不应出现的情况;错误处理则用于应对实际可能发生的情形。

小测验

问题 1 在 8.x 课 —— 第八章总结与小测验 中,我们实现了一个 Hi-Lo 猜数字游戏。 请更新你此前的解答,使其能够处理: 非法猜测(例如输入字符 ‘x’); 越界猜测(例如输入 0 或 101); 合法猜测但带有额外字符(例如 “43x”); 当游戏询问是否再玩一次时,用户输入多余字符的情况。 提示:编写一个独立函数专门负责读取并验证用户猜测(含相关错误处理)。 (此处应展示参考答案,略)

关注公众号,回复"cpp-tutorial"

可领取价值199元的C++学习资料

公众号二维码

扫描上方二维码或搜索"cpp-tutorial"