Kamis, 01 April 2010

Kuis 4 From Aslab

//Ini Queue...
// Masi rada ca"d.. tp biarlah.. :P

#include
#include
#include

struct data{
char nama[20];
char dress[20];
int price;
int no;
struct data *next;
}*head,*tail,*curr;

void bersih()
{
int i;
for(i=0;i<25;i++)printf("\n"); no="1;" curr="(struct">nama,nama);
strcpy(curr->dress,dress);
curr->price=price;
curr->no=no;
no++;

do{
printf("Input costumer's name [3..20] : ");
scanf("%s",curr->nama);fflush(stdin);
}while(strlen(curr->nama)<3||strlen(curr->nama)>20);
do{
printf("Input dress name [3..20] : ");
scanf("%s",curr->dress);fflush(stdin);
}while(strlen(curr->dress)<3||strlen(curr->dress)>20);
do{
printf("Input dress price [$50..$999] : ");
scanf("%d",&curr->price);fflush(stdin);
}while(curr->price<50||curr->price>999);

printf("\n\n--- Success to Ad Customer into Queue List ---");

if(head==NULL)
{
head=tail=curr;
}
else
{
tail->next=curr;
tail=curr;
}
tail->next=NULL;
}

void cetak()
{
curr=head;

printf("---QUEUE VIEW---\n\n");

if(curr!=NULL)
{
printf("--------.-----------------------.---------------.------.\n");
printf("|NO\t|Costumer's name\t|dress name\t|price\t|\n");
printf("--------.-----------------------.---------------.------.\n");

while(curr!=NULL)
{
printf("|%d\t|%s\t\t\t|%s\t\t|%d\t|\n",curr->no,curr->nama,curr->dress,curr->price);
curr=curr->next;
}
printf("--------.-----------------------.---------------.------.");
}

else
{
printf("<>");
}
}

void pop()
{
curr=head;
printf("---%s Has Been Served---",curr->nama);
head=head->next;
free(curr);
curr=head;

}

void main()
{
int pilih;

do{

do{
bersih();
printf("BLUE DRESS SHOP CASHIER QUEUE\n");
printf("#############################\n\n");
printf("1. View Queue\n");
printf("2. Add Customer to Queue\n");
printf("3. Serve Customer\n");
printf("4. Exit\n");
printf("\n>>Input choise : ");
scanf("%d",&pilih);fflush(stdin);
}while(pilih<1||pilih>4);

switch(pilih)
{
case 1 : bersih();cetak();getchar();break;
case 2 : bersih();push();getchar();break;
case 3 : bersih();pop();getchar();break;
}
}while(pilih!=4);


getchar();
}

Kamis, 25 Maret 2010

Ular

// Ular yang makan huruf dari A kemudian B, dan seterusnya.
// Dibuat untuk memenuhi tugas dari Bapak Partogi.. YEAHH!! Love it..
// Tiba" waktu sakit dapet pencerahan.. haha..

#include
#include
#include
#include

int angka;
int x1=1;
int y1=1;


struct data{
int x;
int y;
int hrf;
int warna;
struct data *next,*prev;
}*head,*tail,*curr;

void delay()
{
for (int i=0;i<=50000000;i++);
}

void pushhuruf() // Memasukkan koordinat warna dan huruf kedalam linked list
{
int x;
int y;
int hrf=65;
int warna;

srand(time(NULL));

do{
printf("Masukkan angka [3...26] : ");
scanf("%d",&angka);fflush(stdin);
}while(angka<3||angka>26);

clrscr();

for(int i=1;i<=angka;i++)
{
curr=(struct data*)malloc(sizeof(struct data));
x=rand()%80+1;
y=rand()%25+1;
warna=rand()%15;

curr->x = x;
curr->y = y;
curr->hrf = hrf;
hrf++;
curr->warna = warna;

if(head==NULL)
head=tail=curr;
else{
tail->next=curr;
curr->prev=tail;
tail=curr;
}
}
head->prev=tail->next=NULL;
}

void cetak() // mencetak output huruf yang udah masuk linked list
{
curr=head;
while(curr!=NULL)
{
gotoxy(curr->x,curr->y);
textcolor(curr->warna);
cprintf("%c",curr->hrf);
curr=curr->next;
}
}

void pop() //Menghapus Data yang sudah di makan Ular
{
if(x1==head->x && y1==head->y)
{
head=head->next;
free(curr);
curr=head;
//head->prev=NULL;
}
}

void jalan() //Menjalankan ular untuk mencari koordinatnya
{
do
{
//cetak();
curr=head;
if(x1x)
{
for(int j=x1;jx;j++)
{
x1++;
gotoxy(x1,y1);
printf(">");
gotoxy(x1-1,y1);
printf(" ");
delay();
printf(" ");
cetak();
}
pop();
}
else if(x1>head->x)
{
for(int j=x1;j>head->x;j--)
{
x1--;
gotoxy(x1,y1);
printf("<");
gotoxy(x1+1,y1);
printf(" ");
delay();
printf(" ");
cetak();
}
pop();
}
if(y1y)
{
for(int k=y1;ky;k++)
{
y1++;
gotoxy(x1,y1);
printf("V");
gotoxy(x1,y1-1);
printf(" ");
delay();
printf(" ");
cetak();
}
}
else if(y1>head->y)
{
for(int k=y1;k>head->y;k--)
{

y1--;
gotoxy(x1,y1);
printf("^");
gotoxy(x1,y1+1);
printf(" ");
delay();
printf(" ");
cetak();
}
}

pop();
}while (curr!=NULL);


if(curr==NULL)
{
clrscr();
gotoxy(35,10);
printf("GAME OVER");
}
}


void main()
{
pushhuruf();
jalan();


getchar();
}