telusuri

Translate

Sabtu, 14 Januari 2017

CONTOH C++ TENTANG STUCK


ya ini codingan c++ tentang stuck versi gw











#include <iostream.h>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <iomanip.h>
#define max 15
struct{
 int top;
 char data[max][99];
}Tumpukan;
void inisialisasi(){
 Tumpukan.top=-1;
  }
int isempty(){
   if(Tumpukan.top==-1)
    return 1;
   else
    return 0;
      }
int isfull(){
 if(Tumpukan.top==max-1)
    return 1;
   else
    return 0;
      }
void maaf(){
cout<<"\n\n\n\tMAAF, TUMPUKAN KOSONG !!"; }

void push(){
int push;
cout<<"\tBERAPA DATA     : ";cin>>push;
   if(push+Tumpukan.top+1>max)
   {
     cout<<"\n\n\n\tMAAF YANG ANDA PUSH AKAN LEBIH DARI MAXSIMAL STACK"; }
   else
   {   for(int x=1;x<=push;x++)
       { Tumpukan.top++;
         cout<<"data ke-"<<x<<" : ";gets(Tumpukan.data[Tumpukan.top]); }
   cout<<"\n\n\n\t"<<push<<" DATA DIMASUKAN KE STACK";  }
getch();
}

void pop(){
int pop;
  if(isempty()==1)
  maaf();
  else
  {  cout<<"\tBERAPA DATA     : ";cin>>pop;
     if(Tumpukan.top-pop<-1)
     {
        cout<<"\n\n\n\tMAAF YANG ANDA POP TIDAK BISA, KARENA TOP MINIMAL BERNILAI -1"; }
     else
     {  cout<<"\n\n\n\t"<<pop<<" DATA TERATAS TELAH DI POP !";
        Tumpukan.top=Tumpukan.top-pop; }
  }
getch();
}

void view(){
    if(isempty()==0)
    {  cout<<"\n\n\n\tDATA STACK"<<endl;
       cout<<" ============================"<<endl;
       cout<<"  INDEX  |  NAMA DATA"<<endl;
       cout<<" ============================"<<endl;
       for(int i=0;i<=Tumpukan.top;i++)
       {
       cout<<"    ";
       cout<<setiosflags(ios::left)<<setw(3)<<i;
       cout<<"  |  "<<Tumpukan.data[i]<<endl;  }
       cout<<" ============================"<<endl;  }
    else
    maaf();
getch();
}

void clear(){
  if(isempty()==1)
  maaf();
  else
  { Tumpukan.top=-1;
    cout<<"\n\n\n\tTUMPUKAN DATA TELAH DI HAPUS !!"; }
getch();
}

void tampilan(){
char kosong[5],penuh[5],aaa;
aaa=219;
cout<<"\n     STACK\n\n";
cout<<"    =======              MAXSIMAL "<<max<<" DATA\n";
for(int a=max-1;a>=0;a--)
{   cout<<" ";
    cout<<setiosflags(ios::left)<<setw(2)<<a;
    cout<<" |     | "<<endl; }
cout<<"    =======\n\n";
gotoxy(13,max+4-Tumpukan.top);cout<<"Top = "<<Tumpukan.top;
     for(int b=1;b<=Tumpukan.top+1;b++)
     {  gotoxy(6,max+5-b);printf("%c",aaa);
        gotoxy(7,max+5-b);printf("%c",aaa);
        gotoxy(8,max+5-b);printf("%c",aaa);
        gotoxy(9,max+5-b);printf("%c",aaa);
        gotoxy(10,max+5-b);printf("%c",aaa); }

  if(isempty()==1)
  { strcpy(kosong,"TRUE");  strcpy(penuh,"FALSE"); }
  else if(isfull()==1)
  { strcpy(kosong,"FALSE"); strcpy(penuh,"TRUE");  }
  else
  { strcpy(kosong,"FALSE"); strcpy(penuh,"FALSE"); }
gotoxy(25,8);cout<<"IsFull  : "<<penuh;
gotoxy(25,9);cout<<"IsEmpty : "<<kosong;
int z=Tumpukan.top+1;
gotoxy(25,11);cout<<z<<" DATA TERISI DI STACK";
}

void main(){
int pilihan;
inisialisasi();
do  // pengulangan do while
{
system("cls");
tampilan();
gotoxy(1,max+7);cout<<"\n MENU :\n  1. PUSH\n  2. POP\n  3. CLEAR\n  4. VIEW DATE\n  5. CLOSE\n";
cout<<"\n\tMASUKAN PILIHAN : ";cin>>pilihan;
if(pilihan==1)
push();
else if(pilihan==2)
pop();
else if(pilihan==3)
clear();
else if(pilihan==4)
view();
else if(pilihan==5)
{ clrscr();
  cout<<"\n\n\n\tTERIMA KASIH, TEKAN SEMBARANG TOMBOL UNTUK KELUAR";
  getch();  }
}
while(pilihan!=5);}



catatan : max tidak boleh lebih dari 38, ntr eror kwkwkwkwkkw

Tidak ada komentar:

Posting Komentar