Universität Paderborn - Home Universität Paderborn
Die Universität der Informationsgesellschaft

Grundlagen der Programmierung 2 SS 2005 - Datei Restaurant.java

import java.util.Random;

public class Restaurant
{
   Restaurant (int anzTische, int minTisch, int maxTisch)
   {
      // Restaurant mit anzTische Tischen erzeugen, Größe für jeden
      // Tisch zufällig zwischen minTisch und maxTisch wählen
      
      rand = new Random();
      tische = new Tisch[anzTische];
      for (int i = 0; i < tische.length; i++)
      {
         int stühle = zufall(minTisch, maxTisch);
         tische[i] = new Tisch(stühle);
         if (stühle > größterTisch) größterTisch = stühle;
      }
   }

   // weitere Methoden fehlen ...

   void simuliere (int anzGruppen, int minZeit, int maxZeit, int maxPause)
   {
      // Besuch von anzGruppen Besuchergruppen im Restaurant simulieren
      // jede Gruppe benötigt zwischen minZeit und maxZeit Zeit zum Essen
      // spätestens alle maxPause Zeiteinheiten kommt eine neue Gruppe
      // keine Gruppe ist größer als der größte Tisch im Restaurant

      for (int i = 1; i <= anzGruppen; i++)
      {
         BesucherGruppe g = new BesucherGruppe(this,
                                               zufall(1, größterTisch),
                                               zufall(minZeit, maxZeit));
         g.start();
         try { Thread.sleep(zufall(1, maxPause)); }
         catch (InterruptedException e) {};
      }
   }

   private int zufall(int min, int max)
   {
      // erzeuge Zufallszahl zwischen min und max (jeweils einschließlich)
      return rand.nextInt(max - min + 1) + min;
   }

   public static void main (String[] args)
   {
      // Hauptprogramm zum Testen:
      // simuliert ein Restaurant mit 6 Tischen für 2 bis 10 Personen
      // Simulation umfasst Besuch von 40 Gruppen im Restaurant

      Restaurant r = new Restaurant(6, 2, 10);
      r.simuliere(40,1000,20000,2000);
   }

   private Tisch[] tische;        // uns interessieren nur die Tische
   private int größterTisch = 0;  // max. mögliche Gruppengröße
   private Random rand;           // zur Erzeugung von Zufallszahlen
}

Generiert mit Camelot | Probleme mit Camelot? | Geändert am: 27.05.2005