file header.h
#include#include #include #include #define maxEl 15 typedef int address; typedef char infotype; typedef struct { char nama[50]; int jenisTiket; int studio; int noLoket; }Loket; typedef struct { Loket L[maxEl]; address Head; address Tail; }Queue; void CreateEmpty(Queue *Q); int IsEmpty(Queue Q); int IsFull(Queue Q); int IsOneElmt(Queue Q); void Add(Queue *Q,Loket L); //void Del(Queue *Q); void PrintQueue(Queue Q); void cekSisaTiket(Queue Q); int cekAntrian(Queue Q);
file source.c
#include "header.h"
void CreateEmpty(Queue *Q)
{
(*Q).Head=(*Q).Tail=-1;
}
int IsEmpty(Queue Q)
{
return (Q.Head==-1 &&Q.Tail==-1);
}
int IsFull(Queue Q)
{
return ((Q.HeadQ.Tail && Q.Head-Q.Tail==1));
}
int IsOneElmt(Queue Q)
{
return (Q.Head==Q.Tail && Q.Head!=-1);
}
void Add(Queue *Q,Loket L)
{
if(!IsFull(*Q))
{
if(IsEmpty(*Q))
{
(*Q).Head=(*Q).Tail=0;
strcpy((*Q).L[(*Q).Tail].nama,L.nama);
(*Q).L[(*Q).Tail].jenisTiket=L.jenisTiket;
(*Q).L[(*Q).Tail].noLoket=L.noLoket;
(*Q).L[(*Q).Tail].studio=L.studio;
}
else
{
if((*Q).Tail==maxEl-1)
(*Q).Tail=0;
else
(*Q).Tail++;
strcpy((*Q).L[(*Q).Tail].nama,L.nama);
(*Q).L[(*Q).Tail].jenisTiket=L.jenisTiket;
(*Q).L[(*Q).Tail].noLoket=L.noLoket;
(*Q).L[(*Q).Tail].studio=L.studio;;
}
}
}
/*void Del(Queue *Q)
{
infotype temp=(*Q).T[(*Q).Head];
if(!IsEmpty(*Q))
{
if(IsOneElmt(*Q))
CreateEmpty(&(*Q));
else
{
if((*Q).Head==maxEl-1)
(*Q).Head=0;
else
(*Q).Head++;
}
printf("\nElemen yang dihapus : %c",temp);
}
else
printf("\nAntrian Kosong\n");
}
*/
void PrintQueue(Queue Q)
{
address i;
if(Q.Head<=Q.Tail)
{
for (i=Q.Head;i<=Q.Tail;i++)
{
printf("\n Nama\t\t\t:%s",Q.L[i].nama);
printf("\n Jenis tiket\t\t:%d",Q.L[i].jenisTiket);
if(Q.L[i].jenisTiket==1)
{
printf("\n Jam tayang\t\t:10.00-13.00");
}
else if(Q.L[i].jenisTiket==2)
{
printf("\n Jam tayang\t\t:13.15-15.15");
}
else if(Q.L[i].jenisTiket==3)
{
printf("\n Jam tayang\t\t:15.30-18.30");
}
printf("\n Studio\t\t\t:%d",Q.L[i].studio);
}
}
else
{
for(i=Q.Head;i<=maxEl-1;i++)
{
printf("\n Nama\t\t\t:%s",Q.L[i].nama);
printf("\n Jenis tiket\t\t:%d",Q.L[i].jenisTiket);
if(Q.L[i].jenisTiket==1)
{
printf("\n Jam tayang\t\t:10.00-13.00");
}
else if(Q.L[i].jenisTiket==2)
{
printf("\n Jam tayang\t\t:13.15-15.15");
}
else if(Q.L[i].jenisTiket==3)
{
printf("\n Jam tayang\t\t:15.30-18.30");
}
printf("\n Studio\t\t\t:%d",Q.L[i].studio);
}
for (i=0;i<=Q.Tail;i++)
{
printf("\n Nama\t\t\t:%s",Q.L[i].nama);
printf("\n Jenis tiket\t\t:%d",Q.L[i].jenisTiket);
if(Q.L[i].jenisTiket==1)
{
printf("\n Jam tayang\t\t:10.00-13.00");
}
else if(Q.L[i].jenisTiket==2)
{
printf("\n Jam tayang\t\t:13.15-15.15");
}
else if(Q.L[i].jenisTiket==3)
{
printf("\n Jam tayang\t\t:15.30-18.30");
}
printf("\n Studio\t\t\t:%d",Q.L[i].studio);
}
}
}
void cekSisaTiket(Queue Q)
{
address i;
int t1,t2,t3;
t1=0;
t2=0;
t3=0;
if(Q.Head<=Q.Tail)
{
for (i=Q.Head;i<=Q.Tail;i++)
{
if(Q.L[i].jenisTiket==1)
t1++;
else if(Q.L[i].jenisTiket==2)
t2++;
else if (Q.L[i].jenisTiket==3)
t3++;
}
}
else
{
for(i=Q.Head;i<=maxEl-1;i++)
{
if(Q.L[i].jenisTiket==1)
t1++;
else if(Q.L[i].jenisTiket==2)
t2++;
else if (Q.L[i].jenisTiket==3)
t3++;
}
for (i=0;i<=Q.Tail;i++)
{
if(Q.L[i].jenisTiket==1)
t1++;
else if(Q.L[i].jenisTiket==2)
t2++;
else if (Q.L[i].jenisTiket==3)
t3++;
}
}
printf("Sisa tiket jenis 1 : %d\n",20-t1);
printf("Sisa tiket jenis 2 : %d\n",20-t2);
printf("Sisa tiket jenis 3 : %d\n",20-t3);
}
int cekAntrian(Queue Q)
{
address i;
int a1;
a1=0;
if(Q.Head<=Q.Tail)
{
for (i=Q.Head;i<=Q.Tail;i++)
{
a1++;
}
}
else
{
for(i=Q.Head;i<=maxEl-1;i++)
{
a1++;
}
for (i=0;i<=Q.Tail;i++)
{
a1++;
}
}
return a1++;
} file main.c
#include "header.h"
void main()
{
Queue Q,Q2;
Loket L;
int pil,a,b;
strcpy(L.nama,"");
L.jenisTiket=0;
L.noLoket=0;
L.studio=0;
CreateEmpty(&Q);
CreateEmpty(&Q2);
do
{
system ("cls");
puts("\nMenu\n");
printf("1.Add Queue\n");
printf("2.Sisa Tiket\n");
printf("3.Lihat Antrian\n");
printf("4.Print All\n");
printf("0.Keluar\n");
printf("Masukkan pilihan :\n");
pil=getch();
switch(pil)
{
case '1':
printf("Masukkan nama :");
scanf("%s",&L.nama);
printf("Masukkan no Loket :");
scanf("%d",&L.noLoket);
printf("Masukkan jenis tiket :");
scanf("%d",&L.jenisTiket);
L.studio=L.noLoket;
if(L.noLoket==1)
Add(&Q,L);
else
Add(&Q2,L);
getch();
break;
case '2' :
printf("\n========Sisa tiket Loket 1=========\n");
cekSisaTiket(Q);
printf("\n========Sisa tiket Loket 2=========\n");
cekSisaTiket(Q2);
getch();
break;
case '3':
a=cekAntrian(Q);
b=cekAntrian(Q2);
printf("\nJumlah Antrian Loket 1= %d,sisa antrian =%d\n",a,maxEl-a);
printf("\nJumlah Antrian Loket 2= %d,sisa antrian =%d\n",b,maxEl-b);
getch();
break;
case '4':
printf("Isi dari Antrian :");
printf("\nData Loket 1\n\n");
PrintQueue(Q);
printf("\nData Loket 2\n\n");
PrintQueue(Q2);
getch();
break;
}
}while (pil!='0');
}
Tidak ada komentar:
Posting Komentar