3.1 KiB
IF.03.22 POSEPR (C)
Siehe auch ./html/index.html
Aufgabe: Kundenliste
Einführung
Die Aufgabe besteht darin, eine Kundenliste zu implementieren. Der Fokus liegt auf Verwaltungsfunktionen (Initialisieren, Hinzufügen von Kunden zur Liste) und einfachen Überblicksfunktionen (z. B. Länge der Liste, Auflisten von Kunden basierend auf Umsatzgrenzen).
Datenstrukturen
Dieser Abschnitt bietet eine kurze Einführung in die erforderlichen Datenstrukturen.
CustomerList
Die CustomerList kann maximal 13 Einträge enthalten. Sie ist eine Struktur mit den folgenden Feldern:
length(int): Gibt die Anzahl der Einträge in der Liste an.customers(Array von Zeigern aufCustomerListEntry-Strukturen): Enthält die Kundeneinträge (siehe unten).
CustomerListEntry
Ein CustomerListEntry enthält alle Daten, die zu einem Kunden gehören, einschließlich:
id(int): Die eindeutige Kundennummer.customer_name(const char):* Ein Zeiger auf den Namen des Kunden.revenue(int): Der Umsatz, der dem Kunden zugeordnet ist, gemessen in €1000.
Funktionen
Die folgenden Funktionen sollen implementiert werden. Rückgabewerte und Parameter werden in dieser Liste nicht beschrieben. Eine detailliertere Beschreibung jeder Funktion findet sich in der API-Dokumentation über den Funktionsprototypen.
init_customer_list(): Initialisiert die Liste, indem die Anzahl der Einträge auf 0 gesetzt wird.get_length(): Gibt die Anzahl der Einträge in der Liste zurück.add_entry(): Fügt der Liste einen einzelnen Eintrag hinzu.add_entries(): Fügt der Liste mehrere Einträge hinzu.get_customer_with_id(): Sucht einen Kunden mit einer bestimmten ID.get_customers_with_revenue(): Sucht Kunden innerhalb eines angegebenen Umsatzbereichs.get_customer_with_highest_revenue(): Sucht den Kunden mit dem höchsten Umsatz.get_customer_with_lowest_revenue(): Sucht den Kunden mit dem niedrigsten Umsatz.get_top_n_customers_revenue(): Sucht dienKunden mit dem höchsten Umsatz.get_bottom_n_customers_revenue(): Sucht dienKunden mit dem niedrigsten Umsatz.
Aufgaben
Implementieren Sie eine Kundenliste gemäß der oben gegebenen Spezifikation. Verwenden Sie ein ADT (Abstract Data Type) als Implementierungsmuster.
- Tragen Sie Ihren Namen in den Dateikopf (innerhalb eines Kommentars) ein.
- Implementieren Sie die TODOs in der Datei
customer_list.h. - Ersetzen Sie alle Rückgabetypen, die mit <type> markiert sind, durch den korrekten Rückgabetyp.
- Füllen Sie alle Parameterlisten, die mit <param> markiert sind, mit den zutreffenden Parametern aus. Beachten Sie, dass die Parameterliste leer sein kann.
- Implementieren Sie die erforderlichen Datentypen in der C-Datei.
- Implementieren Sie ein leeres Grundgerüst für jede Funktion.
- Kompilieren und führen Sie die Anwendung aus. Alle Unit-Tests sollten laufen, aber fehlschlagen.
- Implementieren Sie eine Funktion nach der anderen, bis alle Unit-Tests bestanden sind. Beachten Sie, dass einige Tests von mehreren Funktionen abhängen.