Logo 
Search:

C++ Programming Articles

Submit Article
Home » Articles » C++ Programming » Data File StructureRSS Feeds

Program of Graphical Representation of Stack And Queue

Posted By: Easy Tutor     Category: C++ Programming     Views: 8685

Write a Program of Graphical Representation of Stack And Queue.

Code for Program of Graphical Representation of Stack And Queue in C++ Programming

#include<iostream.h>    //for cin, cout 
#include<conio.h>       //for getche() 
#include<ctype.h>       //for tolower() function 
#include<stdlib.h>      //for itoa() 
#include<GRAPHICS.H>    //to  load graphics driver 
#include<dos.h>         //for delay() function /*_________________________________________________________________________*//*_________________________________________________________________________*///These Functions prototypes are, for stack function. int col=60 , row = 417 ,n ,x=60 , y=417  ,size=10 ,arr[10]={12,56,23,46,32,89,11,99,12,66} , count =   0, top = 0;        //Global Variables charstring[45]; 
void push( ); 
void pop( ); 
void stack(); 
/*_________________________________________________________________________*//*_________________________________________________________________________*///These Functions prototypes are, for queue Function int qcol=60 , qrow = 417 ,qn=10, qx=60 , qy=417  ,qsize=10,qarr[20]={12,56,23,46,32,89,11,99,12,66,4,2,1,0,94,56,22,87,45,47} , countp=0 ,counto =   0;        //Global Variables int front = -1 , rear = -1 , hito=0 , hitu=0; 
char qstring[45]; 
void qpush( );                                 //Prototypes void qpop( ); 
void queue(); 

void loadgraph(); 

void main() 
{ 
clrscr(); 
char ch; 
loadgraph(); 
setbkcolor(0); 
setcolor(2); 

//This do while; loop will execute untill character 'x' is not Entered do 
{ 
 gotoxy(37,5); 
 cout<<"Menu"; 
 gotoxy(30,6); 
 cout<<"Stack               [s]"; 
 gotoxy(30,7); 
 cout<<"Queue               [Q]"; 
 gotoxy(30,8); 
 cout<<"Exit                [x]"; 
 gotoxy(25,9); 
 cout<<"\t\t\t\t"; 
 gotoxy(30,10); 
 cout<<"Enter Option        [ ]\b\b"; 
 ch=getche(); 
 //Converts, Entered char into lower one 
 ch = tolower(ch); 
 gotoxy(30,15); 
 if(ch=='s') 
 // call to stack function 
 stack(); 
 elseif(ch=='q') 
 //call to queue function 
 queue(); 
 cleardevice(); 

}while(ch!='x'); 
 cleardevice(); 
 closegraph(); 
} 
/////////////////////////////////END OF MAIN FUNCTION/////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //This function loads , graph driver and mode void loadgraph() 
{ 
  clrscr(); 
  int driver = DETECT, mode, errorcode; 
  initgraph(&driver, &mode, "c:\\tc\\bgi"); 
  errorcode = graphresult(); 
  if (errorcode != grOk) 
     { 
    cout<<"Graphics error: \n"<<(grapherrormsg(errorcode)); 
    cout<<"Press any key to halt:"; 
    getch(); 
    exit(1); 
    } 
} 
////////////////////////////END OF LOAD GRAPH FUNCTION //////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// void stack() 
{ 
  cleardevice(); 
  /*-------------------------------------------------------------*/ 
    outtextxy(400,465,"Babar saeed"); 
    outtextxy(500,465,"32"); 
    outtextxy(545,465,"QAU, ISB"); 
  /*-------------------------------------------------------------*///Displays stacks Menu 
  moveto(400,60); 
  outtext("STACK'S OPERATIONS"); 
  moveto(400,80); 
  outtext("PUSH           [p]"); 
  moveto(400,100); 
  outtext("POP            [o]"); 
  moveto(400,120); 
  outtext("EXIT           [x]"); 
  //End of stack Menu /*-----------------------------------------------------------------*//*-----------------------------------------------------------------*/// displays value of top in start of program 
  moveto(300,425); 
  outtext("Top"); 
  itoa(top,string,10); 
  outtextxy(308,450,string); 
  /*-----------------------------------------------------------------*///Dislplays stack figure 
  setbkcolor(0); 
  setcolor(14); 
  outtextxy(55,26,"STACK"); 
  line(30,40,30,440); 
  int r=40; 
  for(int i = 1 ;i<12 ;i++) 
   { 
     line(30,r,110,r); 
     r+=40; 
   } 
  line(110,40,110,440); 
  r = 55; 
  // This loop Displays stack's boxes Number for( i = 10 ;i>=1 ;i--) 
   { 
     moveto(10,r); 
     itoa(i,string,10); 
     outtext(string)  ; 
     r+=40; 
   } 
   //These four statements makes a box 
   line(165,440,210,440); 
   line(165,440,165,460); 
   line(210,440,210,460); 
   line(165,460,210,460); 
   setfillstyle(0, getmaxcolor()); 
   // This do while loop , reads coorect option (push, pop, Exit) // And Makes calls to push, pop functions char ch[2]; 
   do 
    { 
     moveto(400,140); 
     outtext("ENTER OPTION   "); 
     ch[0]=getche(); 
     //convert entered option in lower character 
     ch[0] = tolower(ch[0]); 
     if(ch[0]=='p') 
    {  // start of outer if // displays p 
       outtext("p"); 
       // make a delay 
       delay(500); 
       // draw a bar to remove p 
       bar(getx()-30,gety(),getx()+2,gety()+20); 
       /*--------------------------------------------------------*/// if size of stack's remaining boxese less than one // than stack is overflow if(size<1) 
        { //start of nested if for(int i = 0 ;i<4 ; i++){ 
          moveto(420,170); 
          outtext("Stack Overflow "); 
          delay(1000); 
          setfillstyle(0, getmaxcolor()); 
          bar(420 ,165 ,630 ,180); 
          delay(500);} 
         }//end of nested if /*--------------------------------------------------------*/// if there are stack's boxes remains (if size>1) else 
         { 
          //start of nested else part // decrease stack remaining boxes 
          size--; 
          // increase top position , where last item is Inserted 
          top++; 
          // call to push function 
          push(); 
          // bar removes last displayes value 
          bar(290,440,350,479); 
          // convert integer value to assci value /* becuse outtext/outtextxy function require string          as third argument */ 
          itoa(top,string,10); 
          outtextxy(308,447,string); 
          }//End of Nested else Part 
    }//end  of Nested if elseif(ch[0]=='o') 
    {  // start of outer if's elseif part // Displays o , and remove it after a delay 
       outtext("o"); 
       delay(500); 
       bar(getx()-30,gety(),getx()+10,gety()+20); 
       /*--------------------------------------------------------*//* if all boxes of stack are empty than display message           of overflow */if(size==10) 
         { 
          for(int i = 0 ;i<4 ; i++){ 
          moveto(410,170); 
          outtext("Stack, Underflow "); 
          delay(1000); 
          setfillstyle(0, getmaxcolor()); 
          bar(330 ,165 ,630 ,180);   // (left, top)     ³ upper left corner 
          delay(500);  }                //        (right, bottom) ³ lower right corner*/ 
         } 
       /*--------------------------------------------------------*//*if there are some boxes of stack filled than call          pop function */else 
          { 
          // update top's value 
          top--; 
          pop(); 
          //display value of updated top 
          bar(290,440,350,479); 
          itoa(top,string,10); 
          outtextxy(308,447,string);} 
          } 
         /*------------------------------------------------------*/ 
}while(ch[0]!='x'); 
} 
////////////////////////////END OF STACK FUNCTION///////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // this function pushes values in stack void push() 
{ 
   int a=178 ,  b=425    ; 
   /*---------------------------------------------------------------*///displays the value that is to be pushed in stack 
   moveto(178,447); 
   itoa(arr[count],string,10); 
   outtext(string); 
   /*--------------------------------------------------------------*//*after a delay remove the value , and display the      value in box that is to pushed next */ 
   delay(10); 
   bar(170,446,208,455); 
   itoa(arr[count+1],string,10); 
   moveto(178,447); 
   outtext(string); 
   /*--------------------------------------------------------------*/ 
   moveto(a,b); 
   /*this loop displays and moves the value untill top row position      is not found */while(gety()!=y) 
     { 
      setfillstyle(0, getmaxcolor()); 
      circle(a+6,b+3,12); 
      itoa(arr[count],string,10); 
      outtext(string); 
      delay(10); 
      setfillstyle(0, getmaxcolor()); 
      bar(170 ,gety()-20 ,200 ,gety()+14); 
      moveto(a,b); 
      b--; 
     } 
   setfillstyle(0, getmaxcolor()); 
   circle(a+6,b+3,9); 
   outtext(string); 
   moveto(125,b); 
   /*--------------------------------------------------------------*///This loop displays the animated arrow toward top box os stack for(int j   =0 ;j<6 ; j++) 
      { 
    outtext("®"); 
    delay(100); 
    setfillstyle(0, getmaxcolor()); 
    bar(getx()-3 ,gety() ,getx() ,gety()+8); 
    delay(100); 
      } 
   /*--------------------------------------------------------------*/           delay(100); 
   //Remove last displayed value 
   setfillstyle(0, getmaxcolor()); 
   bar(getx()-48 ,gety() ,getx() ,gety()+8); 
   /*--------------------------------------------------------------*/           delay(100);    delay(200); 
   /*while required coloumn of top box is not found , Display      and move value to required colimn */while(getx()!=x+60) 
     { 
      setfillstyle(0, getmaxcolor()); 
      circle(a+6,b+3,9); 
      itoa(arr[count],string,10); 
      outtext(string); 
      delay(10); 
      setfillstyle(0, getmaxcolor()); 
      bar(getx()-20 ,gety()-10 ,getx()+70 ,gety()+20); 
      moveto(a,b); 
      a--; 
     } 
   /*--------------------------------------------------------------*/           delay(100); 
   //display the value in required box 
   moveto(60,gety()); 
   outtext(string); 
   count++; 
   // to have cursor position in top box of stack 
   y = y-40; 
} 
/////////////////////////END OF PUSH FUNCTION/////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /*this function pops/displays values from stack and moves value  untill doesn't get posiotion to Inside value's box */void pop() 
{ 
   int a=120, b ; 
   //Update row , from where next value is to be poped 
   y = y + 40   ; 
   b = y        ; 
   moveto(120,y); 
   /*-------------------------------------------------------------*//* This loop displayes the arrows towards the stack's box       from where , value is to be poped */for(int j=0 ;j<6 ; j++) 
    { 
     outtext("®"); 
     delay(100); 
     setfillstyle(0, getmaxcolor()); 
     bar(getx()-3 ,gety() ,getx() ,gety()+8); 
     delay(100); 
    } 
   /*-------------------------------------------------------------*/// Remove last displayed arrow 
   delay(100); 
   setfillstyle(0, getmaxcolor()); 
   bar(getx()-48 ,gety() ,getx() ,gety()+8); 
   delay(200); 
   moveto(60,gety()); 
   setfillstyle(0, getmaxcolor()); 
   bar(getx()-10 ,gety()-3 ,getx()+20 ,gety()+8); 
   /*-------------------------------------------------------------*//*This loop will display the value untill poped value is not      positioned in values box column  */ 
   delay(500); 
   while(getx()!=178) 
     { 
      setfillstyle(0, getmaxcolor()); 
      circle(a+6,b+3,12); 
      moveto(a,gety()); 
      itoa(arr[count-1],string,10); 
      outtext(string); 
      delay(10); 
      setfillstyle(0, getmaxcolor()); 
      bar(getx()-25 ,gety()-10 ,getx()+30 ,gety()+20); 
      a++; 
     } 
   /*-------------------------------------------------------------*//*This loop will display the value untill poped value is not      positioned in values box Row */ 
   delay(500); 
   while(gety()!=430) 
     { 
      setfillstyle(0, getmaxcolor()); 
      circle(a+21,b+3,7); 
      moveto(178,b); 
      itoa(arr[count-1],string,10); 
      outtext(string); 
      delay(10); 
      setfillstyle(0, getmaxcolor()); 
      bar(getx()-30 ,gety()-10 ,getx()+20 ,gety()+9); 
      b++; 
     } 
   /*-------------------------------------------------------------*/// These statements displyes poped values in vlaue box 
     delay(10); 
     moveto(178,447); 
     bar(170,446,208,455); 
     count--; 
     moveto(178,447); 
     itoa(arr[count],string,10); 
     outtext(string); 
     size++; 
   /*-------------------------------------------------------------*/ 
} 
////////////////////////////END OF POP FUNCTION//////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// /* function that displays the queue figure and calls to appropiate   function */void queue() 
{ 
  /*----------------------------------------------------------------*/ 
    cleardevice(); 
    outtextxy(400,465,"Babar saeed"); 
    outtextxy(500,465,"32"); 
    outtextxy(545,465,"QAU, ISB"); 
  /*-------------------------------------------------------------*//*This portion will create menu at specified locations*/ 
  moveto(400,60); 
  outtext("Queue'S OPERATIONS"); 
  moveto(400,80); 
  outtext("PUSH           [p]"); 
  moveto(400,100); 
  outtext("POP            [o]"); 
  moveto(400,120); 
  outtext("EXIT           [x]"); 
  /*---------------------------------------------------------------------*/ 
  setbkcolor(0); 
  setcolor(14); 
  /*---------------------------------------------------------------------*//*this portion will create stack's figure*/ 
  outtextxy(55,26,"Queue"); 
  line(30,40,30,440); 
  int r=40; 
  for(int i = 1 ;i<12 ;i++) 
     { 
     line(30,r,110,r); 
     r+=40; 
    } 
  line(110,40,110,440); 
  /*---------------------------------------------------------------------*//*---------------------------------------------------------------------*//*this loop is used, to write stacks numbers*/ 
  r = 55; 
  for( i = 9 ;i>=0 ;i--) 
   { 
     moveto(10,r); 
     itoa(i,string,10); 
     outtext(string)  ; 
     r+=40; 
   } 
  /*---------------------------------------------------------------------*//* these four lines , used to create a box*/ 
  line(165,440,210,440); 
  line(165,440,165,460); 
  line(210,440,210,460); 
  line(165,460,210,460); 
  /*--------------------------------------------------------------------*//* This do while loop , reads coorect option (push, pop, Exit)      And Makes calls to qpush, qpop functions */ 
  setfillstyle(0, getmaxcolor()); 
  char ch[2]; 
  do 
   { 
    moveto(400,140); 
    outtext("ENTER OPTION   "); 
    ch[0]=getche(); 
    ch[0] = tolower(ch[0]); 
    if(ch[0]=='p') 
      {   // start of outer if /*---------------------------------------------------------------------*//*display p than after 5 seconds remove*/ 
       outtext("p"); 
       delay(500); 
       bar(getx()-30,gety(),getx()+2,gety()+20); 
       /*---------------------------------------------------------------------*/// if no value is inserted or all values have been poped then if((front==0 && rear == qn-1) || (front==rear+1) ) 
         { //start of nested if for(int i = 0 ;i<4 ; i++) 
          { 
           moveto(420,170); 
           outtext("Overflow Queue"); 
           delay(1000); 
           setfillstyle(0, getmaxcolor()); 
           bar(420 ,165 ,630 ,180); 
           delay(500); 
          } 
           hito = 1 ; 
         } //end of nested if // if queue is not empty elseif(hito==0 ) 
         { //start of nested else part /*----------------------------------------------------*///update position of front and rear whenever front = -1 if(front == -1) 
         { 
          front = 0   ; 
          rear  = 0   ; 
          qrow  = 417 ; 
         } 
           /*----------------------------------------------------*//*whenever rear has value equal to queue size          rear must be equal to 0 ,to have circular queue */elseif(rear == qn-1 ) 
         { 
          rear = 0  ; 
          qrow  = 417; 
         } 
           /*----------------------------------------------------*/else 
          rear += 1; 
           /*----------------------------------------------------*/ 
           hitu = 0; 
           qsize++; 
           qpush(); 
           /*----------------------------------------------------*//* These statements displays updated values of front           and rear Positions, after each call to qpush()*/ 
           moveto(265,390); 
           bar(265,415,375,550); 
           outtextxy(270,400,"Front"); 
           outtextxy(350,400,"Rear"); 
           char fr[80]; 
           itoa(front,fr,10); 
           outtextxy(277,420,fr); 
           itoa(rear,fr,10); 
           outtextxy(357,420,fr); 
           /*----------------------------------------------------*/ 
         }//End of Nested else Part 
    }//end  of Nested if elseif(ch[0]=='o') 
    { //start of outer if's elseif part 
       outtext("o"); 
       delay(500); 
       bar(getx()-30,gety(),getx()+10,gety()+20); 
       /*--------------------------------------------------------*///if all values have been poped then diplay message if(rear==-1) 
         { 
          for(int i = 0 ;i<4 ; i++) 
          { 
          moveto(415,170); 
          outtext("UnderFlow Queue "); 
          delay(1000); 
          setfillstyle(0, getmaxcolor()); 
          bar(330 ,165 ,630 ,180); 
          delay(500); 
          hitu = 1 ; 
          } 
       /*--------------------------------------------------------*/         } 
      // if queue has some values than call to pop function elseif(hitu!=1) 
     { 
      /* if front and rear have same position than to display          value in ist box of queue front and rear is updated to -1*/if(front == rear ) 
        { 
         front = -1  ; 
         rear  = -1  ; 
        } 
      /*if front has value equal to size of queue than front must         have value equal to 0 , To make a Circular list*/elseif(front == qn-1 ) 
        { 
          front =  0  ; 
          qy    = 417 ; 
        } 
      /*else simply change position of front*/else 
          front+=1; 
      /*--------------------------------------------------------*//*These statements displays , updated values of front         and rear variables */ 
      hito = 0; 
      qsize--; 
      qpop(); 
      moveto(265,390); 
      bar(265,415,375,550); 
      outtextxy(270,400,"Front"); 
      outtextxy(350,400,"Rear"); 
      char fr[80]; 
      itoa(front,fr,10); 
      outtextxy(277,420,fr); 
      itoa(rear,fr,10); 
      outtextxy(357,420,fr); 
      /*--------------------------------------------------------*/ 
     } 
    } 
}while(ch[0]!='x'); 
} 
////////////////////////////END OF QUEUE FUNCTION/////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /*This function , pushes values in queue and displays pushed value  until required posiotion is not found*/void qpush() 
{ 
     int a=178 ,  b=425    ; 
     /*--------------------------------------------------------*//*These statements displayes values in box , that is to pushed*/ 
     moveto(178,447); 
     itoa(qarr[countp],qstring,10); 
     outtext(qstring); 
     delay(10); 
     bar(170,446,208,455); 
     itoa(qarr[countp+1],qstring,10); 
     moveto(178,447); 
     outtext(qstring); 
     /*--------------------------------------------------------*//*--------------------------------------------------------*//*This portion of statements displays and move value from values     box untill required rear box's row is not found*/ 
     moveto(a,b); 
     while(gety()!=qrow) 
     { 
         setfillstyle(0, getmaxcolor()); 
         circle(a+6,b+3,12); 
         itoa(qarr[countp],qstring,10); 
         outtext(qstring); 
         delay(10); 
         setfillstyle(0, getmaxcolor()); 
         bar(170 ,gety()-20 ,200 ,gety()+14); 
         moveto(a,b); 
         b--; 
     } 
     setfillstyle(0, getmaxcolor()); 
     circle(a+6,b+3,9); 
     outtext(qstring); 
     moveto(125,b); 
     /*--------------------------------------------------------*//*--------------------------------------------------------*/// display arrow towards to rear box for(int j=0; j<6; j++) 
     { 
      outtext("®"); 
      delay(100); 
      setfillstyle(0, getmaxcolor()); 
      bar(getx()-3 ,gety() ,getx() ,gety()+8); 
      delay(100); 
     } 
     /*--------------------------------------------------------*///remove last displyed arrow 
     delay(100); 
     setfillstyle(0, getmaxcolor()); 
     bar(getx()-48 ,gety() ,getx() ,gety()+8); 
     delay(200); 
     /*--------------------------------------------------------*//*This portion of statements displays and move value from values     box untill required rear box's row is not found */while(getx()!=qx+60) 
     { 
         setfillstyle(0, getmaxcolor()); 
         circle(a+6,b+3,9); 
         itoa(qarr[countp],qstring,10); 
         outtext(qstring); 
         delay(10); 
         setfillstyle(0, getmaxcolor()); 
         bar(getx()-20 ,gety()-10 ,getx()+70 ,gety()+20); 
         moveto(a,b); 
         a--; 
     } 
    moveto(60,gety()); 
    outtext(qstring); 
      /*---------------------------------------------------------*/// to have cursor position in Last part of stack 
      countp++; 
      qrow = qrow-40; 
      if(front==-1 && rear==-1) 
      qrow =417; 
} 
////////////////////////////END OF QUEUE PUSH FUNCTION//////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /*This function pops value from queue and moves nad diplay values  to the value box*/void qpop() 
{ 
   int a=120,b=qy ; 
   //update no. of values that is poped 
   countp++; 
   /*---------------------------------------------------------------*///display arrow towards front box in queue 
   moveto(120,qy); 
   for(int j   =0 ;j<6 ; j++) 
    { 
           outtext("®"); 
           delay(100); 
           setfillstyle(0, getmaxcolor()); 
           bar(getx()-3 ,gety() ,getx() ,gety()+8); 
           delay(100); 
    } 
   /*---------------------------------------------------------------*///remove last displayed arrow 
   delay(100); 
   setfillstyle(0, getmaxcolor()); 
   bar(getx()-48 ,gety() ,getx() ,gety()+8); 
   delay(200); 
   moveto(60,gety()); 
   setfillstyle(0, getmaxcolor()); 
   bar(getx()-10 ,gety()-3 ,getx()+20 ,gety()+8); 
   /*---------------------------------------------------------------*//*this loop displays and moves value that is to poped from front      box of queue and take it to values box's column */ 
   delay(500); 
    while(getx()!=178) 
     { 
         setfillstyle(0, getmaxcolor()); 
         circle(a+6,b+3,12); 
         moveto(a,gety()); 
         itoa(qarr[counto],qstring,10); 
         outtext(qstring); 
         delay(10); 
         setfillstyle(0, getmaxcolor()); 
         bar(getx()-25 ,gety()-10 ,getx()+30 ,gety()+20); 
         a++; 
     } 
   /*---------------------------------------------------------------*//* this loop displays and moves value that is to poped from front       box of queue and take it to values box's row */ 
   delay(1000); 
    while(gety()!=430) 
     { 
         setfillstyle(0, getmaxcolor()); 
         circle(a+21,b+3,9); 
         moveto(178,b); 
         itoa(qarr[counto],qstring,10); 
         outtext(qstring); 
         delay(10); 
         setfillstyle(0, getmaxcolor()); 
         bar(getx()-30 ,gety()-10 ,getx()+20 ,gety()+9); 
         b++; 
     } 
   /*---------------------------------------------------------------*/// update value in box (that is poped value) 
     delay(10); 
     moveto(178,447); 
     bar(170,446,208,455); 
     counto; 
     moveto(178,447); 
     itoa(qarr[counto],qstring,10); 
     outtext(qstring); 
     counto++; 
     qy = qy - 40; 
     if(front==-1 && rear==-1  ) 
    { 
     qrow=qy=417; 
     counto=countp=0; 
    } 
   /*---------------------------------------------------------------*/ 
} 
  
Share: 


Didn't find what you were looking for? Find more on Program of Graphical Representation of Stack And Queue Or get search suggestion and latest updates.

Easy Tutor
Easy Tutor author of Program of Graphical Representation of Stack And Queue is from United States. Easy Tutor says

Hello Friends,

I am Free Lance Tutor, who helped student in completing their homework.

I have 4 Years of hands on experience on helping student in completing their homework. I also guide them in doing their final year projects.

I have share many programs on this website for everyone to use freely, if you need further assistance, than please contact me on easytutor.2ya [at the rate] gmail [dot] com

I have special discount scheme for providing tutor services. I am providing tutor service to students from various contries, currently most of my students are from United States, India, Australia, Pakistan, Germany, UK and Canada.

I am also here to expand my technical network to receive more opportunity in my career, make friends to help them in resolving their technical problem, learn and share my knowledge, If you like to be my friend, Please send me friend request.

Thanks,
Happy Programming :)

 
View All Articles

 
Please enter your Comment

  • Comment should be atleast 30 Characters.
  • Please put code inside [Code] your code [/Code].

 
No Comment Found, Be the First to post comment!