Senin, 14 Desember 2015

stak borland C++


#include <iostream.h>
#include <conio.h>
#include <stdio.h>


char tumpukan[10];
int atas, i;
char jawab, masukan, e;
void speed();

void push1()
{
for(i=0;i<=17;i++)
   {
    gotoxy(23,9);cout<<" ";
      gotoxy(24,9);cout<<masukan;speed();
   }

   for(i=1;i<=(14-atas);i++)
   {
    speed();
      gotoxy(24,9+i);cout<<" ";
      gotoxy(24,10+i);cout<<masukan;
   }
}


void pop1(char masukan)
{
for(i=1;i<=(14-atas);i++)
   {
    speed();
      gotoxy(24,25-i-atas);cout<<" ";
      gotoxy(24,24-i-atas);cout<<masukan;
   }
   for(i=1;i<=40;i++)
   {
    speed();
      gotoxy(23+i,10);cout<<" ";
      gotoxy(24+i,10);cout<<masukan;speed();
   }
   gotoxy(58,7);cout<<" ";
}

void push(char e)
{
atas=atas+1;
   tumpukan[atas]=e;
   push1();
}


void pop(char e)
{
if(atas !=0)
   {
    gotoxy(1,10);cout<<" "<<endl;
      e=tumpukan[atas];
      pop1(e);
      atas=atas-1;
   }
   else
   {
    gotoxy(20,9);cout<<"\t\tstack kosong\t\t"<<endl;
      gotoxy(1,7);
   }
}
void main()

{
clrscr();
gotoxy(30,1);cout<<"PROGRAM STACK; PUSH & POP"<<endl;
   gotoxy(10,2);for(int a=0;a<=60;a++) { cout<<"="; } cout<<endl;
   gotoxy(12,3);cout<<"tekan opsi!";    gotoxy(12,4);cout<<"(1,2,3,4)";
      gotoxy(14,6);cout<<"=>";
   for (int b=0;b<=4;b++) { gotoxy(10,3+b);cout<<"|"; }
   for (int c=0;c<=4;c++) { gotoxy(28,3+c);cout<<"|"; }
   for (int c=0;c<=4;c++) { gotoxy(71,3+c);cout<<"|"; }
   gotoxy(11,7);for (int d=0;d<=16;d++) { cout<<"_"; }
   gotoxy(29,7);for (int d=0;d<=41;d++) { cout<<"_"; }
   gotoxy(30,3);cout<<"1. --> push / masukan data"<<endl;
   gotoxy(30,4);cout<<"2. --> pop / mengambil data"<<endl;
   gotoxy(30,5);cout<<"3. --> clear / membersihkan data"<<endl;
   gotoxy(30,6);cout<<"4. --> exit / keluar"<<endl;

   clear:
    gotoxy(59,9);cout<<"-";
      gotoxy(59,12);cout<<"-";

      gotoxy(21,13);cout<<"||  ||";
      for(i=1;i<=11;i++)
      {
      gotoxy(22,13+i);
         if(i==11)
         cout<<"|____|";
         else
         cout<<"|  |";
      }

   atas=0;
do
   {
    input:
      gotoxy(18,6);jawab=getche();
      if(int(jawab)==27||jawab=='4')
      break;
      else if(jawab=='1')
      {
      if(atas!=11)
         {
      gotoxy(28,9);cout<<"<-- masukan suatu huruf  : ";
          gotoxy(24,9);cin>>masukan;
          push(masukan);
          gotoxy(1,10);cout<<" ";
      }
      else
      {
      gotoxy(20,9);cout<<"\t\tstack penuh\t\t";
          getch();
          gotoxy(1,10);cout<<" ";
         }
    }
      else if(jawab=='2')
    {
         pop(masukan);

}

      else if(jawab=='3')
      goto clear;
      else
      goto input;
   }
while(1);

getch();
}

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

sumber: ALBERTUS AGUNG RAHARJA
STMIK NUSA MANDIRI
SI

1 komentar: