第一章

本章聚焦于程序设计的核心原理与算法的有效性。它阐述了C++在数据抽象、面向对象设计、代码重用及标准库方面的优势。同时强调了在选择类名、函数名、常量名及全局变量名时的指导原则,以及参数、变量选择的重要性。通过黑盒、玻璃盒和tick-box方法选择测试数据,确保程序的全面性和可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章首先概述良好程序设计的重要原理,特别是它们在大型项目中的应用;然后介绍用于发现有效算法的方法。

一)学习数据结构:

• c++允许数据抽象:这意味着程序设计员能创造新的类型来表达方便其应用程序的
任何数据集合。
• c++支持面向对象的设计,在面向对象的设计中,程序设计员定义的类型在算法实
现中起到中心作用.
. 重要的是,正如允许面向对象的方法, c++ 允许使用自顶向下的方法,这也是C 程序
设计员所熟悉的.
• C++便于代码重用及通用目的库的构造。这门语言包含了一个扩展的、有效的和方
便的标准库.
• C++改进了C 语言儿个麻烦和危险的方面.
• c++保持了作为C 语言特点的效率.

二)名称的审慎选择在阐明程序和避免打印与常见错误方面大有帮助,指导原则如下:
指导原则
(1)特别审慎地选择在程序的不同部分中使用的类、函数、常量和所有全局变量的名
称。这些名称应该是有意义的,并且应该能够明确地指示这个类、函数、变量等的
目的。
(2) 对仅是暂时、局部使用的变量,保持其名称简单。数学家通常使用单个字母代表一
个变盘,因此有时候当我们编写数学程序时,有可能对数学变量使用单个字母的名
称. 然而,即使是对控制for 循环的变量,也经常有可能找到一个比较短但却较有
意义的单词,它能更好地描述此变量的用途。
(3) 使用通用的前缀或后缀来关联同一常规类别的名称。例如,在一个程序中使用的
文件可以被称为:
input_file t ransac tion_file total_fíle out_f ile reject_f ile
(4) 避免采用故意的误拼和无意义的后级来获得不同的名称,在下列所有名称中
index indx ndex index index2 index3
只有一个(第一个〉应被正常使用.当你试图引人这种类型的多个名称时.用它作
为一个警示,告诉你自己应该再仔细想想并设计出更能描述其使用意图的名称。
(5) 避免埠择那些本身意义与问题毫无关系或只有很少关系的漂亮的名称。下面的语
句可能非常有趣, 但它们是低劣的程序设计!

(6) 避免选择拼写互相接近或者其他方面易于混淆的名称。
(7) 而小心使用字母"1"(小写的ell) 、"0"(大写的oh) 和"0"(零λ 在词或数中,通常可
以根据上下文区分出它们而不会带来问题, 但" 1 " 和咐'决不应被单独用作名称。

三)参数:

数据有3 种基本类型:

· 输入参数由函数使用但并不被函数修改。在c+ + 中,输入参数通常是通过值传递。

(例外:大对象应通过引用传递① , 这样避免了建立本地副本所需要的主间和时间。
然而,当我们通过引用传递一个输入参数时, 应该在它的前面用关键字const 加以声
明。类型修改符const 的使用是很重要的,因为它让阅读者知道我们是在使用一个
输入参数, 并允许编译器检测对这个参数的意外修改,有时候也允许编译器优化我
们的代码. )
· 输出参数包含函数的计算结果。在本书中,输出参数使用引用变量。相反.C 程序设
计员需要通过传递变量地址来模拟引用变量以利用输出参数。当然, C 的方法在
c++ 中仍然可用,但我们应避免使用。
· 输入输出参数既用作输入,也用作输出, 函数使用参数的初始值并随后修改它。我
们应通过引用来传递输入输出参数.

四)变量:
除了参数外, 函数使用的其他数据对象通常属于下列类别之一:
· 局部变量在函数内部定义,仅当函数运行时存在。它们在函数开始前不会被初始
化,并且当函数结束时就废弃.

五)至少有3 种通用的思想可以用于选择测试数据:

1 . 黑盒方法

测试数据至少要用下列方式选择:
数据选择“:
(1)简易值。应当用易于检查的数据来调试程序。许多学生只用复杂的数据测试程序,
而当敏师尝试简单的样例时,虽然程序能完善地运行,但仍然会使这些学生感到局
促不安.
(2)典型的、逼真的值.总是选择那些能展示如何使用此程序的数据来测试程序. 这些
数据应该足够简单, 因而能够对结果进行手工检查。
(3)极值。许多程序在其应用范围的界限处出错。计数器或数组边界就很容易会被
突破.
〈的非法值. "废料人,废料出"是计算机行业中一句不应被注意的古老谚语。当一个良
好的程序用废料输入时,其输出至少应当是一句敏感的错误信息。实际上, 程序应
该对输入中可能的错误提供一些指示,并且在忽略错误的输入后仍可能执行一些
计算.

2. 玻璃盒方法

多径测试:
选择测试数据的第二种方法是以下面的观察为出发点, 即如果一个程序实际上有某些

部分的代码未被执行到,则不能认为此程序经过了全面的测试。在玻璃盒测试方法( The

Glass-Box Method) 中, 要检查程序的逻辑结构,对其中出现的每个分支. 部要设计测试数

通往那个分支。因此要仔细选择数据来检查每个switch 悟句中的每种可能、每个if 语句中

的每个分句以及每个循环的终止条件。如果程序中有数个选择或迭代语句,则要求使用不

同组合的测试数据来检查所有可能的路径。

3. Ticking-Box 方法

以上是个人认为本章的中重点,只是个人见解。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值