C++第四章:结构化程序设计(一) |
您所在的位置:网站首页 › 结构化程序设计最典型的方法 › C++第四章:结构化程序设计(一) |
设计编写大型程序有2种方法 结构化程序设计方法 面向对象程序设计方法 结构化程序设计的基本概念程序描述了某种数组处理的过程和步骤,数据时程序处理的对象,一个复杂的程序任务,可能要处理大量数据,为此c++提供了数组的语法形式,数组可以存储大量同类型的数据。 将数据处理的过程,细分成一组严格的操作步骤,这组操作步骤就叫做算法。如果数据处理的算法很长很复杂。 结构性程序设计方法,就是将一个很长很复杂的程序设计任务分解成多个简单的模块,分而治之,然后将这些模块组装起来,最终完成数据处理算法。 c++支持结构化程序设计的方法,以函数的语法形式来描述和组装模块,这就是函数的定义和调用。**** 将一个数据处理过程,分解成多个模块,各模块之间需要共享数据,c++语言提供了分散管理和集中管理这两种数据管理策略 一、结构性程序设计方法机构性程序设计又叫面向过程的程序设计方法,基本方法如下: 将一个求解复杂问题的过程划分为若干个子过程,每个子过程完成一个独立的、相对简单的功能;用算法描述各个过程的操作步骤,每个算法称为一个模块;采用“自顶向下,逐步细化”的方法逐步分解和设计算法模块,再通过调用关系将各个模块组织起来,最终形成一个完整的数据处理算法。 采用结构性程序设计方法,程序员重点考虑的是如何分解和设计算法。 基于模块的协助开发: 自顶向下,逐步细化 将复杂的算法逐步分解成功能单一的,可重复调用的算法 模块重用 结构化程序设计,应当合并重复模块,合并后的模块,可以被不同的上层模块调用,同一模块可以被多个模块调用,或被一个上层模块调用多次,这称为模块的重用或共用。 主模块和被调模块 算法被划分成多个模块之后,调用其他模块的模块,称为主调模块,而被其他模块调用的模块称为被调模块,可以将不同的模块设计任务,交给不同程序员去完成。模块之间应当事先协调好被调函数的调用接口。 被调模块的名称 被调模块需要输入参数 被调模块应该返回什么样的结果,又称返回值。结构化程序设计方法: 模块化是团队开发的基础 模块接口时团队协助的基础 模块重用影响到大型软件开发的组织与管理方式代码重用: 现在的软件开发现目可以重用以前项目所开发的代码 一个软件项目可以重用另一个现目中的代码,即跨项目重用 可以重用本单位已有的代码,亦可以购买外单位已有的代码,或委托外单位开发所需的子模块,即跨组织机构重用模块的4大要素 模块名称 输入参数 返回值 算法模块的设计者和调用者具有不同的角色,不同角色对模块及其4大要素的理解是不一样的。 模块设计者 站在模块设计者的角度,他要思考的是接收输入参数,将输入参数作为原始数据进行处理,得到计算结果,并返回该结果,模块设计者,重点考虑处理算法,该算法因当能够按照模块的功能要求返回正确的计算结果,就是返回正确的返回值,模块算法是属于模块设计者的知识产权。而模块名称、输入参数、返回值是模块设计者为他人使用算法提供的开发接口,通称为模块的调用接口。调用接口必须是公开的,否则他人无法使用,算法是模块内部的实现细节可以不对外公开,在模块设计中,只有拿到模块设计的源程序,才能了解模块算法的实现细节,通常模块经常是以编译后的机器语言提供给他人使用的。 模块调用者 模块其实可以看做一个函数 主模块与子模块 将一个复杂算法分解成多个模块,其中一个为主模块,由它负责调用其他模块,主模块不能被其他模块调用,除了子模块之外的其他模块统称为子模块,子模块可以被调用,也可以调用其他子模块。 c++语言支持结构化程序设计方法,以函数的语法形式来描述和组装模块,即函数的定义和调用 二、函数的定义和调用任务说明: 设计任务:公园修建1个长方形观赏鱼池,另外配套修建一大一小2个圆形蓄水池,分别存放清水和污水,养鱼池和蓄水池造假均为10元/ c++语法: 函数名(实际参数列表) 函数名:指定被调用函数的名称; 实际参数列表:指定函数所需要输入的参数,调用函数时应按被调用函数的要去给定具体的输入参数值,这些参数称为实际参数,简称实参,实际参数可以是常量、变量或表达式,参数之间用逗号","隔开,调用时,首先将实参值按位置顺序一一赋值给对应的形式参数变量,这称为函数调用时的参数传递,实参于形参应当个数一致,类型一致。 “函数名(实际参数列表)” 是调用某个函数,有返回值的函数调用可作为操作数参与表达式运算,该操作数等于函数返回值,某些函数可能只是完成某些功能,但是没有返回值。无返回值得函数调用加分号";"即构成一条函数调用语句; 一个函数调用另一个函数,调用别人得函数称为主调函数,被调用得函数称为被调函数实例: #include using namespace std; /*用于求长方形鱼池的造价*/ double RectCost(double x, double y) { double s; s = x*y*10; return s; } /*用于求圆形鱼池的造价*/ double CircleCost(double r) { double s; s = r*3.14*r*10; return s; } /*主函数,通过向被调函数形参赋值,调用子函数完成整个计算功能*/ int main() { double a,b,r1,r2,totalcost=0; cout >b; //在函数调用里面,一次性输入多个参数,不能使用cin>>a>>b,这种写法导致最后的参数b是不能传递的。 cout >r2; totalcost += RectCost(a,b); totalcost += CircleCost(r1); totalcost += CircleCost(r2); cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |