module;
#include <print>

export module GenerateNumbers;

// Datentyp der Werte
using DTYPE = unsigned short;

export class GenerateNumbers
{
    DTYPE   *values;            // Zeiger auf Daten
    int     noOfValues;         // Anzahl der Daten
public:
    // ctor, reserviert Feld fuer Daten
    explicit  GenerateNumbers(int size): noOfValues(size)
    {
        values = new DTYPE[size];
        for (auto index = 0; index < noOfValues; index++)
            values[index] = std::rand() % 100;
    }
    // dtor, gibt Feld fuer Messwert wieder frei
    ~GenerateNumbers()
    {
        delete [] values;
    }
    // Daten sowie Mittelwert ausgeben
    void PrintData() const
    {
        unsigned long sum = 0;

        std::print("Werte: ");
        for (auto index=0; index<noOfValues; index++)
        {
            std::print("{},", values[index]);
            sum += values[index];
        }
        std::println("\nMittelwert: {}", sum / noOfValues);
    }
};
