2. Prüfungsvorbereitung

Kursinhalte

  • Zeitansatz 45 Minuten

Prüfungsaufgabe: Reklamationsverwaltung

Ausgangslage:

Die Fahrradwerkstatt RadFix verwaltet Reklamationen ihrer Kunden digital. Dafür gibt es eine bestehende Codebasis, die bereits Kundendaten einliest und einfache Objekte für Reklamationen verwendet. Die Daten werden in einer JSON-Datei gespeichert. Die bisherige Anwendung erlaubt jedoch nur das Speichern, nicht aber das gezielte Auswerten der Reklamationen.

Datei: reklamation.json

[
    {
        "kundennummer": "K1001",
        "produkt": "E-Bike Akku",
        "beschreibung": "Akku lädt nicht mehr",
        "datum": "2025-05-28",
        "status": "offen"
    },
    {
        "kundennummer": "K1002",
        "produkt": "Kettenschaltung",
        "beschreibung": "Springt beim Schalten",
        "datum": "2025-05-25",
        "status": "bearbeitet"
    }
]

Bereits vorhandene Python-Datei: reklamation.py

import json

class Reklamation:
    def __init__(self, kundennummer, produkt, beschreibung, datum, status):
        self.kundennummer = kundennummer
        self.produkt = produkt
        self.beschreibung = beschreibung
        self.datum = datum
        self.status = status

def lade_reklamationen(dateipfad):
    with open(dateipfad, 'r') as datei:
        daten = json.load(datei)
        reklamationen = []
        for eintrag in daten:
            r = Reklamation(**eintrag)
            reklamationen.append(r)
        return reklamationen

Ihre Aufgabe:

Erweitern Sie das Projekt um folgende Funktionalitäten:

  1. Erweiterung der Klasse Reklamation:
    • Fügen Sie der Klasse eine Methode ist_offen() hinzu, die True zurückgibt, wenn der Status "offen" ist.
      Erstellen SIe zusätzlich eine Methode als_dict(), die das Objekt als Dictionary zurückgibt (für die JSON-Speicherung).
  2. Neue Funktion: Offene Reklamationen anzeigen
    • Erstellen Sie eine Funktion zeige_offene_reklamationen(reklamationen), die alle offenen Reklamationen auf der Konsole ausgibt – dabei soll jede Reklamation in einer Zeile im Format erscheinen:
      Kundennummer: K1001 | Produkt: E-Bike Akku | Datum: 2025-05-28
  3. Neue Reklamation hinzufügen:
    • Schreiben Sie eine Funktion neue_reklamation_hinzufuegen(dateipfad), die den Benutzer nach den folgenden Eingaben fragt: Kundennummer, Produkt, Beschreibung
    • Das Datum wird automatisch auf das aktuelle Datum gesetzt (datetime verwenden), der Status auf "offen".
    • Speichern Sie die neue Reklamation in die vorhandene JSON-Datei.

Hinweise zur Bewertung:

  • Saubere Modultrennung
  • Fehlerfreies Einlesen und Schreiben von JSON-Daten
  • Korrekte Verwendung von Klassen und Objekten
  • Funktionierende Interaktion mit der Benutzereingabe