Aufgabe Vorschlag AJ - Aufgabe 3 · Abitur Hessen Informatik LK 2022

Thema: Dynamische Datenstrukturen und Rekursion · Aus der Prüfung LK (2022)

Aufgabenstellung

Ticketsystem

In einem Möbelhaus gibt es für Warenausgabe und Reklamation ein gemeinsames Ticketsystem. Die Kunden müssen beim Betreten des Servicebereichs einen von zwei Knöpfen drücken, um entweder ihr Anliegen „Warenausgabe“ (Servicetyp: w) oder „Reklamation“ (Servicetyp: r) anzumelden. Sie erhalten dann ein Ticket mit eindeutiger Ticketnummer. Im Falle einer „Warenausgabe“ muss der Kunde zusätzlich noch den Kassenbon unter einen Barcode-Scanner halten. Eine Servicekraft kann dadurch die passenden Waren für die Abholung bereitstellen.

Die Kunden werden anhand ihrer Ticketnummer für die Bearbeitung ihres Tickets aufgerufen.

Material 1

Die Klassen Ticketsystem, Ticket und Kassenbon

Material 2

Die Methode bearbeiteErstesTicket()

01 public void bearbeiteErstesTicket() {

02 if (Erstes == null)

03 System.out.println("Liste ist leer");

04 else {

05 System.out.println("Nummer: " + Erstes.getNummer());

06 System.out.print("Typ: ");

07 if (Erstes.getTyp() == 'r') {

08 System.out.println("Reklamation");

09 } else {

10 System.out.println("Warenausgabe");

11 Kassenbon einKassenbon = Erstes.getKassenbon();

12 for (int i = 0; i < einKassenbon.getArtikelnummern().length; i++) {

13 System.out.println(einKassenbon.getArtikelnummern()[i]);

14 }

15 }

16 Erstes = Erstes.getNächstes();

17 }

18 }

Material 3

Die Methoden gibNächsteArtikelnummernAus() und gibArtikelnummernAus(...)

01 public void gibNächsteArtikelnummernAus() {

02 gibArtikelnummernAus(Erstes);

03 }

04

05 public void gibArtikelnummernAus(Ticket einTicket) {

06 // siehe Aufgabe 3

07 }

Material 4

UML-Diagramm der abstrakten Klasse TicketA

Aufgabe 3

Die Abteilungsleiterin des Servicebereiches möchte die Bearbeitung der Tickets optimieren. Dazu soll das nächste Ticket vom Typ „Warenausgabe“ in der Warteschlange gesucht werden und es sollen alle Artikelnummern auf der Konsole ausgegeben werden, damit ein Servicemitarbeiter die Artikel schon bereitstellen kann.

Liegt im Moment kein Ticket mit Warenausgabe vor, soll eine entsprechende Meldung erscheinen.

Implementieren Sie eine rekursive Methode gibArtikelnummernAus(Ticket einTicket) der Klasse Ticketsystem, die diese Aufgabe erledigt. Beachten Sie dazu Material 3.

Material 3

Die Methoden gibNächsteArtikelnummernAus() und gibArtikelnummernAus(...)

01 public void gibNächsteArtikelnummernAus() {

02 gibArtikelnummernAus(Erstes);

03 }

04

05 public void gibArtikelnummernAus(Ticket einTicket) {

06 // siehe Aufgabe 3

07 }

Aufgabenstellung: Aufgabe Vorschlag AJ - Aufgabe 3 · Abitur Hessen Informatik LK 2022

Lösung

Nach den offiziellen Korrekturhinweisen

Implementieren Sie eine rekursive Methode gibArtikelnummernAus(Ticket einTicket) der Klasse Ticketsystem, die diese Aufgabe erledigt. Beachten Sie dazu Material 3.

Lösung: ```java public void gibArtikelnummernAus(Ticket einTicket) { if (einTicket == null) { System.out.println("Keine Artikel bereitzustellen"); } else { if (einTicket.getTyp() == 'r') { gibArtikelnummernAus(einTicket.getNächstes()); } else { Kassenbon einKassenbon = einTicket.getKassenbon(); for (int i=0; i < einKassenbon.getArtikelnummern().length; i++) { System.out.println(einKassenbon.getArtikelnummern()[i]); } } } } ```

Die ausführliche Erklärung Schritt für Schritt (mit KI) gibt es mit Premium. Premium

Löse sie direkt hier: automatische Korrektur, Hinweise und Lösung Schritt für Schritt.

‹ Aufgabe Vorschlag AJ - Aufgabe 2 · LK 2022 · Aufgabe Vorschlag AJ - Aufgabe 4 · LK 2022 ›

Mehr Aufgaben zu Dynamische Datenstrukturen und Rekursion