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


