MENU











Sunday, 27 October 2013

Ds week3 Programs

Exercise 3

b) Consider a payment counter at which the customer pays for the items purchased. Every time a customer finished paying for their items, he/she leaves the queue from the front. Every time another customer enters the line to wait, they join the end of the line. Implement the application for this problem.

Aim::/*To implement queue at payment counter*/

Program::

#include< stdio.h> //Standard i/p,o/p header file
voidfill();     //prototype of function enque
void delete();   
void display();  
int queue[20],remv[20],temp[20];   //Declaration of array
int  f=-1,r=-1;     //f-front,r-rear intialisation
int int h,i,n,t,j;       //h-for switch case,n-for size of queue
int  main()      //main function 
{
 printf("Enter the size of queue : ");
 scanf("%d",&n);
 while(h!=4)
 {
  printf(" 1-for insert\n 2-for delete \n 3-for display \n 4-for exit \n Enter ur choice: ");
  scanf("%d",&h);
  switch(h)
  {
   case 1:fill(); //calling function
   break;
   case 2:delete();
   break;
   case 3:display();
   break;
   case 4:
   break;
   default:printf("Invalid entry \n");
  }
 }
}
void fill()
{
      j=0;
      if(r==n-1)
      {
            printf("Queue is full \n");
            display();
            printf("wait for sometime to send another person \n");
      }
 else
 {
            r++;
            if(f< 0||queue[r-1]< n)
            queue[r]=queue[r-1]+1;
            else if(queue[r-1]>=n ||queue[r-2]>=n)
            {
                 queue[r]=remv[j];
                 j++; 
                 f--;
            }
            printf("Filled position is %d \n",queue[r]);
 }
}
void  delete()
{
            if(r==-1)
            printf("Queue is empty deletion not possible\n");
            else
            {
                 f++;
                 remv[f]=queue[0];
                 printf("The removed position is %d \n",remv[f]);
                // printf("%d \t %d",f,remv[f]);
                 t=r;
            } 
            for(i=0;i<=t;i++)
            {
                  queue[i]=queue[i+1];
            }
              r--;
}
void  display()
{ 
 
            printf("\n The filled positions  in the queue are \n");
            if(r==-1)
            printf(" Null \n");
            else
            {
                   t=r;
                   for(i=0;i<=t;i++)
                   printf("%d \t",queue[i]);
                   printf("\n");
            }
             printf("\n Th1e vacant positions  in the queue are \n");
             if(r==n-1)
             printf(" Null \n");
  
             else
             {
                   temp[0]=queue[r];
                   i=-1;
                   for(j=1;j< n-r;j++)
                   {
                          temp[j]=temp[j-1]+1;
                          if(temp[j]>n)
                          {
                             i++;
                             printf("%d \t",remv[i]);
                          }
                          if(temp[j-1]<=n-1)   
                          {
                             printf("%d\t ",temp[j]=temp[j-1]+1);
    
                          }
                  }
             }
 printf("\n");  
}

output::

Enter the size of queue : 7
 1-for insert
 2-for delete 
 3-for display 
 4-for exit 
 Enter ur choice: 1
Filled position is 1 
 1-for insert
 2-for delete 
 3-for display 
 4-for exit 
 Enter ur choice: 1
Filled position is 2 
 1-for insert
 2-for delete 
 3-for display 
 4-for exit 
 Enter ur choice: 1
Filled position is 3 
 1-for insert
 2-for delete 
 3-for display 
 4-for exit 
 Enter ur choice: 1
Filled position is 4 
 1-for insert
 2-for delete 
 3-for display 
 4-for exit 
 Enter ur choice: 3

 The filled positions  in the queue are 
1 	2 	3 	4 	

 Th1e vacant positions  in the queue are 
5	 6	 7	 
 1-for insert
 2-for delete 
 3-for display 
 4-for exit 
 Enter ur choice: 2
The removed position is 1 
1-for insert
 2-for delete 
 3-for display 
 4-for exit 
 Enter ur choice: 2
The removed position is 2 
1-for insert
 2-for delete 
 3-for display 
 4-for exit 
 Enter ur choice: 2
The removed position is 3 
1-for insert
 2-for delete 
 3-for display 
 4-for exit 
 Enter ur choice: 2
The removed position is 4 
1-for insert
 2-for delete 
 3-for display 
 4-for exit 
 Enter ur choice: 3

 The filled positions  in the queue are 
 Null 

 Th1e vacant positions  in the queue are 
1	 2	 3	 4	 5	 6	 7	 
 1-for insert
 2-for delete 
 3-for display 
 4-for exit 
 Enter ur choice:4


No comments:

Post a Comment