Kamis, 17 Maret 2011

PROGRAM ANIMASI QUEUE C++


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

char pil;
int jml;
void delay();

struct node
{
   char kar;
   node *next;
};
   node *tail;   //ekor
   node *now;
   node *head;
void buatnodebaru()
{
  tail=NULL;
  head=NULL;
}
void push(char ch)
{
 now=new node;
 if(head==NULL)
 {
   now->kar=ch;
   now->next=NULL;
   tail=now;
  head=now;

 }
 else
 {
   now->kar=ch;
   now->next=NULL;
  tail->next = now;
   tail=now;
 }
}

void enqueue()
{
 int i;
 char temp;
 gotoxy(1,6);
 cout<<"  
       ";
 gotoxy(1,8);
 cout<<"  
     ";
 gotoxy(1,6);
 cout<<"masukkan @ karakter : ";
 cin>>temp;
 gotoxy(1,6);
 cout<<"  
      ";

 push(temp);
   for(i=1;i<= 75-jml*6;i++)
   {
     gotoxy(i+1,20);cout<<" O";
     gotoxy(i,21); cout<<"=("<<now->kar<<")=";
    gotoxy(i+1,22);cout<<"| |";
    delay();
    if(i!=75-jml*6)
    {
     gotoxy(i+1,20);cout<<"  ";
        gotoxy(i,21);cout<<"      ";
       gotoxy(i+1,22);cout<<"   ";
    }

   }
}

void dequeue()
{
 if(head==NULL)
 {
  gotoxy(1,8); cout<<"antrean kosong !";
   delay();

 }
 else
 {
   jml=jml-1;
   char delete_element=head->kar;
   node *temp;
   temp=head;
   head=head->next;
   delete temp;

 for(int i=69;i<=76;i++)
 {
  gotoxy(i+1,20); cout<<" O";
  gotoxy(i,21); cout<<"=("<<delete_element<<")=";
  gotoxy(i+1,22); cout<<"| |";
  delay();
  gotoxy(i+1,20); cout<<"  ";
  gotoxy(i,21); cout<<"      ";
  gotoxy(i+1,22); cout<<"   ";
 }
 int byk=0;

 while(byk!=jml)
 {
   byk=byk+1;
  for(int i=69-byk*6;i<=75-byk*6;i++)
  {
      gotoxy(i+1,20); cout<<" O";
    gotoxy(i,21); cout<<"=("<<head->kar<<")=";
    gotoxy(i+1,22); cout<<"| |";
    delay();
      if(i!=75-byk*6)
      {
       gotoxy(i+1,20); cout<<"  ";
     gotoxy(i,21); cout<<"      ";
     gotoxy(i+1,22); cout<<"   ";
      }
  }
 }
 }
}

void input()
{
 gotoxy(1,1);cout<<"1.Enqueue";
 gotoxy(1,2);cout<<"2.Dequeue";
 gotoxy(1,3);cout<<"3.Exit";
 do
 {
   gotoxy(1,4);cout<<"masukkan pilihan anda[1/2/3] : ";
   gotoxy(32,4);cin>>pil;
   gotoxy(32,4);cout<<"  ";
   switch(pil)
   {
   case '1':
   {
     if(jml<10)
     {
       jml=jml+1;
       enqueue();
     }
     else
     {
      gotoxy(1,8); cout<<"antrean penuh !";
      delay();
      gotoxy(1,8); cout<<"     ";
     }
     break;
    }
   case '2':
   {
     dequeue();
    break;
   }
   case '3':
   {
      exit(1);
    break;
   }
  }
 }while(1);
}

void main()
{
  buatnodebaru();
  jml=0;
  clrscr();
  input();
  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<<"";
}

PROGRAM ANIMASI STACK C++

#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<<<" "; gotoxy(40,7+i); cout<<<" "; gotoxy(40,21-i-top); cout<<<" "; gotoxy(39+i,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"<<<"Animasi Stack"<<<"1.Push"<<<"2.Pop"<<<"3.quit"<<<"pilih [1/2/3] ="<<<"="; 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<<"";
}

PROGAM PERSEGI BINTANG C++

#include
#include

int main()
{
int ukuran;

do
{
cout<<"Masukkan ukuran persegi: "; cin>>ukuran;
}while(ukuran<1||ukuran>20);

cout<
for(int i=1; i<= ukuran; i++)
{
for(int j=1; j<=ukuran; j++)
{
if(i==1||j==1||i==ukuran||j==ukuran)
{
cout<<"*";
}
else
{
cout<<" ";
}
}
cout< }

getch();
return 0;
}