标签:
1、为每种类型的模块耦合举一个具体的例子
1) 非直接耦合:
#include <stdio.h>
void main( )
{
int a, b;
printf ("print an integer number: ");
scanf("%d", &a);
if (a<0) printf("data error! ");
else
{
b=fac(a);
prt(b);
}
}
int fac(int n)
{
int f;
if (n==0, n==1) f=1;
else f=fac(n-1)*n;
return(f);
}
void prt(int x)
{
printf("%d\n", x);
}
/*函数 fac 和 prt 之间为非直接耦合关系*/
2) 数据耦合:
/*上例中,主函数 main 和子函数 fac 之间为数据耦合关系*/
3) 标记耦合:
#include <stdio.h>
void main( )
{int s, j, b[10];
for (j=0; j<10; j++) b[j]=j;
s=sum(b[10]);
printf("%d\n", s);
}
int sum(int a[10])
{int ss=0, i;
for (i=0; i<10; i++) ss=ss+a[i];
return(ss)
}
/*主函数 main 和子函数 sum 之间为标记耦合关系*/
4) 特征耦合:
#include <stdio.h>
void main( )
{int j, b[10];
for (j=0; j<10; j++) b[j]=j;
add3(b[10]);
}
void add3(int a[10])
{
int s=0;
s=a[3]+1;
printf("%d\n", s);
}
/*主函数 main 和子函数 sum 之间为特征耦合关系*/
5) 控制耦合:
/* 根据输入的年龄是否满十八岁判断是否到达法定饮酒年龄 */
#include <stdio.h>
void main()
{
int Age = 0; T=0;
printf("%s","请输入您的年龄:");
scanf("%d", &Age);
if (age > 18)
T = 1;
else
T = 0;
YesOrNot(T);
}
void YesOrNot(int s)
{
if (s == 1)
printf("%s\n", "您已到达法定饮酒年龄!");
else
printf("%s\n","您未到达法定饮酒年龄!");
}
/*主函数 main 和子函数 WineOrNot 之间为控制耦合关系*/
1. 代码行统计图
2. 博客字数统计图
标签:
原文地址:http://www.cnblogs.com/charliePU/p/5414976.html