Also ich denk mal, man würde ein int-Array (Zimmerbelegung) mit zwei Dimensionen benötigen, nämlich Stockwerkzahl/ZimmerProStock um dort die Zahl der Gäste für jedes Zimmer zu speichern.
Die eingetragene Anzahl wird dann zunächst automatisch 0 sein.
In einem weiteren Array, einem dreidimensionales String Array (NamensArray), das in den Dimensionen mit Stockwerkzahl/ZimmerProStock/MaximaleGästeZahlProZimmer festgelegt würde, könnte man dann ggf. Namen der Gäste eintragen.
Wenn ein Zimmer belegt wird, wäre also ein Eintrag im int-Array und bis zu vier Einträge im String-Array erforderlich.
Zu beachten wäre, dass das Zimmer nicht überbelegt wird.
Wenn ein Zimmer frei wird, wäre im int-Array für das entsprechende Zimmer nur eine 0 einzutragen.
Bei einer Abfrage der Belegung würde man zunächst im int-Array die Zahl der Gäste abfragen und die entsprechende Anzahl an Namen aus dem NamensArray lesen.
*** Edit ***
etwa so
[spoiler]```import java.util.Scanner;
public class Hotel {
private int[][] belegung = new int[4][6];
private String[][][] namen = new String[4][6][4];
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
Hotel hotel = new Hotel();
hotel.menu();
}
private void menu(){
boolean ok;
int eingabe;
do {
do {
System.out.println("<1> Einchecken <2> Auschecken <3> Abfrage <4> Beenden");
eingabe = sc.nextInt();sc.nextLine();
ok = (eingabe > 0 && eingabe <5);
if (!ok) {
System.out.println("Eingabe wiederholen");
}
} while (!ok);
switch (eingabe){
case 1: einchecken(); break;
case 2: auschecken(); break;
case 3: abfrage(); break;
}
} while (eingabe<4);
}
private void einchecken(){
System.out.println("Wieviele Personen");
int anzahl = sc.nextInt();sc.nextLine();
if (anzahl < 0 || anzahl >4){
System.out.println("So goes it not");
return;
}
int zimmernr = freiesZimmer();
if (zimmernr == 0){
System.out.println("Du kommst hier nicht rein");
}
else{
System.out.println("Ihre Zimmernummer ist "+zimmernr);
}
System.out.println("Ihre Namen bitte :");
int etage = zimmernr/10 - 1;
int zimmer = zimmernr % 10 -1;
belegung[etage][zimmer]=anzahl;
for (int i = 0; i<anzahl;i++){
namen[etage][zimmer]**=sc.nextLine();
}
}
private int freiesZimmer(){
int zimmer=0;
for (int i=0;i<belegung.length;i++){
for (int j=0;i<belegung**.length;j++){
if (belegung**[j]==0) {
zimmer = (i+1)*10+j+1;
break;
}
}
if (zimmer>0) break;
}
return zimmer;
}
private void auschecken(){
System.out.println("Zimmernummer");
int zimmernr = sc.nextInt();sc.nextLine();
int etage = zimmernr/10 - 1;
int zimmer = zimmernr % 10 -1;
if ((etage >= 0) && (zimmer >= 0) && (etage < belegung.length) && (zimmer < belegung[0].length)){
int personen = belegung[etage][zimmer];
belegung[etage][zimmer]=0;
if (personen > 0){
for (int i=0;i<personen;i++){
System.out.println("Aufwiedersehen "+namen[etage][zimmer]**);
}
}
else{
System.out.println("Das würd ich mir nochmal überlegen");
}
}
else{
System.out.println("Das ist wohl ein Jux ?");
}
}
private void abfrage(){
System.out.println("Zimmernummer");
int zimmernr = sc.nextInt();sc.nextLine();
int etage = zimmernr/10 - 1;
int zimmer = zimmernr % 10 -1;
if ((etage >= 0) && (zimmer >= 0) && (etage < belegung.length) && (zimmer < belegung[0].length)){
int personen = belegung[etage][zimmer];
if (personen > 0){
System.out.printf("Das Zimmer ist mit %s Person(en) belegt%n",personen);
for (int i=0;i<personen;i++){
System.out.println(namen[etage][zimmer]**);
}
}
else{
System.out.println("Das Zimmer ist frei");
}
}
else{
System.out.println("Jetzt bist du schon soo lange hier und kennst die Zimmernummern nicht");
}
}
}```[/spoiler]