# automatische Passagiererfassung



## Lukases2 (6. Jan 2015)

Aufgabe 1: Karibische Flüge - Die Passagiere
Sie haben eine Junkers Ju52, genannt Tante Ju, aus dem zweiten Weltkrieg, mit der Sie zwischen
Havanna (Kuba) und Santo Domingo (Dominikanische Republik) Touristen hin und her fliegen.
Bisher werden die Passagiere mit Papier und Bleistift erfasst. Jetzt wollen Sie Ihr Unternehmen
modernisieren und mit Hilfe eines Programms die Passagiere erfassen.
a) Schreiben Sie eine Klasse Passagier, diese soll die nicht-öffentlichen Attribute Name,
Vorname und Alter haben.
b) Die Klasse soll öffentliche Methoden zur Ein- und Ausgabe von Namen, Vornamen und
Alter zur Verfügung stellen.
Aufgabe 2: Karibische Flüge - Die Reservierung
Da die Buchungen bisher auf Papier vorgenommen wurden, wollen Sie es jetzt endlich
automatisieren, das heißt ein neues Buchungssystem programmieren.
a) Schreiben Sie eine Klasse Ju52 mit folgenden nicht-öffentlichen Attributen: Plätze und
Notsitze. Überlegen Sie sich, welchen Datentyp Sie hier benutzen können. Die Anzahl der
Plätze und Notsitze ist Ihnen überlassen.
b) Schreiben Sie öffentliche Methoden für folgende Funktionen: Platz reservieren, Ausgabe der
freien Plätze und Ausgabe der reservierten Plätze. Bei der Reservierung soll jeder Passagier
eine eindeutige Platznummer erhalten, danach kann der dazugehörige Sitz nicht mehr neu
vergeben werden.
c) Wenn alle Plätze reserviert sind, dann ermöglichen Sie auch die Reservierung der Notsitze.
d) Wenn alle Plätze und die Notsitze reserviert sind, soll eine öffentliche Methode den
gesamten Reservierungsplan ausgeben, dazu gehören Flugnummer, Flugtag und Uhrzeit des
Fluges sowie Platznummer, Vornamen und Nachnamen des Passagiers, zum Beispiel:
CA0871, 24.11.2011, 10:00 Uhr
---------------------------------------
Platz 1: Tobias Tobenühfen
Platz 2: Indolenz Schreikan
…
Notsitz 1: Rudi Rettdich
…

Ansatz:
Ich hänge bei 2b). Bis jetzt habe ich:

```
package karfpack;

public class Passagier {
	
	private String name;
	private String prename;
	private String age;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPrename() {
		return prename;
	}
	public void setPrename(String prename) {
		this.prename = prename;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
}
```


```
package karfpack;

public class Ju52 {
	
	private String seat;
	private String dickey;
	
	
}
```

Der Einfachheit halber würde ich gerne nunächst nur einen Seat und einen Dickey nehmen, später kann man ja bestimmt auch Arrays dafür verwenden. 

Jetzt weiß ich nicht, wie ich die Methode 

```
public static void assignSeat(){
		
	}
```
weiter scgreiben soll. Meine Idee ist, den String "seat" zunächst auf "frei" zu setzen, um in dann bei Verwendung der Methode auf "besetzt" umstellen zu können. Wie kann ich das machen?


----------



## Lukases2 (6. Jan 2015)

Folgendes habe ich geändert:


```
package karfpack;

public class Ju52 {
	
	private String seat;
	private String dickey;
	
	public String getStatusSeat(){
		return seat;
	}
	
	public void setStatusSeatAssigned(){
		this.seat = "besetzt";
	}
	
	public void setStatusSeatFree(){
		this.seat = "frei";
	}
	
	public String getStatusDickey(){
		return dickey;
	}
	
	public void setStatusDickeyAssigned(){
		this.dickey = "besetzt";
	}
	
	public void setStatusDickeyFree(){
		this.dickey = "frei";
	}
}
```

Jetzt kann ich den Status des Sitzes ändern. Jetzt möchte ich noch Personen zuweisen können.


----------



## VictorRomeo (6. Jan 2015)

Ich würde für die Sitze ne eigene Klasse machen: String platzName; boolean besetzt;


----------



## Lukases2 (6. Jan 2015)

Habe ich auch schon überlegt, aber Plätze besetzen/freigeben kann ich ja jetzt schon. Nur wie bekomme ich jetzt Leute auf die Plätze? In der Ju52-Klasse kann ich ja nichtmal auf die Passagierklasse  und deren Methoden zugreifen ...


----------



## Saheeda (6. Jan 2015)

Wie platzierst du mehrere Passagiere? Wenn "seats" ein string ist, hast du genau einen Platz pro Flug.


----------



## Lukases2 (6. Jan 2015)

> Wenn "seats" ein string ist, hast du genau einen Platz pro Flug.


Habe ich mir der einfachheit halber auch so überlegt. 

Mein Problem ist, dass nicht nicht weiß, wie ich eine Methode implementieren kann, die einem Passagier einen Sitz zuweist. Der erste Schritt dazu ist sicher 


```
public void assignSeat{
                        setStatusSeatAssigned();
}
```
.

Darüber hinaus soll ja nun der Name eines Passagiers dem "Seat" zugeordnet werden. Nur wie mache ich das?


----------



## Saheeda (6. Jan 2015)

ViktorRomeo hat dir schon den richtigen Tipp gegeben.


```
class TanteJu {
	Seat[] seats = new Seat[200];

	public TanteJu() {
		for (int i = 0; i < seats.length; i++) {
			seats[i] = new Seat();
		}
	}

	public void assignSeat(Passenger p) {

		for (int i = 0; i < seats.length; i++) {
			if (seats[i].isReserved == false) {
				seats[i].passengerNamer = p.name;
                                return;
			}
		}
	}

}

class Seat {

	public String passengerNamer;

	public boolean isReserved;

	public void setPassengerName(String name) {
		this.passengerNamer = name;
		this.isReserved = true;
	}
}

class Passenger {
	public String name;

}
```


----------

