10-customer-list/Readme_de.md
github-classroom[bot] f12b523950
Initial commit
2024-12-10 06:58:39 +00:00

3.1 KiB

IF.03.22 POSEPR (C)

English

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 auf CustomerListEntry-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 die n Kunden mit dem höchsten Umsatz.
  • get_bottom_n_customers_revenue(): Sucht die n Kunden mit dem niedrigsten Umsatz.

Aufgaben

Implementieren Sie eine Kundenliste gemäß der oben gegebenen Spezifikation. Verwenden Sie ein ADT (Abstract Data Type) als Implementierungsmuster.

  1. Tragen Sie Ihren Namen in den Dateikopf (innerhalb eines Kommentars) ein.
  2. Implementieren Sie die TODOs in der Datei customer_list.h.
  3. Ersetzen Sie alle Rückgabetypen, die mit <type> markiert sind, durch den korrekten Rückgabetyp.
  4. Füllen Sie alle Parameterlisten, die mit <param> markiert sind, mit den zutreffenden Parametern aus. Beachten Sie, dass die Parameterliste leer sein kann.
  5. Implementieren Sie die erforderlichen Datentypen in der C-Datei.
  6. Implementieren Sie ein leeres Grundgerüst für jede Funktion.
  7. Kompilieren und führen Sie die Anwendung aus. Alle Unit-Tests sollten laufen, aber fehlschlagen.
  8. Implementieren Sie eine Funktion nach der anderen, bis alle Unit-Tests bestanden sind. Beachten Sie, dass einige Tests von mehreren Funktionen abhängen.