一、為內聚耦合舉例。
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 和子函數 YesOrNot 之間為控制耦合關系*/
二、代碼行、博客字數。
1. 代碼行統計圖
2. 博客字數統計圖
3.累計統計圖
三、PSP
文章列表