Source Code : Producer &Consumer.c

Producer & Cosumer.c

#include

#include

# define MAX 5

int queue[MAX];

int in = -1;

int out = -1;

int n;

void produce();

void consumer();

void display();

int main()

{

  int x;

  while(1)

  {

  printf("1.produse\n");

  printf("2.consumer\n");

  printf("3.Display\n");

    printf("4.Quit\n");

  printf("\nEnter your choice : ");

  scanf("%d",&x);

  switch(x)

  {

  case 1 :

  produce();

  break;

  case 2 :

  consumer();

  break;

  case 3:

  display();

  break;

  case 4:

  exit(1);

  default:

  printf("Wrong choice\n");

  }/*End of switch*/

  }/*End of while */

}

  void produce()

  {

 

  if(out==0&&in==MAX-1 || out==in+1)

  {

  printf("buffer is full.....");

  }

  if(out==-1)

  {

  out=0;

  in=0;

  }

  else if(in==MAX-1)

  {

  in=0;

  }

  else

  {

  in=in+1;

  }

  printf("enter the data :");

  scanf("%d",&n);

  queue[in]=n;

  }

  void consumer()

  {

  if(out==-1)

  {

  printf("buffer is empty.....\n");

  }

  else

  {

  printf("data consumed data is = %d \n",queue[n]); 

    if(out==in)

  { 

    out=-1;

  in=-1;

  }

  else if(out=MAX-1)

  {

    out=0; 

  }

  else

  {

  out=out+1;

  }

    }

  }

  void display()

  {

 

  if(out==-1)

  {

  printf("buffer is empty.....");

  }

  else

  {

  int a;

  printf("\n buffer is = \n");

  for(a=out;a<=in;a++)

  {

  printf("%d\n\t",queue[a]);

  } 

  if(out>in)

  {

  for(a=out;a<=MAX-1;a++)

  {

  printf("%d\n\t",queue[a]);

  }

  for(a=0;a<=in;a++)

  {

  printf("%d\n\t",queue[a]);

  }

  }

  }

  }