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