Dr. Andreas F. Borchert Institut für Angewandte Informationsverarbeitung 11. November 2008
Wolfgang Kaifler Blatt 3


Uni Logo



Objektorientierte Programmierung mit C++ (WS 2008)


Abgabetermin: 18.November Monat 2008

10 Fragen (2 Punkte)

Erklären Sie: Was ist ein Konstruktor? Wie ist er Aufgebaut?

11 Event-Kalender (8 Punkte)

In diesem Übungsblatt sollen Sie eine Art Event-Kalender erstellen. Der Kalender soll solche Events - also bestimmte Zeitpunkte - speichern und wieder ausgeben können. In Abhängigkeit der übergebenen Parameter bei der Instantiierung soll sowohl der Zeitpunkt des Events gesetzt, als auch die Formatierung bei der Ausgabe festgelegt werden. Eine spätere Änderung der Zeit bzw. Formatierung soll möglich sein.

Die Klasse ist wie folgt definiert:

daytime([int h | int h, int m | int h, int m, int s] [char F])

Wird kein Parameter angegeben, so soll die aktuelle Systemzeit genommen werden.

Das optionale Format ist definiert:

Ihre Aufgabe ist es nun, diese Klasse daytime mit verschiedenen Konstruktoren zu erstellen und alle nötigen nötigen Attribute und Methoden zu implementieren.

Eine passende, beispielhafte main()-Funktion könnte so aussehen:

int main() {
        daytime now;
        std::cout << "Dieses Programm lief um " << now.getFormattedString() << endl;
        daytime event(12, 15, 'B');
        std::cout << "Das naechste Event ist um " << event.getFormattedString() << endl;

        event.getTime(13);
        event.setFormat('C');
        std::cout << "Letztes Event um " << event.getFormattedString() << endl;
   return 0;
}
und führt zu folgender Ausgabe:
Dieses Programm lief um
12:22:00 Uhr
Das naechste Event ist um
12:15 Uhr
Letztes Event um Format ist um
1:00 PM Uhr



Hinweise:

Die aktuelle Zeit kann wie folgt ermittelt werden:
#include <ctime>
...
        time_t ZeitDatum;
        struct tm *AktuelleZeit;

        ZeitDatum    = time(NULL);
        AktuelleZeit = localtime(&ZeitDatum);
        Stunde            = AktuelleZeit->tm_hour;
        Minute            = AktuelleZeit->tm_min;
        Sekunde            = AktuelleZeit->tm_sec;





Die Funktion sprintf() aus <cstdio> könnte hilfreich sein





Viel Erfolg!



Wolfgang Kaifler 2008-11-11