C++ Programming Blog

 
 
 
 #include<iostream.h>
 #include<graphics.h>
 #include<stdlib.h>
 #include<conio.h>
 #include<math.h>
 #include<dos.h>

 const max_length=10;

 class Queue
    {
       private:
        long queue[max_length];
        int flag[max_length];
        int rear;
        int front;

       public:
        Queue( );
        void Delete( );
        void Insert( );
        void waiting( );
        long get_value( );
        void show_main_screen( );
        void show_working( );
    };




 //--------------------------  Queue( )  ---------------------------------//


 void Queue::Queue( )
    {
       rear=-1;
       front=-1;

       for(int count=0;count<max_length;count++)
      {
         queue[count]=0;
         flag[count]=0;
      }
    }


 //----------------------  get_value( )  ---------------------------------//


 long Queue::get_value( )
    {
       int count=0;

       char String[10]={NULL};

       setcolor(11);
       settextstyle(2,0,7);
     outtextxy(40,250,\"Enter the element : \");
     outtextxy(41,250,\"Enter the element : \");

       do
      {
         int key_code=0;

         char key=NULL;

         if(kbhit( ))
        {
           key=getch( );
           key_code=int(key);
        }

         if( (count>0 && count<5) && key_code==13)
        break;

         else if( (key_code>=48 && key_code<=57 || key_code==46) &&
                                     count<4)
        {
           String[count]=key;

           count++;
        }

         else if(key_code==8 && count>0)
        {
           setfillstyle(10,6);
             bar(260,255,320,275);

           count--;
           String[count]=NULL;
        }

         setcolor(11);
         settextstyle(2,0,6);

         moveto(265,255);
           outtext(String);

         moveto(265,255);
           outtext(String);

         int x=getx( );
         int y=gety( )+9;

         while(!kbhit( ))
        {
           settextstyle(0,0,1);
             setcolor(15);
               moveto(x+2,y);
             outtext(\"_\");

           delay(250);

             setcolor(0);
               moveto(x+2,y);
             outtext(\"_\");

           delay(200);
           }
      }
       while(count<6);

       delay(500);

       setfillstyle(10,6);
     bar(35,255,320,275);

       long number=atol(String);

       return number;
    }


 //-------------------------------  Insert( )  ---------------------------//


 void Queue::Insert( )
    {
       long item=get_value( );

       if(rear==max_length-1)
      {
         setcolor(11);
         settextstyle(1,0,4);
           outtextxy(30,250,\"Queue is Full\");

         delay(1000);

         setfillstyle(10,6);
           bar(30,260,300,290);
      }

       else if(rear==-1 && front==-1)
      {
         rear++;
         queue[rear]=item;
         front=rear;
         flag[rear]=1;
      }

       else
      {
         rear++;
         queue[rear]=item;
         flag[rear]=1;
      }
    }


 //---------------------------  Delete( )  -------------------------------//


 void Queue::Delete( )
    {
       if(rear==-1 && front==-1)
      {
         setcolor(11);
         settextstyle(1,0,4);
           outtextxy(30,250,\"Queue is Empty\");

         delay(1000);

         setfillstyle(10,6);
           bar(30,260,300,290);
      }

       else
      {
         queue[front]=0;
         flag[front]=0;

         if(front==rear)
        front=rear=-1;

         else
        front++;
      }
    }


 //-----------------------  show_main_screen( )  -------------------------//


 void Queue::show_main_screen( )
    {
       for(int count_1=0;count_1<5;count_1++)
      {
         setcolor(7);
           rectangle(count_1,count_1,getmaxx( )-count_1,
                             getmaxy( )-count_1);
      }

       setfillstyle(10,6);
     bar(5,5,getmaxx( )-5,getmaxy( )-5);

       setfillstyle(1,7);
     bar(80,60,550,63);

       settextstyle(7,0,3);
     setcolor(8);
       outtextxy(108,12,\"Linear\");
       outtextxy(109,12,\"Linear\");

     setcolor(10);
       outtextxy(110,10,\"Linear\");
       outtextxy(111,10,\"Linear\");

       settextstyle(1,0,5);
     setcolor(8);
       outtextxy(78,17,\"Queue Implementation\");
       outtextxy(79,17,\"Queue Implementation\");

     setcolor(12);
       outtextxy(80,15,\"Queue Implementation\");
       outtextxy(81,15,\"Queue Implementation\");

       settextstyle(1,0,5);
     setcolor(8);
       outtextxy(418,382,\"Queue\");
       outtextxy(419,382,\"Queue\");

     setcolor(15);
       outtextxy(420,380,\"Queue\");
       outtextxy(421,380,\"Queue\");

       settextstyle(7,0,3);
     setcolor(8);
       outtextxy(448,377,\"Linear\");
       outtextxy(449,377,\"Linear\");

     setcolor(14);
       outtextxy(450,375,\"Linear\");
       outtextxy(451,375,\"Linear\");

       settextstyle(8,0,4);
     setcolor(8);
       outtextxy(18,82,\"Press :\");
       outtextxy(19,82,\"Press :\");

     setcolor(3);
       outtextxy(20,80,\"Press :\");
       outtextxy(21,80,\"Press :\");

       setfillstyle(2,9);
     bar(16,118,135,121);

       setcolor(14);
       settextstyle(2,0,6);
     outtextxy(50,130,\"<I> to Insert an element\");
     outtextxy(51,130,\"<I> to Insert an element\");

     outtextxy(50,150,\"<D> to Delete an element\");
     outtextxy(51,150,\"<D> to Delete an element\");

     outtextxy(50,170,\"<E> to Exit\");
     outtextxy(51,170,\"<E> to Exit\");

       setcolor(11);
     outtextxy(60,130,\"I\");
     outtextxy(61,130,\"I\");

     outtextxy(60,150,\"D\");
     outtextxy(61,150,\"D\");

     outtextxy(60,170,\"E\");
     outtextxy(61,170,\"E\");

       setcolor(7);
       settextstyle(0,0,1);
     outtextxy(430,452,\"* CopyRights (C) 2000-02\");
     outtextxy(430,465,\"* Muhammad Tahir Shahzad\");

       setcolor(15);
     rectangle(429,79,531,379);

       setfillstyle(1,0);
     bar(430,80,530,378);

       char string[10][10]={\"Queue[9]\",\"Queue[8]\",\"Queue[7]\",\"Queue[6]\",
                \"Queue[5]\",\"Queue[4]\",\"Queue[3]\",\"Queue[2]\",
                \"Queue[1]\",\"Queue[0]\"};

       for(int count_2=0;count_2<max_length;count_2++)
      {
         setcolor(15);
           line(429,79+(count_2*30),530,79+(count_2*30));

         setcolor(15);
         settextstyle(0,0,1);
           outtextxy(355,92+(count_2*30),string[count_2]);
      }
    }


 //-------------------------  show_working( )  ---------------------------//


 void Queue::show_working( )
    {
       show_main_screen( );

       int key_code=0;

       do
      {
         waiting( );

         char key=\'\\0\';

         key=getch( );
         key_code=int(key);

         if(key_code==105 || key_code==73)
        Insert( );

         else if(key_code==100 || key_code==68)
        Delete( );

         else if(key_code==27 || key_code==101)
        exit(0);

         setfillstyle(10,6);
           bar(540,80,615,400);

         for(int count_1=0;count_1<max_length;count_1++)
        {
           int flag=0;

           if(count_1==rear && flag==0)
              {
             setfillstyle(1,9);
               bar(550,358-(count_1*30),570,363-(count_1*30));

             setcolor(9);

             for(int count_2=0;count_2<=10;count_2++)
                   line(540,363-(count_1*30),550,
                        363-(count_1*30)-count_2);

             setcolor(7);
             settextstyle(0,0,1);
               outtextxy(577,357-(count_1*30),\"Rear\");

             flag=1;
              }

           flag=0;

           if(count_1==front && flag==0)
              {
             setfillstyle(1,11);
               bar(550,368-(count_1*30),570,373-(count_1*30));

             setcolor(11);

             for(int count_3=0;count_3<=10;count_3++)
                line(540,368-(count_1*30),550,
                          368-(count_1*30)+count_3);

             setcolor(7);
             settextstyle(0,0,1);
               outtextxy(577,369-(count_1*30),\"Front\");

             flag=1;
              }
        }

         delay(500);

         for(int count_4=0;count_4<max_length;count_4++)
        {
           if(flag[count_4]!=0)
              setfillstyle(1,count_4+1);

           else
              setfillstyle(1,0);

            bar(430,378-(count_4*30),530,350-(count_4*30));
        }

         for(int count_5=0;count_5<max_length;count_5++)
        {
           setcolor(15);
           settextstyle(0,0,1);

           char value[6]={\'\\0\'};

           itoa(queue[count_5],value,10);

           if(flag[count_5]!=0)
              outtextxy(460,360-(count_5*30),value);
        }
      }
       while(key_code!=27);
    }


 //----------------------------  waiting( )  -----------------------------//


 void Queue::waiting( )
    {
    do
       {
          setfillstyle(1,4);
        bar(51,440,99,445);

          setfillstyle(1,10);
        bar(101,440,149,445);

          setfillstyle(1,9);
        bar(151,440,199,445);

          setfillstyle(1,14);
        bar(201,440,249,445);

          delay(300);

          setfillstyle(10,6);
        bar(51,440,99,445);

          delay(150);

        bar(101,440,149,445);

          delay(150);

        bar(151,440,199,445);

          delay(150);

        bar(201,440,249,445);

          delay(150);

          setfillstyle(1,4);
        bar(51,440,99,445);

          delay(150);

          setfillstyle(1,10);
        bar(101,440,149,445);

          delay(150);

          setfillstyle(1,9);
        bar(151,440,199,445);

          delay(150);

          setfillstyle(1,14);
        bar(201,440,249,445);
       }
    while(!kbhit());

    setfillstyle(10,6);
      bar(51,440,99,445);
      bar(101,440,149,445);
      bar(151,440,199,445);
      bar(201,440,249,445);
   }

 main( )
    {
       int driver=VGA;
       int mode=VGAHI;

       initgraph(&driver,&mode,\"..\\\\Bgi\");

       Queue obj;

       obj.show_working( );

       closegraph( );
       return 0;
    }

    Related Post:
  1. Program that reads a numbers , computes and displays the factorial of the given number using recursion

  2. Program to construct Newtons Forward Difference Interpolation Formula from the given distinct equally spaced data points

  3. Program to show an example of Hashing

  4. Program to compute and print out the decimal notation for the reciprocal of each input integer

  5. Program to show the use of Bitwise operator OR ( | )

  6. Write a Program to create Numeric Triangle

  7. Program to illustrate the implementation of X-Direction Shear Transformation

  8. PROGRAM FOR ACCEPTING MEASUREMENTS IN METERS AND FEETS AND SUMMING THEM UP IN THE FORMAT THAT THE USER WISHES

  9. Program to estimate the value of Third Derivative of the function at the given points from the given data using Central Difference Formula of order 2

  10. Program to illustrate the implementation of Scaling Transformation

  11. Program illustrating operator overloading

  12. Program of Rotate About Origin

  13. Program to illusrate data conversion user defined data types using functions

  14. Program to show the 3D Reflection Transformation along xy-plane

  15. Program to capitalize the first charcter of every word in a string

  16. Program to illustrate the use of call-by-value method in functions

  17. Program to show the projection of 3D objects using Standard Perspective Projection w.r.t. an Arbitrary Plane and Center of Projection...

  18. Program to show the implementation of Liang-Barsky Line Clipping Algorithm

  19. Program to print an array using funtion definition

  20. Program to show the implementation of Window-to-Viewport Transformaton