第七周作业

一、为内聚耦合举例。

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 ", 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 ", 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 ", 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 ", "您已到达法定饮酒年龄!");
  else
    printf("%s ","您未到达法定饮酒年龄!");
}
/*主函数 main 和子函数 YesOrNot 之间为控制耦合关系*/

二、代码行、博客字数。

image

1. 代码行统计图

image

2. 博客字数统计图

image

3.累计统计图

三、PSP

image

image

原文地址:https://www.cnblogs.com/charliePU/p/5414976.html