////////////////////////////////////////////////////////////////////////////
// Model MODEL2.CPP               SIMLIB/C++
//
// Ukázkový model jednoduchého obslužného střediska
//

#include "simlib.h"

// deklarace globálních objektů
Facility  Box("Linka");
Histogram Tabulka("Tabulka",0,25,20);

class Zakaznik : public Process { // třída zákazníků
  double Prichod;                 // atribut každého zákazníka
  void Behavior() {               // --- popis chování zákazníka ---
    Prichod = Time;               // čas příchodu zákazníka
    Seize(Box);                   // obsazení zařízení Box
    Wait(10);                     // obsluha
    Release(Box);                 // uvolnění
    Tabulka(Time-Prichod);        // doba obsluhy a čekání
  }
};

class Generator : public Event {  // generátor zákazníků
  void Behavior() {               // --- popis chování generátoru ---
    (new Zakaznik)->Activate();   // nový zákazník, aktivace v čase Time
    Activate(Time+Exponential(1e3/150));  // interval mezi příchody
  }
};

int main() {                 // popis experimentu s modelem
  Print(" MODEL2 - příklad SIMLIB/C++\n");
  SetOutput("model2.out");
  Init(0,1000);              // inicializace experimentu, čas bude 0..1000
  (new Generator)->Activate(); // generátor zákazníků, jeho aktivace
  Run();                     // simulace
  Box.Output();              // tisk výsledků
  Tabulka.Output();
  return 0;
}

// konec


syntax highlighted by Code2HTML, v. 0.9.1