Das heißt: Kein Gast setzt sich einfach dahin, wo es ihm am besten gefällt, sondern die Sitzplätze werden beim Empfang zugeteilt.
Im "Java Garden" soll ein Computersystem die Zuteilung der Sitzplätze übernehmen. Das System trägt den Namen "Setzer". Dazu ist am Eingang ein Terminal installiert, das eintreffende Gruppen von Gästen begrüßt und sie nach dem Namen der Gruppe fragt. Der Name soll dazu dienen, die Gäste persönlicher anzusprechen oder z.B. individuelle Abrechnungen zu drucken (Beispiele "Fam. Becker", "Ulla und Karl", "Fachbereich 17").
Wir gehen davon aus, daß Gruppen von Gästen, die zusammen kommen auch zusammen an einem Tisch sitzen wollen und sich nicht auf mehrere Tische aufteilen lassen. Auch wollen wir berücksichtigen, daß eine Gruppe, wenn es möglich ist, einen Tisch für sich alleine haben möchte, sich aber, falls kein passender ganz freier Tisch mehr da ist zu einer anderen Gruppe dazusetzt.
Ihre Aufgabe ist die Simulation des "Setzer"-Systems im "Java Garden". Es geht also darum, das Restaurant und Gruppen von Gästen zu modellieren, das Platzverteilungsverfahren zu implementieren und das Kommen und Gehen zu Gästegruppen zu simulieren, um die Platzverteilung zu testen.
Um Ihnen den Entwurf zu erleichtern und um Ihre Lösung besser beurteilen und vergleichen zu können, schlagen wir die folgende Klassenstruktur vor. Der Vorschlag bedeutet, daß aufgeführten Attribute und Methoden auf jeden Fall vorhanden sein sollten, aber durchaus durch weitere Attribute und Methode ergänzt werden können und müssen.
class Tisch Eigenschaften: int SitzPlätze // Anzahl der Sitzplätze Konstruktion: Tisch(int SitzPlätze)
class RestaurantTisch extends Tisch Eigenschaften: int TischNummer // Nummer des Tisches int frei // Zahl der freien Plätze Gaeste Gaeste[] // Die Gästegruppen an diesem Tisch Konstruktor: RestaurantTisch(int SitzPlätze, int TischNummer)
class Restaurant Eigenschaften: String name // Der Name RestaurantTisch Tische[] // Die MaxTisch RestaurantTische Konstruktor: Restaurant(String name, int MaxTisch) Methode: void add(RestaurantTisch t) // Einrichtung des Restaurants
class Gaeste Eigenschaften: String Name // Name der Gästegruppe int Anzahl // Personenanzahl Konstruktor: Gaeste(String Name, int Anzahl)
Der "Setzer"
class Setzer Eigenschaften: Restaurant r Konstruktor: Setzer(Restaurant r) Methoden: void kommen(Gaeste g) // Eine Gruppe von Gaesten kommt void gehen(Gaeste g) // Eine Gruppe von Gaesten geht void zeigeBelegung() // Drucke Übersicht über die BelegungZur Simulation verwenden wir das folgende und ähnliche Hauptprogramme in der Klasse jg_simulation.java.
class jg_simulation { public static void main(String argv[]) { // Erzeuge das Restaurant "JavaGarden" Restaurant JavaGarden = new Restaurant("Java Garden",12); // Einrichtung des Restaurants "JavaGarden" JavaGarden.add(new RestaurantTisch(4,1)); JavaGarden.add(new RestaurantTisch(4,2)); JavaGarden.add(new RestaurantTisch(2,3)); JavaGarden.add(new RestaurantTisch(2,4)); JavaGarden.add(new RestaurantTisch(6,5)); // Unser "Setzer"-System "Robbi" Setzer Robbi = new Setzer(JavaGarden); // Ein paar Gästegruppen Gaeste beckers = new Gaeste("Fam. Becker", 4); Gaeste uuk = new Gaeste("Ulla und Karl", 2); Gaeste fb17 = new Gaeste("Fachbereich 17", 84); Gaeste schmidts = new Gaeste("Firma Schmidt", 4); // Arbeit für "Robbi" Robbi.kommen(beckers); Robbi.kommen(uuk); Robbi.kommen(fb17); Robbi.kommen(schmidts); Robbi.zeigeBelegung(); Robbi.gehen(beckers); // usw. } }Bitte schreiben Sie für die Abgabe die vier Dateien