#include<stdio.h>
#include<string.h>
#define max 5
int a;
int i;
int b;
int aircrano;

struct data_type
{
int aircrano;
char name[20];
char msg[30];
};

void add (struct data_type);
struct data_type remove1(void);
void display(void);
void disno(struct data_type);
void adjustq(void);

int rear = -1;
int count = 0;

struct data_type q[max];
main()
{
int option=0;
struct data_type tempdata;
//clrscr();
do
{

 printf("\n\n\n\n\t\t\t\t   THE MENU");
 printf("\n\t\t\t-----------------------------------");
 printf("\n\n\t\t\t 1- Add Aircraft Detail\n");
 printf("\t\t\t 2- Remove Aircarft Detail\n");
 printf("\t\t\t 3- Display All Details In Ascending Order\n");
 printf("\t\t\t 4- Display Details Based On Aircarft Number\n");
 printf("\t\t\t 5- Quit\n");
 printf("\n\t\t\t-----------------------------------");
 printf("\n\t\t\t Enter your choice please:");
 scanf(" %d",&option);
 switch(option)
 {
 case 1:
//  clrscr();
  if (count==max)
  {
   printf("\n\n\t\t\t Queue is FULL");
   //getch();
   //clrscr();
  }

  else

  {
   //clrscr();
   printf("\n\n\n\t\t\t Aircraft No:");
   scanf("%d",&tempdata.aircrano);
   printf("\n\t\t\t Aircraft Name:");
   scanf("%s",&tempdata.name);
   printf("\n\t\t\t Aircraft Message:");
   scanf("%s",&tempdata.msg);
   add (tempdata);
   //clrscr();
  }
  break;

 case 2:
  //clrscr();
  if (count==0)
  {
   printf("\n\n\t\t\t Queue is EMPTY");
   //getche();
  }

  else

  {
   tempdata=remove1();
   //clrscr();
   printf("\n\n\n\n\t\t The Removed Aircraft Number: %d",tempdata.aircrano);
   printf("\n\n\t\t The Removed Aircraft Name : %s",tempdata.name);
   printf("\n\n\t\t The Removed Aircraft Message : %s", tempdata.msg);
   //getche();
   //clrscr();
  }
  break;

 case 3:
  //clrscr();
  display();
  break;

 case 4:
  //clrscr();
  a=0;
  b=0;
  printf("\n\n\n\n\t\t Enter Aircraft No: ");
  scanf("%d",&aircrano);
  for(i=0;i<count;i++)
  {
   tempdata=i[q];
   if (aircrano==tempdata.aircrano)
   {
    a=1;
    if(b==0)
    {
     printf("\t%s \t%s \t%s \n","Aircraft No","Aircraft Name","Aircraft Message");
     b=1;
    }
     printf("\t\t %d \t%s \t%s \n",tempdata.aircrano,tempdata.name,tempdata.msg);
   }
   else
   {
    if(a==1)
    {
     a=1;
    }
   }
  }
  if(a==0)
  {
   printf("\n\n\t This number is not available \n\t Please try again ...\n");
   //getche();
   //clrscr();
  }
  break;

 case 5:
  //clrscr();
  printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t End of the Program\n");
  //getche();

 default:
  printf("\n\n\t\t\t Wrong Choice!!!! .... Try again");
  break;
 }
}
while (option!=5);
}

void add (struct data_type data)
{
rear = rear + 1;
count = count + 1;
q[rear] = data;
}

struct data_type remove1(void)
{
struct data_type temp;
temp = q[0];
adjustq();
return temp;
}

void display(void)
{
struct data_type data;
int aircrano;
char name[20];
char msg[30];
int opt=0;
int f=0;
int i;
do
{
//clrscr();
for (i=f; i<f+4; i++)
{
 data = q[i];
 printf("\t%s \t%s \t%s \n","Aircraft No","Aircraft Name","Aircraft Message");
 printf("\t\t %d \t%s \t%s \n",data.aircrano,data.name,data.msg);
 printf("\n\t\t================================\n");
}
printf("\n\n Do you want to continue?? \n\n\t\t 1-Yes \n\t\t 2-No\n\n\t\t");
scanf("%d",&opt);
f=f+2;
//clrscr();
}
while (opt==1);
}

void adjustq(void)
{
int i;
for (i=0; i<rear; i++)
{
 q[i] = q[i+1];
 rear = rear - 1;
 count = count -1;
}
}