Anton123 Geschrieben 24. November 2009 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.