Advertisement
ChaeYuriya

Assignment 8 : main.cpp

Nov 7th, 2024
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.17 KB | None | 0 0
  1. #include <iostream>
  2. #include "queue_vaksinasi.cpp"
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7.     Queue Q;
  8.     createQueue(Q);
  9.     ElemQ* P1 = createElemQueue("John Doe", 65, "lansia", 1);
  10.     ElemQ* P2 = createElemQueue("Alice", 30, "tenaga kesehatan", 2);
  11.     ElemQ* P3 = createElemQueue("Bob", 25, "pekerja", 3);
  12.     ElemQ* P4 = createElemQueue("Charlie", 70, "pensiunan", 4);
  13.     ElemQ* P5 = createElemQueue("David", 28, "pekerja", 5);
  14.     enqueue(Q, P1);
  15.     enqueue(Q, P2);
  16.     enqueue(Q, P3);
  17.     enqueue(Q, P4);
  18.     enqueue(Q, P5);
  19.     cout << "Isi antrean awal:" << endl;
  20.     printInfo(Q);
  21.  
  22.     // Melayani antrean
  23.     cout << "\nMelakukan pelayanan pada antrean:" << endl;
  24.     serveQueue(Q);
  25.  
  26.     // Memeriksa antrean setelah pelayanan
  27.     cout << "\nIsi antrean setelah pelayanan:" << endl;
  28.     printInfo(Q);
  29.  
  30.     // Menambahkan elemen baru untuk simulasi pengaturan ulang prioritas
  31.     ElemQ* P6 = createElemQueue("Edward", 22, "pekerja", 6);
  32.     enqueue(Q, P6);
  33.  
  34.     // Simulasi reassignQueue untuk mengatur ulang antrean ke prioritas
  35.     cout << "\nMengatur ulang antrean berdasarkan prioritas:" << endl;
  36.     reassignQueue(Q);
  37.     printInfo(Q);
  38.  
  39.     // Simulasi kondisi warga yang menunggu lebih dari 2 jam
  40.     cout << "\nMemeriksa waktu tunggu dan mengubah prioritas jika lebih dari 2 jam:" << endl;
  41.     checkWaitingTime(Q, 130); // Asumsikan waktu sekarang 130 menit dari nomor antreanpertama
  42.     printInfo(Q);
  43.  
  44.     // Menangani kondisi darurat untuk seorang warga
  45.     cout << "\nMenangani kondisi darurat untuk warga dengan nomor antrean 5:" << endl;
  46.     emergencyHandle(Q, 5);
  47.     printInfo(Q);
  48.     // Update prioritas warga setiap jam
  49.     cout << "\nMengupdate prioritas antrean setiap jam:" << endl;
  50.     updatePriority(Q);
  51.     printInfo(Q);
  52.  
  53.     // Mencari dan menghapus warga dengan nomor antrean tertentu
  54.     cout << "\nMenghapus warga dengan nomor antrean 3:" << endl;
  55.     ElemQ* removedElem = findAndRemove(Q, 3);
  56.     if (removedElem) {
  57.     cout << "Warga yang dihapus: " << info(removedElem).nama << endl;
  58.     }
  59.     printInfo(Q);
  60.  
  61.     // Mengecek ukuran queue
  62.     cout << "\nUkuran antrean saat ini: " << size(Q) << endl;
  63.     return 0;
  64. }
  65.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement