Anton123 Geschrieben 24. November 2009 Geschrieben 24. November 2009 (bearbeitet) 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 Bearbeitet 24. November 2009 von Klotzkopp Code-Tags hinzugefügt Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.