欢迎来到天天文库
浏览记录
ID:50043743
大小:1.19 MB
页数:59页
时间:2020-03-08
《C语言程序设计 教学课件 作者 蔡启先第7章 C程序的模块化设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章C程序的模块化设计第7章C程序的模块化设计用计算机解决较大的问题时,由于问题复杂涉及许多方面,每一方面有可能包含许多小问题,需要设计规模较大的程序,而且设计工作一般需要多个人甚至若干小组分头完成。因此如何组织程序设计,如何将程序分块,需要遵循什么样的原则,才能将各个程序块组合成一个功能完善的系统,这就不能简单地采用编小程序的方法来编大程序,而必须采用一种新的方法——模块化程序设计方法来设计程序。7.1程序的模块化与模块化程序设计7.2VC++和TurboC的程序模块化组织7.3编译预处理第7章C程序的模块化设计7.4综合示例7.1程序的模块化与
2、模块化程序设计7.1.1概述7.1.2C语言模块化程序设计7.1.3源文件之间的接口7.1.4分割编译1.程序的模块化和模块划分的原则所谓模块化程序设计,是将一个大程序分解为多个功能相对独立的模块,由主程序规定好各个模块应完成的功能以及各个模块之间的联系(接口)。使用时,由主程序调用有关模块,将它们装配成一个能解决某个复杂问题的大程序。当然,每个程序模块还可以分解为若干个子模块,各个子模块还可以按需要分解为更低层次的模块,……,并且安排好各级子模块和其上一级模块之间的联系接口。这样编制出的程序,就是模块化的程序。7.1.1程序的模块化与模块化程序设计
3、1.程序的模块化和模块划分的原则模块的划分方法主要有两种:功能分解法和面向对象法。面向对象法是目前基于可视化程序设计的主流方法在结构化程序设计中,主要还是采用功能分解法。功能分解法是面向对象法的基础。。7.1.1程序的模块化与模块化程序设计1.程序的模块化和模块划分的原则模块的划分应遵循如下原则:(1)独立性原则每个模块应该只能完成一项功能,可独立运行、调试、修改和维护。模块之间的联系应尽可能少,一般只限于上层模块和其所属的下层模块之间有联系,且程序模块之间的接口应尽可能简单。(2)信息屏蔽原则不需要了解模块内部细节,即可装配到程序中使用,当需要对程
4、序进行修改时,只需对有关的少数模块进行修改,而不影响到其它模块。同时,模块调用后不产生副作用,即不会把上一级程序中不应改变的数据给以改变。7.1.1程序的模块化与模块化程序设计1.程序的模块化和模块划分的原则(3)可验证性原则每个模块可单独验证其正确性。7.1.1程序的模块化与模块化程序设计实际上,很多分解后的子模块可以套用现成的经过实践检验的程序,以提高编程的效率和模块自身的可靠性。2.模块的层次结构和“自顶向下,逐步求精”的设计方法层次结构是一个系统的各个组成部分之间所具有某种特定关系的反映。其处理层次的原则是:上层模块可调用下层模块,而下层模块
5、不能调用上层模块。整个程序按调用方式分为若干层次,每一层次由若干模块组成。7.1.1程序的模块化与模块化程序设计例如一个企业管理系统块A:企业管理系统主控制块办公室管理B1人事管理B2物质管理B3计划管理B4生产管理B5财务管理B6技术管理B7销售管理B8质量管理B9记账管理C31查询管理C32采购管理C33报表管理C34图7-1某企业管理系统总体结构图(部分)2.模块的层次结构和“自顶向下,逐步求精”的设计方法“自顶向下,逐步求精”的设计方法的基本思想是,从功能上确定最上层模块(称为主模块或主控模块),然后再按功能划分下一层模块,再继续向下划分再下
6、一层模块,这样逐层细化,直至底层模块功能较为基本,很容易用程序设计语言完全描述。7.1.1程序的模块化与模块化程序设计在逐步求精的过程中,应注意直接相关的上下层模块的接口问题2.模块的层次结构和“自顶向下,逐步求精”的设计方法程序模块也有专用型模块和通用型模块之分。专用型模块在程序的层次结构中有固定的位置和固定的上层调用模块。通用型模块具有可能被多个模块调用的功能。有些可能是同一层次中的多个模块都要调用它。7.1.1程序的模块化与模块化程序设计在模块化程序设计中,不仅从功能上要做好模块的层次结构设计,还要考虑模块之间的数据接口,注意数据的全局性和局部
7、性,还应该注意通用模块的安排。C语言提供了众多的支持模块化软件开发的功能,主要是:①函数式的程序结构。程序整体由一个或多个函数组成,每个函数具有各自独立的功能和明显的界面。主调函数对被调函数的调用很好地体现了模块化层次结构之间的上下层调用关系。②允许使用不同存储类别的变量,控制模块内部及外部的信息交换。③具有编译预处理功能,既支持了模块化程序设计,又为程序的调试、移植提供了方便。7.1.2C语言模块化程序设计1.从功能的观点看C函数一个C函数可看成一个“黑盒”,我们在调用该函数时不必知道该函数是如何完成其功能的,但必须知道:①被调函数的功能;②被调函
8、数的入口参数;③被调函数的出口参数。7.1.2C语言模块化程序设计2.从模块的组织看C函数和C源文件在模块化
此文档下载收益归作者所有