Translate

Program Antrian

Posted: Sabtu, 14 Mei 2011 by Ajiex Estrada in Labels:
0

uses wincrt;
const max=25;
type antrian=record
nama:array[1..max] of string;
belanja:array[1..max] of longint;
depan,belakang:0..max;
end;
var Q:antrian;
namabaru,namaambil:string;
uangmasuk,masukkas:longint;
pendapatan:real;
cacah,i:byte;
lagi:boolean;
pilih:1..4;

function penuh(q:antrian):boolean;
begin
if q.belakang=max then penuh:=true else penuh:=false;
end;

function kosong(q:antrian):boolean;
begin
if q.belakang=0 then kosong:=true else kosong:=false;
end;

procedure pushq(var q:antrian;n:string;j:longint);
begin
if penuh(q) then writeln('antrian penuh')
else
begin
inc(q.belakang);
q.nama[q.belakang]:=n;
q.belanja[q.belakang]:=j;
end;
end;

procedure popq(var q:antrian);
begin
if kosong(q) then writeln('tidak ada yang mengantri di kasir')
else
begin
namaambil:=q.nama[q.depan];
masukkas:=q.belanja[q.depan];
inc(cacah);pendapatan:=pendapatan+masukkas;
writeln('yang dilayani adalah ' , namaambil , ' dengan belanja sebesar Rp',masukkas:8);
{pergeseran posisi pengantri}
for i:= 1 to q.belakang-1 do
begin q.nama[i]:=q.nama[i+1];
q.belanja[i]:=q.belanja[i+1];
end;
dec(q.belakang);
end;
end;{end procedure}

procedure cetakq(var q:antrian);
begin
if kosong(q) then writeln('tidak ada pelanggan dalam antrian')
else
begin
writeln('pelanggan yang antri saat ini ====>');
writeln;
for i:=1 to q.belakang do
writeln('posisi ',i:4,' atas nama',q.nama[i],'jumlah belanja Rp',q.belanja[i]);
end;
end;


{menu utama}
begin
lagi:=true;q.depan:=1;q.belakang:=0;
while lagi do
begin
clrscr;
writeln('KASIR TOKO BOLU ENAK');
writeln('1. Tambah Pengantri');
writeln('2. Layani Pengantri');
writeln('3. Cetak Antrian');
writeln('4. selesai, Cetak Pendapatan');
write('Pilih 1-4 ===> ');readln(pilih);
case pilih of
1:begin
write('nama pengantri =');readln(namabaru);
write('jumlah belanja =');readln(uangmasuk);
pushq ( q,namabaru,uangmasuk);
end;
2:popq(q);
3:cetakq(q);
4:begin
writeln('pelanggan ini sebanyak ',cacah:4,'orang');
writeln('pendapatan hari ini sebesar Rp',pendapatan:8:2);
writeln('Thankyou');
lagi:=false;
end;
end;
readln;
end;
end.

0 comments: