Flair Geschrieben 31. Januar 2011 Teilen Geschrieben 31. Januar 2011 Also ich bin relativ neu in der Materie, um genau zu sein habe ich erst gestern angefangen mich mit C++ zu beschäftigen. Ich dachte mir, da ich gerne im Sommer ein Studium in Richtung Wirtschaftsinformatik/Informatik beginnen möchte, es wäre garnicht so dumm schon einige baiscs zu erlernen. Was ich gestern nach dem "Hallo Welt" Programm hinbekommen ist folgendes: #include "stdafx.h" #include <iostream> #include <string> #include <Windows.h> using namespace std ; int _tmain(int argc, _TCHAR* argv[]) { cout << ":::::::::::::::::::::::::::::::::::::::::::::::::::::::\n"; // Start Aussehen + Text des Menues cout << ":::::::::::::::::::::: ::::::::::::::::::::::\n"; cout << ":::::::::::::::::::::: Menue ::::::::::::::::::::::\n"; cout << ":::::::::::::::::::::: ::::::::::::::::::::::\n"; cout << ":::::::::::::::::::::::::::::::::::::::::::::::::::::::\n"; cout << "::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@::\n"; cout << "::@ @::\n"; cout << "::@ Waehlen Sie eine der folgendenen Optionen: @::\n"; cout << "::@ Option [1] um Fahrenheit in Grad umzurechnen @::\n"; cout << "::@ Option [2] um Grad in Fahrenheit umzurechnen @::\n"; cout << "::@ Option [3] um das Programm zu beenden @::\n"; cout << "::@ @::\n"; cout << "::@ Auswahl erfolgt durch die Zahl in [Klammern] @::\n"; cout << "::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@::\n"; cout << ":::::::::::::::::::::::::::::::::::::::::::::::::::::::\n"; cout << ":::::::::::::::::::::::::::::::::::::::::::::::::::::::\n"; cout << ":::::::::::::::::::::::::::::::::::::::::::::::::::::::\n"; cout << ":::::::::::::::::::::::::::::::::::::::::::::::::::::::\n"; // Ende Aussehen + Text des Menues cout << endl; cout << endl; cout << "Geben Sie Ihre Option ein:\n"; int option ; cin >> option ; getchar(); switch(option) { case 1: double fahrenheit; double celsius; cout << "Geben Sie die Temperatur in Fahrenheit ein um sie in Celsius umzurechnen!" << endl; // Text Eingabe Aufforderung cin >> fahrenheit ; // Eingabe celsius = (fahrenheit - 32 ) * 5.0/9.0 ; // Formel zur Berechnung Celsius getchar(); cout << "Die Temperatur betraegt umgerechnet " << celsius << " Grad Celsius!\nDas Programm wird mit der naechsten Return Eingabe in 5 Sekunden beendet!" << endl; // Ausgabe Ergebnis getchar(); break; case 2: double fahrenheit2; double celsius2; cout << "Geben Sie die Temperatur in Celsius ein um sie in Fahrenheit umzurechnen!" << endl; // Text Eingabe Aufforderung cin >> celsius2 ; // Eingabe fahrenheit2 = ((celsius2 * 9.0 ) / 5.0) + 32 ; // Formel zur Berechnung Fahrenheit getchar(); cout << "Die Temperatur betraegt umgerechnet " << fahrenheit2 << " Grad Fahrenheit!\nDas Programm wird mit der naechsten Return Eingabe in 5 Sekunden beendet!" << endl; // Ausgabe Ergebnis getchar(); break; case 3: cout << "Das Programm wird in 5 Sekunden beendet!"; break; } cout << "."; Sleep(1000); cout << "."; Sleep(1000); cout << "."; Sleep(1000); cout << "."; Sleep(1000); cout << "."; Sleep(1000); return 0; } Jetzt möchte ich das ganze so umschreiben, dass das Programm nur bei Option 3 beendet wird und der Rest (ab der Auswahl der Option) in einer Schleife hängt. Meine Idee wäre jetzt eine Schleife einzubauen mit while > 3 und if = 3. Ist der Ansatz so richtig? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sassy Geschrieben 31. Januar 2011 Teilen Geschrieben 31. Januar 2011 Eine While-Schleife ist schon der richtige Ansatz, du kannst als Abbruchbedingung für die While-Schleife aber auch sowas angeben: while( option != 3 ) {... Dann wird die Schleife immer ausgeführt, es sei denn es wurde 3 eingegeben, dann bricht sie quasi ab. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Flair Geschrieben 31. Januar 2011 Autor Teilen Geschrieben 31. Januar 2011 Danke ersteinmal! Also ich hab das ganze jetzt so gemacht: int option ; cin >> option; while(option < 3) { cin >> option; switch(option) { .... Das Problem ist/war nun folgendes: - Ich musst immer zweimal etwas eingeben bevor die Wahl ging (gelöst indem ich jeweils das __getchar();__ am Ende eines case gelöscht habe. Ich hoffe das war richtig so.) - Ich muss allerdings beim ERSTEN Aufrufen immernoch 2 mal die Option angeben. Ich denke das liegt daran das ich einmal die Eingabe vor der Schleife und einmal in der Schleife habe. Allerdings verstehe ich nicht wie ich das Problem lösen soll. Falls ich die Eingabe vor der Schleife rausnehme ist diese nicht definiert = Fehler, nehme ich die nach der Schleife raus wähle ich nicht neu, da "option" ja schon definiert ist und nicht mehr geändert wird (also wäre ich immer in der selben, am Anfang gewählten Option). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 31. Januar 2011 Teilen Geschrieben 31. Januar 2011 int option = 0; // Irgendwie initialisieren, nur nicht mit 3 while(option < 3) { cin >> option; switch(option) { ....[/code] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lilith2k3 Geschrieben 31. Januar 2011 Teilen Geschrieben 31. Januar 2011 (bearbeitet) while(option < 3) Die Frage ist, ob das so gewünscht ist ... Was ist mit dem Fall "option=4"? Im Übrigen fände ich es schöner, wenn man statt mit den Integerzahlen mit enums arbeitet. Die sind sprechender: Other Data Types Dann würde sich ein Vergleich wie folgt lesen: while(selectedOption != Option_Exit) und jeder weiß, was gemeint ist. Bearbeitet 31. Januar 2011 von lilith2k3 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Flair Geschrieben 31. Januar 2011 Autor Teilen Geschrieben 31. Januar 2011 Noch ein danke, das war eigentlich so einfach das ich mich jetzt schon ein wenig schäme Die Frage ist, ob das so gewünscht ist ... Was ist mit dem Fall "option=4"? Ja es ist so wie es jetzt ist sicherlich nicht gut, allerdings will ich ja nur üben und hab grob etwas im Kopf wie das ganze am Ende aussehen soll. Ich will das ganze so Aufbauen das ich ein Hauptmenü habe in der man die Auswahl hat zwischen einem einfachen Umrechner (im Grunde das was man jetzt sieht) und einem Rechner der Funktionen ableitet, das Gauss-Verfahren durchführt usw mit jeweils wieder einem eigenem Menü und da würde ich es angenehm finden, wenn er bei jeder Eingabe die größer ist als das "zurück ins Hauptmenü" ebenfalls zum Hauptmenü zurück führt. Je nachdem wie meine skills steigen, umso umfangreicher und mehr Untermenüs. Im Übrigen fände ich es schöner, wenn man statt mit den Integerzahlen mit enums arbeitet. Die sind sprechender: Other Data Types Ich werde mir das mal anschauen und wenn ich es verstehe, versuchen umzusetzen. 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.