模块化的优点 模块各司其职 >每个模块只负责一件事情,它可以更专心 ,便于进行单个模块的设计、开发、调试、测试和维护等工作 >一个模块一个模块地完成,最后再将它们集成 ·开发人员各司其职 ~按模块分配任务,职责明确 >并行开发,缩短开发时间 ·分而治之(Virth,1971) 信息隐藏(Parnas,1972) T小 人T木的台
目标要求 讲课提纲 讲课内容 课后作业 退出 模块化的优点 ◼ 模块各司其职 ➢ 每个模块只负责一件事情,它可以更专心 ➢ 便于进行单个模块的设计、开发、调试、测试和维护等工作 ➢ 一个模块一个模块地完成,最后再将它们集成 ◼ 开发人员各司其职 ➢ 按模块分配任务,职责明确 ➢ 并行开发,缩短开发时间 ◼ 分而治之(Wirth, 1971 ) 信息隐藏(Parnas, 1972)
函数(function)和模块(module) 函数是C语言中模块化编程的最小单位 >可以把每个函数看作一个模块 ·若干相关的函数可以合并作一个“模块” mainO mainO) printfO scanf() stdio: mymdl: putchar() getchar0 printf() power() scanfO putchar( power( getchar(
目标要求 讲课提纲 讲课内容 课后作业 退出 函数(function)和模块(module) ◼ 函数是C语言中模块化编程的最小单位 ➢ 可以把每个函数看作一个模块 ◼ 若干相关的函数可以合并作一个“模块” main() printf() scanf() power() putchar() getchar() main() stdio: printf() scanf() putchar() getchar() mymdl: power()
用函数解决问题 ■ 分而治之 >函数把较大的任务分解成若干个较小的任务, 并提炼出公用任务 ■ 复用 >程序员可以在其他函数的基础上构造程序,而 不需要从头做起 ·信息隐藏 >设计得当的函数可以把具体操作细节对程序中 不需要知道它们的那些部分隐藏掉,从而使整 个程序结构清楚 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 ◼ 分而治之 ➢ 函数把较大的任务分解成若干个较小的任务, 并提炼出公用任务 ◼ 复用 ➢ 程序员可以在其他函数的基础上构造程序,而 不需要从头做起 ◼ 信息隐藏 ➢ 设计得当的函数可以把具体操作细节对程序中 不需要知道它们的那些部分隐藏掉,从而使整 个程序结构清楚 用函数解决问题
模块设计 概述 C程序结构 C程序 源程序文件1 源程序文件1 源程序文件n 预编译命令 函数1 函数n 说明部分 执行部分 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 概述 源程序文件1 预编译命令 说明部分 执行部分 函数1 函数n 源程序文件i 源程序文件n C程序 C程序结构 模块设计
模块设计 > 函数是程序的基本组成单位 >必须有且只能有一个名为main的主函数 >C程序的执行总是从main函数开始,在main中结束 >函数与函数之间是平行的独立的,不能嵌套定义,可以嵌套调用 >函数分类 ■从用户角度 标准函数(库函数):由系统提供 用户自定义函数 ■从函数的参数形式看 无参函数; 有参函数 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 ➢函数是程序的基本组成单位 ➢必须有且只能有一个名为main的主函数 ➢C程序的执行总是从main函数开始,在main中结束 ➢函数与函数之间是平行的独立的,不能嵌套定义,可以嵌套调用 ➢函数分类 ◼从用户角度 ◼标准函数(库函数):由系统提供 ◼用户自定义函数 ◼从函数的参数形式看 ◼无参函数; ◼有参函数 模块设计