第三章模块化程序设计 >3.1模块化程序设计的方法与特点 >32函数的定义 >3.3无返回值函数的定义与调用 >34有返回值函数的定义与调用 >35函数嵌套调用和函数声明 >36函数的递归调用 >38全局变量和局部变量 >39指针和指针作为函数参数 >3.10返回指针值的函数 >3.12典型例题
第三章 模块化程序设计 ➢ 3.1 模块化程序设计的方法与特点 ➢ 3.2 函数的定义 ➢ 3.3 无返回值函数的定义与调用 ➢ 3.4 有返回值函数的定义与调用 ➢ 3.5 函数嵌套调用和函数声明 ➢ 3.6 函数的递归调用 ➢ 3.8 全局变量和局部变量 ➢ 3.9 指针和指针作为函数参数 ➢ 3.10 返回指针值的函数 ➢ 3.12 典型例题
3.1模块化程序设计的方法与特点 什么是模块化程序设计? 模块化程序设计就是将一个复杂的大问题,分解为一 个个独立的简单的小问题(即模块),分别解决简单的 小问题,进而解决复杂的大问题。 在C语言中,这些独立的简单的模块就是函数。 ∫功能分解法-基础 >模块分解飞 面向对象法-主流 功能分解是一个自顶向下、逐步求精的过程 模块划分的原则是:高聚合、低耦合
3.1 模块化程序设计的方法与特点 ➢什么是模块化程序设计? 模块化程序设计就是将一个复杂的大问题,分解为一 个个独立的简单的小问题(即模块),分别解决简单的 小问题,进而解决复杂的大问题。 在C语言中,这些独立的简单的模块就是函数。 ➢模块分解 ▪ 功能分解是一个自顶向下、逐步求精的过程。 ▪ 模块划分的原则是:高聚合、低耦合。 功能分解法 -- 基础 面向对象法 -- 主流
3.1模块化程序设计的方法与特点 例3-1:从键盘输入10个正整数,编程求它们的阶乘 方法1:用循环嵌套实现, 求n!的程序代码: 外层循环控制求10次阶乘, #include <stdio.h> 内层循环控制求阶乘 void main o #include <stdio.h> i int i, n; float fact; void main o fact=1; i int i, j, n; float fact scanf(“%d”,&n); for(j=1;j<=10;j++) for(i=; i<=n; i++) i fact=l fact=fact*i: scanf(%od”,&n); printf(“fact=%.0fn”,fact); for(i=l; i<=n; i++) fact=fact*i: printi(“fact=%.0fn”,fact);
例3-1:从键盘输入10个正整数,编程求它们的阶乘 3.1 模块化程序设计的方法与特点 求n! 的程序代码: #include <stdio.h> void main ( ) { int i , n ; float fact; fact=1; scanf(“%d”, &n); for ( i=1; i<=n; i++) fact=fact*i; printf(“fact=%.0f\n”, fact); } 方法1: 用循环嵌套实现, 外层循环控制求10次阶乘, 内层循环控制求阶乘 #include <stdio.h> void main ( ) { int i , j, n ; float fact; for(j=1; j<=10; j++) { fact=1; scanf(“%d”, &n); for ( i=1; i<=n; i++) fact=fact*i; printf(“fact=%.0f\n”, fact); } }
3.1模块化程序设计的方法与特点 #include <stdio.h> 方法2:用函数实现 void func( int m) 编写一个求阶乘的函数, i int i; float fact-l; 假设函数名为func for(i=l; i<=m; i++ main函数中用一层循环, fact=fact*i: 在循环体内通过调用函数 printf(%!=%.0fn”,m,fac;func来计算阶乘 void main ( i int i,n for(i=1;i<=10;i++) i scanf(%", &n); func(n);
void main ( ) { int i , n; for(i=1; i<=10; i++) { scanf(“%d”, &n); func(n); } } void func( int m ) { int i ; float fact=1 ; for( i=1; i<=m; i++ ) fact=fact*i; printf(“%d!=%.0f\n”, m, fact); } #include <stdio.h> 方法2: 用函数实现 ◼编写一个求阶乘的函数, 假设函数名为func ◼main函数中用一层循环, 在循环体内通过调用函数 func来计算阶乘 3.1 模块化程序设计的方法与特点
3.1模块化程序设计的方法与特点 例:编程实现一个图书管理系统 图书管理系统 功能菜单图书信息管理图书查询借书管理还书管理 新书图书信息 入库修改 按时过期 归还罚款 按书名按作者按类别 查询查询查询 模块1模块2模块3模块↓模块5模块6‖模块7模块8模块9
图书管理系统 功能菜单 图书查询 图书信息 修改 新书 入库 按作者 查询 按书名 查询 按类别 查询 模块1 模块2 模块3 模块4 模块5 模块6 图书信息管理 借书管理 还书管理 按时 归还 过期 罚款 模块7 模块8 模块9 3.1 模块化程序设计的方法与特点 例: 编程实现一个图书管理系统