【教学课件】第6章程序结构与结构化设计.ppt

上传人:小飞机 文档编号:4879255 上传时间:2023-05-21 格式:PPT 页数:38 大小:357KB
返回 下载 相关 举报
【教学课件】第6章程序结构与结构化设计.ppt_第1页
第1页 / 共38页
【教学课件】第6章程序结构与结构化设计.ppt_第2页
第2页 / 共38页
【教学课件】第6章程序结构与结构化设计.ppt_第3页
第3页 / 共38页
【教学课件】第6章程序结构与结构化设计.ppt_第4页
第4页 / 共38页
【教学课件】第6章程序结构与结构化设计.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《【教学课件】第6章程序结构与结构化设计.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第6章程序结构与结构化设计.ppt(38页珍藏版)》请在三一办公上搜索。

1、第6章程序结构与结构化设计,本章重点分析Delphi程序结构,并通过学习结构化程序设计知识,进一步掌握结构化、模块化和自顶向下逐步求精的设计方法。最后,再通过一个具体的实例演示结构化程序设计的完整过程,并深入剖析Delphi应用程序的内部构造和代码实现。6.1Delphi程序结构分析6.2结构化程序设计基础6.3结构化设计应用举例6.4 本章小结,6.1Delphi程序结构分析,6.1.1Program主程序6.1.2Unit单元6.1.3单元的引用6.1.4标识符的作用范围,6.1 Delphi程序结构分析,一个Delphi程序由多个称为单元的源代码模块组成。使用单元可以把一个大型程序分成多

2、个逻辑相关的模块,并用来创建在不同程序中使用的程序库。每个程序都有一个首先执行的Program主程序,Program作为主程序块将激活其他执行各种任务的所需的二级程序块(Unit单元)。绝大多数Delphi应用程序都是按照这样部署的。虽然开发过程中的实际程序,都会更复杂一些,但其基本的程序结构与图 6-1所示的相似,图 6-1 Delphi程序的结构,6.1 Delphi程序结构分析,6.1.1 Program主程序,Program主程序就是Delphi中的工程文件。它是一个特殊的单元,类似于C语言中的Main程序,即为应用程序的主程序。一个程序可以由多个Program组成,也可以只由一个Pr

3、ogram组成,Program主程序的基本结构,6.1.1 Program主程序,6.1.2 Unit程序单元,Delphi应用程序中的单元(unit)实际上就是一个程序模块,因此单元是程序模块化的基础。Delphi在Windows程序设计中,每个窗体都对应一个单元。,6.1.2 Unit程序单元,1.单元文件的基本框架Delphi使用单元来建立可重用的程序模块,每个单元都在其各自相应的单元(.pas)文件中保存代码。单元一般由类型(type)、常量、变量以及例程(函数和过程)组成。程序员通过这些单元撰写功能单一的代码,因为他们比较容易维护和修改。最后再将不同的单元引用、汇集,构成大程序。,单

4、元文件的基本框架,6.1.2 Unit程序单元,6.1.2 Unit程序单元,2.接口部分单元接口以保留字interface开始,直到实现部分结束。接口部分用于声明常量、类型、变量、过程、函数等,这些声明对于其它使用了该单元的单元、项目、库、包等是可用的,因此可以称为公共(public)实体。接口部分的结构如图所示。,接口部分的结构,Const;,Type;,Uses;,Var;,函数及过程的声明,Interface,接口部分,6.1.2 Unit程序单元,6.1.2 Unit程序单元,(1)uses子句接口部分包含的uses子句必需紧随保留字interface之后出现。uses子句告诉编译程

5、序:该单元使用了那些其它单元。如果引用了不止一个单元,各单元之间用逗号间隔,形成一个单元引用表。(2)const子句const子句列出具有某个固定值的标识符名字。这些值可以是整形,浮点型、字符串和其他预定义的,或用户定义的数据类型。(3)type子句type子句允许你声明自己的数据类型。这些新数据类型可以是记录,或者是类,或其他。,6.1.2 Unit程序单元,(4)var子句Var子句声明单元输出的变量。也就是说,在单元接口部分所声明的变量都是全局变量,只要其他单元引用了该单元,就能操纵和使用该变量。由于该变量暴露在外,无法预料其他程序单元对该变量值所进行的改动,因此声明全局变量一定要慎重。

6、除非必要,一般应尽量少在接口部分声明变量,而改在实现部分声明。(5)过程或函数声明子句接口部分中声明的过程或函数仅包括例程头。,6.1.2 Unit程序单元,3.实现部分在单元中,实现部分以保留字implementation开始,直到初始化部分开始(如果初始化部分存在)或直到单元结束。在接口部分中声明的过程和函数(或类中的方法),都在实现部分中定义。在实现部分中,可以对这些过程和函数以任意的顺序定义和调用。此外,对这些在接口部分中声明的过程和函数,在实现部分中定义时可以省略参数列表。但如果在定义时要包括参数列表,则必需与接口部分中的声明严格匹配。,6.1.2 Unit程序单元,4.初始化和结束

7、部分初始化部分是可选的,它以保留字initialization开始一直到结束部分开始(如果单元中有结束部分)或单元结束(如果单元中没有结束部分)。初始化部分含有用于执行的语句,当程序开始执行时,将根据初始化部分出现的顺序依次执行其语句。例如,如果需要对某些数据结构进行初始化,那么可以将初始化语句置于初始化部分。,6.1.3 单元的引用,uses子句列出了程序、库或单元等所引用的单元。uses子句可以出现在:程序(program)或库(library)的项目文件中;单元的接口部分;单元的实现部分;本节讨论单元的引用,它们涉及如何处理程序单元之间的相关性。,6.1.3 单元的引用,1.单元的循环引

8、用单元的循环引用通常会发生有互相依赖关系的单元之间。相互依赖的单元是指在单元实现部分的uses子句中直接引用对方的单元。如果两个单元的接口部分都不互相依赖的话,编译器可以接收在实现部分中这两个单元的相互引用,否则编译器将产生循环单元引用的错误。,6.1.3 单元的引用,2.间接单元引用单元中的uses子句只需给出直接被本单元使用的单元名字。可是,常常一个单元是间接地依赖于另一个单元。为了编译一个单元,编译器必须能找到该单元直接或间接依赖的所有单元。当修改一个单元的接口部分时,必须重新编译所有使用该单元的其他单元,如果你执行CompileBuild All菜单命令,编译器将执行一些必要的更新操作

9、。另一方面,如果你仅在实现或初始化部分修改代码,则不需重新编译引用到该修改单元的其他单元。,6.1.4 标识符的作用范围,标识符的作用范围就是它的生命期,因此标识符的作用范围决定了它的可访问性。标识符范围从它被声明开始,随包围声明的代码段结束而结束。比如,在过程中声明的一个常量、变量、类型或其他符号标识符随着过程的end语句而结束。,6.2结构化程序设计基础,6.2.1结构化设计的特征6.2.2构造结构化程序的规则6.2.3结构化程序设计方法,6.2 结构化程序设计基础,“结构化程序设计”的思想和规则,能够使程序具有合理的结构,以保证和验证程序的正确性。该规则要求程序设计者不能随心所欲地编写程

10、序,而要按照一定的结构形式来设计和编写程序。其主要目的是使程序具有良好的结构,使程序易于设计,易于理解,易于调试修改,以提高设计和维护程序工作的效率。,6.2.1 结构化设计的特征,Delphi的单入单出控制结构,6.2.1 结构化设计的特征,从图中可以看出,三种基本结构具有以下特点:一个入口;一个出口;结构中每一部分都应当有被执行到的机会,也就是说,每一部分都应当有一条从入口到出口的路径通过它(至少通过一次);没有死循环。,6.2.2 构造结构化程序的规则,任意的连接控制结构将导致非结构化程序。下图就是一个非结构化的流程图:,6.2.2 构造结构化程序的规则,构造正确的结构化程序的三条规则:

11、规则1、任何矩形框可用两个顺序的矩形框代替;规则2、任何矩形框可用任何简单控制结构代替;规则3、规则1和规则2可根据需要按任何顺序使用任意次。,构造结构化程序规则的应用,6.2.2 构造结构化程序的规则,6.2.3 结构化程序设计方法,面对一个问题,应怎样进行思考、着手解决呢?通常有两种不同的方法:一种是自顶向下,逐步细化;一种是自下而上,逐步积累。结构化程序设计方法是:自顶向下,逐步求精,6.3结构化设计应用举例,6.3.1问题及分析6.3.2结构化设计6.3.3范例程序的实现,6.3.1 问题及分析,数据检索问题:现在需要对用户输入的、包含十个数据的一组的整数进行排序,要求能提供用户两种排

12、序的选择:冒泡排序和快速排序,然后再在已排序好的这组数中查找用户提供的数据,如果查得此数据在这组数中,则给出该数在排序好组数中的位置:“查得此数据位置为X”(X为实际的位置),如果没有发现,则提示:“无此数据”。查找数据之前,先要判断数组是否已经排序(降序),如果还没有进行排序,则采用默认的方式,使用冒泡排序法先进行排序,再检索。在用户没有确定关闭程序之前,用户可以重复选择排序和检索操作。,6.3.1 问题及分析,认真阅读问题说明,可以得出以下几点:用户关闭程序之前,可以重复操作,说明主体上是一个循环控制结构。主要的流程为:输入数据、选择排序、检索数据。用户可以选择的操作:排序或者检索。排序时

13、,提供用户两种选择:冒泡排序和快速排序。使用检索算法之前,需要判断是否已经排序好。,6.3.2 结构化设计,自顶向下的结构分析过程,6.3.2 结构化设计,细化流程图,范例程序的组成框图和对应Delphi项目,6.3.3 程序实现,6.3.3 程序实现,运行、测试程序,一个Delphi应用程序可由多个称为单元的源代码模块组成。使用单元可以把一个大型程序分成多个逻辑相关的模块,并用来创建在不同程序中使用的程序库。每个Delphi应用程序都有一个首先执行的Program主程序,Program作为主程序块将激活其他执行各种任务的所需的二级程序块Unit单元。Program主程序就是Delphi中的项

14、目文件,它是一个特殊的源代码文件。Delphi应用程序中的单元(unit)实际上就是一个程序模块,因此单元是程序模块化的基础。单元一般由类型、常量、变量以及例程组成。将不同的单元引用、汇集,最终构成一个大的应用程序。,本章小结,Delphi单元以单元头开始,接下来是interface(接口部分)、implementation(实现部分)、initialization(初始化部分)和finalization(结束部分)。其中,初始化部分和结束部分是可选的。uses子句用于声明引用的单元。uses子句可以出现在项目文件中、单元文件的接口或实现部分。引用单元时要注意避免循环引用不当导致的语法错误。标

15、识符的作用范围就是它的生命期,因此标识符的作用范围决定了它的可访问性。标识符范围从它被声明开始,随包围声明的代码段结束而结束。,本章小结,结构化程序设计要求程序具有合理的结构以保证和验证程序的正确性。结构化程序设计的三种基本结构是:顺序结构、选择结构和循环结构。其特征是:一个入口;一个出口;结构中每一部分都应当有被执行到的机会;没有死循环。正确构造结构化程序的三条规则是:规则1、任何矩形框可用两个顺序的矩形框代替;规则2、任何矩形框可用任何简单控制结构代替;规则3、规则1和规则2可根据需要按任何顺序使用任意次。结构化程序设计遵循模块化、自顶向下逐步求精的设计方法。,本章小结,程序的基本结构是一

16、个repeat循环结构,在循环中等待用户进行输入或操作。在Windows应用程序中,主程序创建主窗体后就进入了窗体的消息处理循环中,以便接受用户事件和系统事件所产生的消息,并调用对应的处理程序,直到应用程序结束为止。Delphi应用程序项目所包含的文件类型主要有:项目文件(.dpr)、项目配置文件(.cfg)、资源文件(.res)、选项文件(.dof)、单元文件(.pas)、窗体文件(.dfm)、类型库(.tlb)、包文件(.dpk)。应用程序编译后,Delphi自动创建的文件执行文件(.exe)、编译单元文件(.dcu)、动态链接库文件(.dll)、ActiveX文件(.ocx)。,本章小结,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号