Monday, 2 September 2013

PRODUCER CONSUMER C PROGRAM

/*CSEMATTER.BLOGSPOT.IN
C Program to implement producer consumer problem*/
#include<stdio.h>
#include<conio.h>
int main()
{
int producer(int [],int,int);
int consumer(int [],int,int);
int buffer[20],max,n,a=0,a1=0,ch,cons=0;
 printf("\n\n\n\tEnter Stack Size :");
 scanf("%d",&max);
do
 {
   printf("\n\t\tCHOICES\n\t\t\n\t1.Producer\n\t2.Consumer\n\t3.Exit\nEnter your choice :\n ");
   scanf("%d",&ch);
   switch(ch)
   {
    case 1:
  {
   if(a==max & cons==0)
   {printf("STACK FULL...\n");
            break;}
     else if(cons==2)
     {
         printf("Consumer has not consumed all item yet");
         break;
    }
    else
    {a=producer(buffer,max,a);
     break;}
    }
    case 2:
  {if(a!=max)
  {printf("STACK NOT FULL YET...PRODUCER TURNS TO PRODUCE\n");
        break;}
      if(a==max)
     {a1=consumer(buffer,max,a1);
      if(a1==max)
      {a=0;
      cons=0;}
      else
      cons=2;}
     break;}
     case 3:
     break;
    }
 }
while(ch!=3);
getch();
}
 int producer(int buffer[20],int max,int a)
{
int i,n;
int counter=a;
printf("Enter the no. of items to be produced");
scanf("%d",&n);
for(i=a;i<a+n;i++)
{
printf("Enter the item to be produced");
scanf("%d",&buffer[i]);
counter=counter+1;
}
return(counter);
}
int consumer(int buffer[20],int max,int a1)
{
int i,n;
int counter1=a1;
printf("Enter the no. of items to be consumed");
scanf("%d",&n);
for(i=a1;i<a1+n;i++)
{
printf("Consumed item is: %d \n",buffer[i]);
buffer[i]=0;
counter1=counter1+1;
}
return(counter1);}
/*OUTPUT
     Enter Stack Size :5
                CHOICES
        1.Producer
        2.Consumer
        3.Exit
Enter your choice :
 2
STACK NOT FULL YET...PRODUCER TURNS TO PRODUCE
                CHOICES
        1.Producer
        2.Consumer
        3.Exit
Enter your choice :
 1
Enter the no. of items to be produced3
Enter the item to be produced1
Enter the item to be produced2
Enter the item to be produced3
                CHOICES
        1.Producer
        2.Consumer
        3.Exit
Enter your choice :
 2
STACK NOT FULL YET...PRODUCER TURNS TO PRODUCE
                CHOICES
        1.Producer
        2.Consumer
        3.Exit
Enter your choice :
 1
Enter the no. of items to be produced2
Enter the item to be produced4
Enter the item to be produced5
                CHOICES
        1.Producer
        2.Consumer
        3.Exit
Enter your choice :
 1
STACK FULL...
                CHOICES
        1.Producer
        2.Consumer
        3.Exit
Enter your choice :
 2
Enter the no. of items to be consumed3
Consumed item is: 1
Consumed item is: 2
Consumed item is: 3
                CHOICES
        1.Producer
        2.Consumer
        3.Exit
Enter your choice :
 1
Consumer has not consumed all item yet
                CHOICES
        1.Producer
        2.Consumer
        3.Exit
Enter your choice :
 2
Enter the no. of items to be consumed2
Consumed item is: 4
Consumed item is: 5
                CHOICES
        1.Producer
        2.Consumer
        3.Exit
Enter your choice :
3 */

No comments:

Post a Comment