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
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar