/** @file mainpage.h * * @brief Beschreibung der Aufgabe Customer List. */ /** @mainpage Customer List * * @author Peter Bauer, Stefan Schraml * * German variant below * * @section intro Introduction * Your task is to implement a customer list. The focus is on administrative functions * (initializing, adding customers to the list) and simple overview functions * (list length, listing customers with specific revenues). * * @section datastructures Data Structures * @subsection CustomerList * The `CustomerList` has a maximum of 13 entries. * The `CustomerList` is a struct with the following fields: * - `length` (int): The number of entries in the list. * - `customers` (array of pointers to `struct CustomerListEntry`): see below. * * @subsection CustomerListEntry * A `CustomerListEntry` contains all data related to a customer, including: * - `id` (int): The unique customer ID. * - `customer_name` (const pointer to a char (const char* customer_name)): The name of the customer. * - `revenue` (int): The revenue generated with the customer, measured in €1000. * * @section Functions * - `init_customer_list()`: Sets the number of entries to 0. * - `get_length()`: Returns the number of entries in the list. * - `create_customer()`: Creates a new customer. * - `add_customer()`: Adds a single entry to the list. * - `add_customers()`: Adds multiple entries to the list. * - `get_customer_with_index()`: Retrieves the customer at a specific index in the list. * - `get_customer_with_id()`: Searches for a customer with a specific ID. * - `get_customers_with_revenue()`: Finds customers within specific revenue bounds. * - `get_customer_with_highest_revenue()`: Finds the customer with the highest revenue. * - `get_customer_with_lowest_revenue()`: Finds the customer with the lowest revenue. * - `get_top_n_customers_revenue()`: Finds the top `n` customers with the highest revenue. * - `get_bottom_n_customers_revenue()`: Finds the bottom `n` customers with the lowest revenue. * - `get_customer_id()`: Retrieves the ID of a customer. * * * @section intro_de Einführung * Sie haben die Aufgabe eine Kundenliste zu implementieren. Wir beschränken uns auf Verwaltungsfunktionen * (Initialisieren, Kunden in die Liste einzutragen) und kleine Überblicksfunktionen * (Länge der Liste, Auflisten von Kunden mit bestimmten Umsätzen). * * @section datastructures_de Die Datenstrukturen * @subsection CustomerList * Die CustomerList hat eine maximale Anzahl von 13 Einträgen. * Die CustomerList ist ein struct mit den Feldern * - length (int) * - customers (Array von Pointern auf ein struct CustomerListEntry): siehe unten * * @subsection CustomerListEntry * Ein CustomerListEntry hält alle Daten, die zu einem Kunden gehören, welche sind: * - id (int): Die eindeutige Kundennummer. * - customer_name (const Pointer auf ein char (const char* customer_name)) * - revenue (int): Der Umsatz, der mit dem Kunden erzielt wurde in 1000 € * * @section Die Funktionen * - init_customer_list(): Setzt die Anzahl der Einträge auf 0. * - get_length(): Gibt die Anzahl der Einträge zurück. * - create_customer(): Erstellt einen neuen Kunden. * - add_customer(): Fügt einen Eintrag hinzu. * - add_customers(): Fügt mehrere Einträge hinzu. * - get_customer_with_index(): Liefert den Kunden mit dem Index innerhalb der Liste. * - get_customer_with_id(): Sucht einen Kunden mit einer bestimmten ID. * - get_customers_with_revenue(): Sucht Kunden innerhalb bestimmter Umsatzgrenzen. * - 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 * - get_customer_id(): Liefert die ID eines Kunden. * */