《C语言程序设计》第七章函数与模块化程序设计方法.ppt
文本预览下载声明
模块化程序设计方法 1、模块化程序设计方法的指导思想 将一个大而复杂的设计任务按其需要实现的主要功能分解为若干相对独立的模块,将各模块的功能逐步细化为一系列的处理步骤或某种程序设计语言的语句。 完成总任务的程序由一个主程序和若干个子程序组成,主程序起着任务调度的总控作用,而每个子程序各自完成一个单一的任务。然后分别编写,调试,最后再将它们的目标模块连接装配成一个完整的整体。 模块化程序设计的优点是:程序编制方便,易于修改和调试,可由多人分工合作完成,程序的可读性。可维护性及可扩充性强;子程序的代码公用,使程序简洁。 2、模块分解的原则 (1)如果一个程序段被很多模块所公用,则它应是一个独立的模块。 (2)如果若干个程序段处理的数据是公用的,则这些程序段应放在一个模块中。 (3)若两个程序段的利用率差别很大,则应分属于两个模块。 (4)一个模块既不能过大,也不能过小。过大则模块的通用性较差,过小则会造成时间和空间上的浪费。 (5)力求使模块具有通用性,通用性越强的模块利用性越高。 (6)各模块间应在功能上,逻辑上相互独立,尽量截然分开,特别应避免用转移语句在模块间转来转去。 (7)各模块间的接口应该简单,要尽量减少公共变量的个数,尽量不用共用数据存储单元,在结构或编排上有联系的数据应放在一个模块中,以免相互影响,造成查错困难。 (8)每个模块的结构应设计成单入口,单出口的形式。这样的程序便于调试,阅读和理解且可靠性高。 1、内部函数 如果一个函数只能被本文件中其他函数所调用,它称为 内部函数。在定义内部函数时,在函数名和函数类型的前面 加static。即 static 类型标识符 函数名(形参表) 内部函数又称静态函数。通常把只能由同一文件使用的 函数和外部变量放在一个文件中,在它们前面都冠以static使 之局部化,其他文件不能引用。 内部函数和外部函数 2、外部函数 (1)在定义函数时,如果在函数首部的最左端冠以关键字 extern,则表示此函数是外部函数,可供其他文件调用。 如函数首部可以写为 extern int fun(int a,int b) C语言规定,如果在定义函数时省略extern,则隐含为外部函数。 (2)在需要调用此函数的文件中,用extern声明所用的函数是 外部函数。 课堂练习 1、写一函数,统计字符串中字母的个数。要求用数组元素作为函数实参。 提示:数组元素就是下标变量,它与普通变量并无区别。数组元素只能用作函数实参,其用法与普通变量完全相同:在发生函数调用时,把数组元素的值传送给形参,实现单向值传送。 int isalp(char c) { if (c=ac=z||c=Ac=Z) return(1); else return(0); } main() { int i,num=0; char str[255]; printf(Input a string: ); gets(str); for(i=0;str[i]!=\0;i++) if (isalp(str[i])) num++; puts(str); printf(num=%d\n,num); } 2、用直接递归调用计算整数和:1+2+3+4+…+n。 答案: long sum(int n) { if(n==1) return(1); return(sum(n-1)+n); } ? 3、输入长方体的长(l)、宽(w)、高(h),求长方体体积及正、侧、顶三个面的面积。 提示:利用全局变量计算长方体的三个面的面积 答案: int s1,s2,s3; int vs(int a,int b,int c) { int v; v=a*b*c; s1=a*b; s2=b*c; s3=a*c; return v; } main() {int v,l,w,h; clrscr(); printf(\ninput length,width and height: ); scanf(%d%d%d,l,w,h); v=vs(l,w,h); printf(v=%d,s1=%d,s2=%d s3=%d\n,v,s1,s2,s3); } 分析:要注意局部变量和全局变量的区别: 局部变
显示全部