C++ Kurs

Wenn fertig, bitte Fenster schließen

Lösung zur Lektion "Speicherklassen und Qualifizierer"


// Lösung zu Speicherklassen

#include <iostream>
#include <iomanip>
using std::cout;
using std::endl;

// Anzahl der Gerätetypen
const int MAXDEVICE = 3;

// Funktionsdeklarationen
unsigned long SerialNumber(unsigned int device);

// main() Funktion
int main()
{
   cout << "Erzeuge nun Seriennummern:\n";
   // für 15 Geräte Seriennummern erzeugen
   for (register unsigned int index=0; index<15; index++)
   {
      // Gerätetyp zufällig festlegen
      int device = rand()%MAXDEVICE;
      cout << "Gerätetyp: " << device;
      // und Seriennummer dazu ausgeben
      cout << " erhält Seriennummer " << std::setw(6) << SerialNumber(device) << endl;
   }
}

// Funktion zum Erzeugen von Seriennummern
unsigned long SerialNumber(unsigned int device)
{
   // Feld für Seriennummern der einzelnen Gerätetypen
   // Das Feld wird mit der Start-Seriennummer des jeweiligen
   // Gerätetyps initialisiert

   static unsigned long numbers[MAXDEVICE] = {0,100,1000};
   // Abprüfen ob Gerätetyp innerhalb des erlaubten Bereichs
   if ((device < 0) ||
       (device > sizeof(numbers)/sizeof(numbers[0])))
      return 0;
   // Seriennummer des Gerätetyps erhöhen
   numbers[device]++;
   // und zurückgeben
   return numbers[device];
}