使用抽象数据类型优点(ADT):

可以隐藏实现细节

把改动的影响限制在局部

更容易改进性能

减少修改时犯错误的可能性

使程序成为自说明的

避免了在程序中四处传递数据的麻烦



准则:


把典型的计算机专业数据结构构建为抽象数据类型

把常见的目标如文件等处理为抽象数据类型

即使是简单的问题也应该考虑使用抽象数据类型

可以提供一对互补的操作

应相对ADT所存储的介质独立地引用它


组织顺序式程序代码检查表:


把语句间的以阿里关系表示的很清楚吗

子程序名是否把依赖关系表示的很清楚

子程序的参数是否把依赖关系表示的很清楚

若代码的依赖关系不清楚,用注释注明了吗

代码能从上读到下吗

变量的出现靠的很近吗(从跨度和存活时间来考虑)

是否把相关语句组织在一起

是否把相对独立的各相关语句写成子程序了



C语言中与0的比较:


隐含地址和逻辑地址比较:while(!Done)

数与0比较:while(Balance != 0)

字符与结束符(‘\0’):while(*CharPtr != ‘0’)

把指针与NULL空指针比较:while(BufferPtr != NULL)



C语言中所包含源文件的标准顺序:


关于文件描述的注释


包含文件

常量定义

宏函数定义

类型定义

全局变量及输入函数

全局变量及输出函数

文件内部变量及函数


子程序:


每一个子程序名都明确地描述了要做什么事了吗

每一个子程序详细定义任务吗

程序会从它们的子程序中获益吗

每个子程序的接口处明确吗



数据组织:


附件变量在需要时要清零吗

变量的引用彼此间很接近吗

数据结构简化会导致降低其灵活性吗

复杂的数据存取是通过子程序来完成的吗


设计:


代码直观吗,它的编写巧妙吗

实现细节可能隐去了吗

程序编写是立足于问题域而不是计算机科学或语言结构域吗、



调试工具的作用:

编译程序警告信息

给出程序框架

文件比较程序(比较源代码文件的不同版本)

执行显示程序

交互调试程序,软件和硬件




测试工具的作用:

给出程序框架

结果比较(比较数据文件、监视输出及屏幕图像)

自动测试生成程序

记录测试条件及重复功能

区域监视器(逻辑分析及执行显示器)

符号调试程序

系统扰乱程序(内存填充、存储器扰乱、有选择地让存储器出错、存储器存取性检查)

缺陷数据库