Hallo, ich bins mal wieder. Ich habe wieder mal ein paar Probleme bei einer Aufgabe... Folgend mein Abbildung eines Hotelzimmers, da ist eigentlich alles ok, die Angaben sind denke ich erfüllt. Mal abgesehen von der Methode vermieten() funktioniert alles, da bin ich mir aber auch unsicher wie ich ein Zimmer belegen soll.
Hier kommt mein richtiges Problemchen, also ich habe ein Hotelzimmer und möchte 100 Komponenten deklarieren. Das ist meine erste for Schleife. Nun soll die Zimmernr dreistellig sein, die erste Stelle ist das Stockwerk und die zweite und dritte Stelle die Zimmernr.
In der zweiten Schleife deklariere ich also die max Anzahl der Stockwerke und in der folgenden dann für jedes Stockwerk a' 20 Zimmer, ohne Zimmer 13. Die Bettenanzahl und der Preis sind feste Werte.
Es sähe dann etwa so aus: 1 Stock: 101...121 (ohne 113) etc.
Java:
public class Hotelzimmer {
int zimmernr;
int betten;
double preis;
boolean belegt;
public Hotelzimmer(int zimmernr, int betten, double preis) {
if (zimmernr >= 1 && zimmernr <= 999 && betten >= 1 && betten <= 6 && preis >= 50.0 && preis <= 300.0) {
this.zimmernr = zimmernr;
this.betten = betten;
this.preis = preis;
belegt = false;
}
}
public int getBetten() {
return betten;
}
public void setBetten(int betten) {
if (betten >= 1 && betten <= 6) {
this.betten = betten;
}
else {
return;
}
}
public boolean istBelegt() {
if (belegt) {
return true; }
else {
return false;
}
}
public void vermieten() {
this.zimmernr = true;
}
public int getZimmerNr() {
return zimmernr;
}
@Override
public String toString() {
return "Stock: " + "\nBettenanzahl: " + this.betten + "\nPreis+" + this.preis;
}
In der zweiten Schleife deklariere ich also die max Anzahl der Stockwerke und in der folgenden dann für jedes Stockwerk a' 20 Zimmer, ohne Zimmer 13. Die Bettenanzahl und der Preis sind feste Werte.
Es sähe dann etwa so aus: 1 Stock: 101...121 (ohne 113) etc.
Java:
public class HotelZimmerTest {
public static void main(String[] args) {
int stockwerk = 6;
int zimmer = 20;
Hotelzimmer[] hotelneubau_ref = new Hotelzimmer[100];
for (int i = 0; i < hotelneubau_ref.length; i++) { //100 neue Zimmer
for(int k = 1; k < stockwerk; k++) //max 5 Stockwerke
for(int j = 0; j < zimmer && j != 12; j++) //Zimmer durchnummeriert, ohne 13
hotelneubau_ref[i] = new Hotelzimmer(k+j, 2, 100.0);
}
for (int i = 0; i < hotelneubau_ref.length; i++) { //ausgabe
System.out.println(hotelneubau_ref[i]);
}
}
}