17.39
0
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>

int top,i;
char key,temp,e;
char stack[10];
void delay();

void pushanim()
{
 for(i=0;i<=17; i++)
 {
  gotoxy(22+i,7);cout<<" ";
  gotoxy(23+i,7); cout<<temp; delay();

 }
 for(i=1;i<=(14-top);i++)
 {
  delay();
  gotoxy(40,6+i); cout<<" ";
  gotoxy(40,7+i); cout<<temp;
 }
}

void popanim(char temp)
{
 for(i=1;i<=(14-top);i++)
 {
  delay();
  gotoxy(40,22-i-top); cout<<" ";
  gotoxy(40,21-i-top); cout<<temp;
 }
 for(i=1;i<=19;i++)
 {
  delay();
  gotoxy(38+i,7); cout<<" ";
  gotoxy(39+i,7); cout<<temp; delay();
 }
 gotoxy(58,7);cout<<" ";
}

void push(char e)
{
 top=top+1;
 stack[top]=e;
 pushanim();
}
void pop(char e)
{
 if(top !=0)
 {
  e=stack[top]; popanim(e);
  top=top-1;
 }
 else
 {
  gotoxy(1,7); cout<<"stack telah kosong"<<endl;
  gotoxy(1,7);
 }
}

void main()
{
   clrscr();
  cout<<"Animasi Stack"<<endl;
  cout<<"1.Push"<<endl;
  cout<<"2.Pop"<<endl;
  cout<<"3.quit"<<endl;
  //cout<<"pilih [1/2/3] ="<<endl;
  gotoxy(59,6); cout<<"=";
   gotoxy(59,8); cout<<"=";
   gotoxy(37,9); cout<<"||   ||";
  for(i=1;i<=11;i++)
  {
   gotoxy(38,10+i);
   if(i==11)
   cout<<"|___|";
   else
   cout<<"|   |";
  }
   top=0;
   do
   {
   input:
   gotoxy(1,5);
  cout<<"masukkan pilihan anda[1/2/3] : ";
   key=getche();
   if(int(key)==27 || key=='3')
   break;
   else if(key=='1')
     {
       if(top != 10)
       {
       gotoxy(1,7); cout<<"masukkan suatu huruf : ";
       cin>>temp;
            push(temp);
       gotoxy(1,7); cout<<"                    ";
       }
       else
       {
       gotoxy(1,7); cout<<"stack penuh";
            getch();
       gotoxy(1,7); cout<<" ";
     }
     }
   else if(key=='2')
       pop(temp);
   else
   goto input;
  }while(1);

 getch();
}

void delay()
{
 for(int y=1;y<100;y++)
 for(int x=1;x<100;x++)
 for(int p=1;p<100;p++)
 cout<<"";
}

0 komentar:

Posting Komentar