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


Uni Logo



Objektorientierte Programmierung mit C++ (WS 2008)


Abgabetermin: 09. November 2008

8 Klassen (8 Punkte)

In diesem Übungsblatt soll ein Kaffeeautomat nachgebildet werden.

In diesen Automaten soll Geld eingeworfen werden können. Normaler Kaffee gibt es durch Drücken der Taste K für 1.20 Euro. Neben Kaffee bietet dieser Automat auch Tee (Taste T) an. Gegen Aufpreis von 10 bzw. 15 Cent gibt es optional noch Zucker Z bzw. Milch M dazu.

Natürlich gibt der Automat seine Ware nur aus, wenn genügend Geld eingeworfen worden ist. Ausserdem ist er in der Lage, Restgeld zurück zu geben.

Abgebrochen werden kann der Vorgang mit der Taste C. Der Automat gibt darauf hin das gesamte Geld zurück.

Erstellen Sie für dieses Übungsblatt eine Klasse automat und implementieren Sie die benötigten Methoden beispielsweise zum:

9 Modularisierung (2 Punkte)

Gegeben sei folgendes Programm:

#include <iostream>

using namespace std;

class Temperatur {
  private: 
    double waerme;
  public:
    double readC(void);
    double readF(void);
    void saveC(void);
    void saveF(void);
};

void Temperatur::saveC(void) {
  cout << "Bitte Celsius eingeben ";
  cin >> waerme;
}

void Temperatur::saveF(void) {
  cout << "Bitte Fahrenheit eingeben: ";
  cin >> waerme;
  waerme = 5.0/9.0*(waerme - 32.0);
}

double Temperatur::readC(void) {
  return waerme;
}

double Temperatur::readF(void) {
  return 9.0/5.0 * waerme + 32.0;
}

int main() {
  Temperatur temp;
  temp.saveC();
  cout << "Wert in Celsius   : " << temp.readC() << endl;
  cout << "Wert in Farenheit : " << temp.readF() << endl;
  return(0);
}
Dies ist natürlich nur ein kleines Programm. Jedoch können auch solche Programme wachsen. Um dennoch den Überblick zu behalten, teilt man diese Programme in verschiedene Dateien auf.

Wie würden Sie dieses Programm aufteilen? Benennen Sie die Dateien sinnvoll!

Viel Erfolg!



Wolfgang Kaifler 2008-11-04