资源描述:
《结构化程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章结构化程序设计第一部分C++结构化程序设计本章课件制作:汪大菊本章内容程序设计的概念计算机程序设计的一般过程结构化程序设计方法结构化程序设计的规则结构化编程程序测试1、计算机程序设计的特点计算机程序设计主要具有:构造性:根据求解的问题,构造出一个程序实体,然后上机运行。严谨性:只能接受准确无误的信息,稍有疏漏就可能付出高昂的代价。程序设计不能使用具有二义性的自然语言.抽象性:任何时刻,只关注相关的重要特征,而暂不考虑其细节.叠加性:可正确利用白己或他人的己有程序,以避免编程时的差错。2、计算机程序设计的准则正确性:判
2、定程序质量的永恒准则。可靠性:指程序的可重复性要好。无论执行环境如何变化,对相同的输入数据,一个程序的执行结果总是不变的。易读性:指程序结构要简单、语句要直观、程序内部有足够的注解等。有效性:指程序应当少占存储空间、快速运行。可维护性:指程序应当容易查找错误、容易改正错误。适应性:指程序不应因计算机硬件或外部环境的变更而更改或废弃。可重用性:指经过实践证明正确的己有源程序代码,可以方便地被自己或他人利用。3、计算机程序设计的一般过程修改问题定义修改数据结构、算法修改程序定义问题设计编写程序测试程序使用维护4、结构化程序设计的概念结构化
3、程序设计:是以良好的程序结构为目标遵照“自顶向下、逐步求精”和模块化的方法每个模块仅有一个入口和一个出口程序中仅使用三种基本控制结构尽量少用goto语句的程序设计方法程序结构程序结构:包括数据结构和控制结构两个方面数据结构:不同的问题使用不同的数据结构基本数据类型:字符型、整型、长整型、单精度实型、双精度实型、布尔型和枚举型的变量、指针和数组。自定义的构造复杂的数据结构:结构、联合和类等。使用以上可以构造更加复杂的链表、队列、栈表、树、图等数据结构,满足不同应用的需要。程序控制结构:任何程序均可用顺序、选择和循环三种基本控制结构三种基
4、本控制结构都仅有一个入口点和一个出口点。顺序结构处理2处理1处理N选择结构FT处理1条件处理2循环结构F处理T次数=0计算次数5、程序结构的描述描述程序结构有多种方法,例如:图形(N-S图、PAD图、流程图)方法伪码方法语言方法等。自顶向下逐步求精:它是把问题求解的过程看作是由抽象逐步到具体化的过程。即在编写一个程序时,首先考虑程序的整体结构而忽略细节问题,然后逐步地一层一层地细化程序,直到每个细节都能用简单的程序语句描述为止。6、结构化程序设计方法:模块化对一个规模较大的问题,可将其划分为若干个模块。即通过自顶向下的分析设计,首先把
5、一个大的程序系统划分为若干个功能相对独立的子系统,每个子系统再划分为更小的子系统,如此继续下去,直到每个小的子系统足够简单为止。这里的“子系统”,一般称为模块。7、结构化程序设计的规则以流程图为例说明规则:1)从最简单的流程图开始;2)用两个矩形符号替换一个矩形符号(堆栈规则);3)可以用任何选择或循环结构替换矩形符号(嵌套规则);4)可以按照任何顺序使用规则2和规则3。规则2规则2规则28、结构化编程结构化编程的任务选择程序语言编写具有良好风格的程序。编写程序的任务是根据程序结构简单地把表示程序结构的符号转换为选定的程序语言的语句的
6、过程。程序的书写风格1)程序内部文档:恰当的标识符、适当的注解、清晰的程序格式,选取含义鲜明的名字,程序中的注解正确,层次清晰,布局合理。2)数据说明:数据结构的组织和复杂程度以容易理解和易维护为原则,数据说明和次序应该标准化,个别复杂的数据结构应加注解。3)语句构造:每个语句应该简单而直接。4)输入或输出:输入数据应进行合法性检查,保持输入格式简单一致;输出数据要加输出数据的标志或给出良好的输出报表。5)效率:主要指处理机时间的使用率和存储容量的利用率。应从以下几个方面提高效率:①为减少程序运行时间,可考虑简化算术表达式和逻辑表达式
7、,对公共子表达式只算一次,某些递归用递推来实现,避免使用多维数组,尽量避免使用指针和复杂的表;②提高存储效率;③提高输入或输出效率。9、程序测试程序调试:是为改正程序中的错误而进行的一系列工作。测试用例:在程序测试过程中,需要事先准备测试用的数据,我们把这些数据称为测试用例。测试步骤:大型程序进行测试常常经过以下三个步骤:单元测试集成测试验收测试两种常用的程序测试方法:①如果程序具备的功能已知,可以测试它的每一个功能是否都达到了预期的要求,这称为黑盒测试法;②如果程序的内部活动方式已知,可以测试它的内部活动是否符合设计要求,这称为白盒
8、测试法。程序测试常用的方法:1.什么是程序?程序的特点是什么?2.什么是结构化程序设计?程序有哪三种基本控制结构?3.程序的编码风格是什么?4.程序测试的目的是什么?常用的测试方法有哪些?习题: