Es gibt weiter unten 3 zeilen die ergänzt werden müssen. danke für die hilfe
/*
* Jedes Programm sollte mit einigen Zeilen Kommentar beginnen, die
* eine kurze Beschreibung liefern.
* Ferner ist es heutzutage immer wichtiger Aendergungen am Programmcode
* zu dokumentieren, denn wenn zum Beispiel Projekte in einem Team entwickelt
* werden, dann wuesste der naechste Programmierer nicht, welche Aenderungen
* zuletzt an dem Programm durchgefuehrt worden sind.
*
* ---------------------------------------------------------------------------
*
* Datei/File: Kaffee.C
* Beschr./Desc.: Simulation eines Kaffeeautomaten als endlichen Automaten
* Firma/Company:
*
* Zweck:
* Autor/Author: <Fuegen Sie hier Ihren Namen ein>
* Co-Author: <Hier koennten sich andere Teammitglieder eintragen>
* <die Aenderungen am Programm durchgefuehrt haben>
* <Ferner koennte auch die Aufgabe optional noch ergaenzt werden>
*
* Erstellt/Create: 01-10-2009
* Geaendert/Change: 30-10-2009
* - Name des Autors der Veraenderung
* : Hier folgt eine kurze Beschreibung der
* Veraenderung
*
* ---------------------------------------------------------------------------
*/
/* Am Anfang eines jeden C++-Programms bindet man die Schnittstellen der
* verwendeten Bibliotheken mittels include-Anweisungen ein. Wir wollen die
* Objekte "cout" und "cin" und deren Operatoren "<<" bzw. ">>" benutzen, und
* benaetigen daher die Bibliothek "iostream"
*/
// include Anweisungen
#include <iostream>
using namespace std;
/*
* Das Hauptprogramm ist der Programmteil, der bei der Ausfuehrung des
* Programms aufgerufen wird.
*/
// Hauptprogramm
int main() {
/*
* Am Anfang eines Programmblocks stehen oft einige Variablendeklarationen,
* durch die einem Variablennamen ein Variablentyp und eventuell ein
* Anfangswert zugeordnet wird.
*/
char Eingabezeichen;
enum Automatzustand {
erwarte_150, erwarte_100, erwarte_50
};
Automatzustand Zustand = erwarte_150;
/*
* Jedes Programm sollte dem Benutzer melden, was es tut und welche
* Eingaben es erwartet.
*/
cout << "Fuer einen Kaffee werfen Sie bitte Euro 1,50 ein." << endl << endl;
cout << "Der Automat erkennt folgende Eingaben:" << endl;
cout << "/ = Euro 0,50" << endl;
cout << "1 = Euro 1,00" << endl;
cout << "* = Storno" << endl << endl;
cout << "Der Automat erzeugt folgende Ausgaben:" << endl;
cout << "/ = Rueckgabe Euro 0,50" << endl;
cout << "1 = Rueckgabe Euro 1,00" << endl;
cout << "KAFFEE = Kaffee ausgegeben" << endl;
cout << "KLING! = Signal fuer korrekte Eingabe" << endl << endl;
/*
* Dieses Programm laeuft in einer Endlosschleife, das heisst, die
* Anweisungen innerhalb des while-blocks werden immer wieder ausgefuehrt,
* bis das Programm von aussen abgebrochen wird.
*/
while (true) {
// Ausgabe des Zustands
cout << "Der Zustand ist ";
/*
* Die switch-Anweisung dient zur Unterscheidung verschiedener Faelle.
* Jedes case-statement steht fuer einen moeglichen Wert der switch-
* Variablen, gefolgt von dem in diesem Fall auszufuehrenden Programmkode,
* der mit break abgeschlossen werden muss.
*/
switch (Zustand) {
case erwarte_150:
cout << "erwarte_150";
break;
case erwarte_100:
cout << "erwarte_100";
break;
case erwarte_50:
cout << "erwarte_50";
break;
}
// Eingabe eines Zeichens
cout << ", Ihre Eingabe: " << flush;
cin >> Eingabezeichen;
// Aenderung des Zustands je nach Wert des Eingabezeichens
switch (Zustand) {
case erwarte_150:
switch (Eingabezeichen) {
case '/':
Zustand = erwarte_100;
cout << "KLING!" << endl;
break;
case '1':
Zustand = erwarte_50;
cout << "KLING!" << endl;
break;
case '*':
Zustand = erwarte_150;
cout << "KLING!" << endl;
break;
default:
cout << "Fehlerhafte Eingabe!" << endl;
/* Es kann hiflreich sein bei vielen verschachtelten Ausdruecken die
* Zugehoerigkeit der Klammer zu dokumentieren
*/
}// Ende: switch Eingabezeichen - erwarte_150
break;
case erwarte_100:
switch (Eingabezeichen) {
/*
* ersetzen Sie die drei Punkte durch die richtigen Befehle
*/
case '/':
...
case '1':
...
case '*':
...
default:
...
}// Ende: switch Eingabezeichen - erwarte_100
break;
case erwarte_50:
switch (Eingabezeichen) {
case '/':
Zustand = erwarte_150;
cout << "KAFFEE" << endl;
break;
case '1':
Zustand = erwarte_50;
cout << "1" << endl;
break;
case '*':
Zustand = erwarte_150;
cout << "1" << endl;
break;
default:
cout << "Fehlerhafte Eingabe!" << endl;
}// Ende: switch Eingabezeichen - erwarte_50
break;
}// Wuessten sie noch zu welcher Anweisung die Klammer gehoert?
}//while
/*
* Jedes Programm gibt an die shell, von der aus es aufgerufen wurde, einen
* Wert vom Typ integer zurueck. Dieser Mechanismus wird normalerweise dazu
* verwendet, Fehlerkodes zurueckzugeben. Der Rueckgabewert 0 bedeutet
* in der Regel, dass das Programm fehlerfrei beendet wurde.
*/
return 0;
}//main