Aufgabe Vorschlag B - 1.4 · Abitur Hessen Praktische Informatik LK 2022

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

Aufgabenstellung

Material 1

1.4 Implementieren Sie die Klassen Konto und Buchung aus Material 1 ohne get- und set-Methoden.

Hinweise: Der PIN eines neuen Konto-Objekts wird mithilfe der statischen Methode generierePin() der Klasse EBVerwaltung erzeugt. Die Methode zeigeBuchungen() der Klasse Konto generiert einen String in Form der Umsatzanzeige in Material 2. Die Methoden einzahlen() und ueberweisen() erzeugen nach erfolgreicher Ausführung der Operation jeweils ein Buchungsobjekt, das als neueste in der verketteten Liste eingefügt wird. Eine Überweisung wird nur ausgeführt, wenn das Konto dadurch nicht überzogen wird. Die Methode sucheBuchungen() durchsucht die Buchungstexte nach der übergebenen Zeichenfolge und gibt die gefundenen Buchungsobjekte als Liste zurück. Die toString()-Methode der Klasse Buchung generiert eine Zeichenkette mit den Buchungsdaten gemäß der Umsatzanzeige in Material 2. Die Dokumentationen der Klassen Date, List und String sind in Material 3 zu finden.

Material 2: Beispiel Buchungsanzeige

Material 3: Klassendokumentationen

a)

b)

Aufgabenstellung: Aufgabe Vorschlag B - 1.4 · Abitur Hessen Praktische Informatik LK 2022

Lösung

Nach den offiziellen Korrekturhinweisen

Implementierung der Klasse Konto

Lösung: ```java public class Konto { private String iban; private int pin; private double kontostand; private Buchung neueste; public Konto(String iban) { this.iban = iban; pin = EBVerwaltung.generierePin(); kontostand = 0; neueste = null; } public boolean login(int pin) { return this.pin == pin; } public void einzahlen(String text, double betrag) { kontostand += betrag; hinzufuegenBuchung(new Buchung(text, betrag)); } public boolean ueberweisen(Konto empfaenger, String text, double betrag) { boolean ok = false; if (betrag <= kontostand) { empfaenger.einzahlen(text, betrag); kontostand -= betrag; hinzufuegenBuchung(new Buchung(text, (betrag * -1))); ok = true; } return ok; } private void hinzufuegenBuchung(Buchung b) { b.setVorherige(neueste); neueste = b; } public String zeigeBuchungen() { String s = "Konto IBAN\t" + iban + "\tKontostand\t" + kontostand + " EUR\n" + "Buchungstag\tBuchungstext\tBetrag in EUR\n"; Buchung b = neueste; while (b != null) { s += b.toString() + "\n"; b = b.getVorherige(); } return s; } public List<Buchung> sucheBuchungen(String begriff) { List<Buchung> gesuchte = new List<>(); Buchung b = neueste; while (b != null) { if (b.getText().contains(begriff)) { gesuchte.add(b); } b = b.getVorherige(); } return gesuchte; } } ```

Implementierung der Klasse Buchung

Lösung: ```java public class Buchung { private Date buTag; private String text; private double betrag; private Buchung vorherige; public Buchung(String text, double betrag) { this.buTag = new Date(); this.text = text; this.betrag = betrag; } public String toString() { String s = buTag.toString() + "\t" + text + "\t" + betrag; return s; } } ```

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 C - 1 · LK 2022 ›

Mehr Aufgaben zu Dynamische Datenstrukturen