////////////////////////////////////////////////////////////////////////////
// Model MODEL3.CPP               SIMLIB/C++
//
// Ukázkový model obslužného střediska s 5 místy
//

#include "simlib.h"

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

class Zakaznik : public Process { // třída zákazníků
  double Prichod;                 // atribut každého zákazníka
  int kolik;
  void Behavior() {               // --- popis chování zákazníka ---
    Prichod = Time;               // čas příchodu zákazníka
    kolik = 1 + int(3*Random());  // celé číslo 1 .. 3
    Enter(Box,kolik);             // obsazení zařízení
    Wait(10);                     // obsluha
    Leave(Box,kolik);             // uvolnění
    Tabulka(Time-Prichod);        // doba obsluhy a čekání
  }
  public: Zakaznik() { Activate(); } // konstruktor aktivuje
}; // Zakaznik

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

int main() {
  Print(" MODEL3 - test SIMLIB\n");
  SetOutput("model3.out");
  Init(0,1000);              // inicializace experimentu, čas bude 0..1000
  new Generator;             // generátor zákazníků
  Run();                     // simulace
  Box.Output();              // tisk výsledků
  Tabulka.Output();
  return 0;
}

// konec


syntax highlighted by Code2HTML, v. 0.9.1