Menüschleife mit Buchstaben Auswahl
-
Hallo, ich bin dabei ein Menü zu erstellen in dem ich mit Buchstaben navigieren möchte. So siehts bisher aus:
// Programm zur Volumenberechnung // Sebastian Hösl // 03.03.2008 #include "stdafx.h" //Unterprogramme: // Funktionsname: Begrüßungstext // Beschreibung: " // Parameter: keine // Rückgabewert: keine // // Erstellt von R. Dudas, S. Hösl void title(void) { printf("------------------------------------------------------------------------------\n"); printf("[ Willkommen zur Volumen Berechnung von Wuerfel, Kugel, Quader oder Zylinder ]\n"); printf("------------------------------------------------------------------------------\n\n"); return; } // Funktionsname: Menüabfrage // Beschreibung: Auswahl der gewünschen Form // Parameter: keine // Rückgabewert: wert // // Erstellt von R. Dudas, S. Hösl int menu(void) { int wert; printf("bitte auswählen:\n\n"); printf(" | Wuerfel - 1\n"); printf(" | Kugel - 2\n"); printf(" | Quader - 3\n"); printf(" | Zylinder - 4\n"); printf(" | Beenden - 0\n\n "); scanf("%i", &wert); fflush(stdin); return wert; } // Funktionsname: Ausgabe des Ergebnis // Beschreibung: Ergebnis wird ausgegeben // Parameter: erg // Rückgabewert: keine // // Erstellt von R. Dudas, S. Hösl double ausgabe(double erg) { printf("das Volumen betraegt %lf\n\n", erg); return erg; } // Funktionsname: Würfel Volumen Berechnung // Beschreibung: " // Parameter: x // Rückgabewert: Vw // // Erstellt von R. Dudas, S. Hösl double vwuerfel (double x) { double Vw; Vw=x*x*x; return Vw; } // Funktionsname: Kugel Volumen Berechnung // Beschreibung: " // Parameter: r // Rückgabewert: Vk // // Erstellt von R. Dudas, S. Hösl double vkugel (double r) { double Vk; double PI=3.14; Vk=r*r*r*PI/6; return Vk; } // Funktionsname: Quader Volumen Berechnung // Beschreibung: " // Parameter: a, b, c // Rückgabewert: Vq // // Erstellt von R. Dudas, S. Hösl double vquader (double a, double b, double c) { double Vq; Vq=a*b*c; return Vq; } // Funktionsname: Zylinder Volumen Berechnung // Beschreibung: " // Parameter: h, r // Rückgabewert: Vz // // Erstellt von R. Dudas, S. Hösl double vzylinder (double h, double r) { double Vz; double PI=3.14; Vz=r*r*PI*h; return Vz; } // Funktionsname: Hauptschleifen Bedingung // Beschreibung: " // Parameter: keiner // Rückgabewert: weiter // // Erstellt von R. Dudas, S. Hösl char wiederholen(char weiter) { printf(" | nochmal was berechnen?\n"); printf(" | Wenn ja dann geben Sie ein j ein\n"); printf(" | Alles andere beendet das Programm!\n\n "); scanf("%c", &weiter); fflush(stdin); return weiter; } // Funktionsname: Abfrage Fall 1 - Würfel // Beschreibung: " // Parameter: wuerfel // Rückgabewert: wuerfel // // Erstellt von R. Dudas, S. Hösl double abfrage(double wuerfel) { printf("bitte Seitenlaenge Ihres Wuerfels angeben!\n\n "); scanf("%lf", &wuerfel); fflush(stdin); return wuerfel; } //Hauptprogramm: int _tmain(int argc, _TCHAR* argv[]) { //Variablen Deklaration des Hauptprogramms:int auswahl; double x=0, a, b, c, h, r, erg, wuerfel=0; char k, weiter=0; //Begrüßung: title(); //Hauptschleife: do { //Menüabfrage: auswahl=menu(); //Menü: switch (auswahl) { case 1: //Würfel x=abfrage(wuerfel); erg=vwuerfel(x); ausgabe(erg); break; case 2: //Kugel //abfrage(r) printf("bitte Radius Ihrer Kugel angeben!\n\n "); scanf("%lf", &r); fflush(stdin); erg=vkugel(r); ausgabe(erg); break; case 3: //Quader printf("bitte die Seitenlaengen Ihres Quaders angeben!\n\n "); scanf("%lf%c%lf%c%lf", &a, &k, &b, &k, &c); fflush(stdin); erg=vquader(a, b, c); ausgabe(erg); break; case 4: //Zylinder printf("bitte geben Sie erst die Hoehe und dann den Radius Ihres Zylinders an!\n\n "); scanf("%lf%c%lf", &h, &k, &r); fflush(stdin); erg=vzylinder(h, r); ausgabe(erg); break; case 0: //Beenden printf(" | ENDE"); return 0; default: //Fehlerfall printf("Bitte treffen Sie eine gueltige Auswahl!\n\n "); } //Hauptschleifen Bedingung weiter=wiederholen(weiter); } while (weiter=='j'); return 0; }Nun soll ich das ganze so umbauen das es nur mit Buchstaben funkt.
Müsste sie also irgendwie als char einlesen - bloß wie, ich komm nicht darauf.Gebt mir nur nen Tipp, will ja schließlich selbst darauf kommen. :p
-
Das ist doch gar kein C++. Falsches Forum.
-
Falsches Forum, aber dennoch ein Tipp:
http://www.cppreference.com/stdio/scanf.html
Sollte reichen..
-
Ich dachte mir schon das mal wieder nur Produktive Antworten bekomme

Es geht folgendermaßen:
Die abzufragenden Buchstaben in der Switch-Verzweigung in Hochkommas stellen und mit char einlesen. dann gehts//Projektname: Kasino // Erstellt von S. Hösl #include "stdafx.h" //Unterprogramme: ///////////////// // Funktionsname: Begrüßungstext // Beschreibung: " // Parameter: keine // Rückgabewert: keine // // Erstellt von S. Hösl void title(void) { printf("------------------------------------------------------------------------------\n"); printf(" [ Willkommen im Kasino!!! ]\n"); printf("------------------------------------------------------------------------------\n\n"); return; } // Funktionsname: Hauptschleifen Bedingung // Beschreibung: " // Parameter: keiner // Rückgabewert: weiter // // Erstellt von S. Hösl char wiederholen(char weiter) { printf(" | nochmal was berechnen?\n"); printf(" | Wenn ja dann geben Sie ein j ein\n"); printf(" | Alles andere beendet das Programm!\n\n "); scanf("%c", &weiter); fflush(stdin); return weiter; } // Funktionsname: Menüabfrage // Beschreibung: Spielauswahl // Parameter: keine // Rückgabewert: wert // // Erstellt von S. Hösl char menu(void) { char wert; printf("hier koennen Sie Ihr gewuenschtes Spiel auswaehlen:\n\n"); printf(" | Muenzspiel - M |\n"); printf(" | Wuerfelspiel - W |\n"); printf(" | Roulette - R |\n"); printf(" | Gluecksrad - G |\n"); printf(" | Ende - E |\n\n"); scanf("%c", &wert); fflush(stdin); return wert; } int _tmain(int argc, _TCHAR* argv[]) { //Variablen Deklaration des Hauptprogramms: char M=1, W=1, R=1, G=1, E=1; char auswahl; double x=0, a, b, c, h, r, erg, wuerfel=0; char k, weiter=0; //Begrüßung: title(); //Hauptschleife: do { //Menüabfrage: auswahl=menu(); //Menü: switch(auswahl) { case 'M': printf("Münzspiel"); //Münzspiel break; case 'W': printf("Würfelspiel"); //Würfelspiel break; case 'R': printf("Roulettespiel"); //Roulettespiel break; case 'G': printf("Glücksrad"); //Glücksrad break; case 'E': printf("Ende"); //Ende return 0; break; default: printf("Bitte treffen Sie eine gueltige Auswahl!\n\n "); //Fehlerfall } //Hauptschleifen Bedingung weiter=wiederholen(weiter); } while (weiter=='j'); return 0; }Nochmals vielen herzlichen Dank allerseits ...

-
naja hat nix mit produkiven antworten zu tuen...du hast schlicht und einfach in das falsch unterforum gepostet, dein code ist nicht C++
-
Also wenn einer kommt und fragt, wie man mit scanf char's einliest, dann muss ich denjenigen hald leider einfach nochmal zur Referenz schicken, weil so einen riesen Code denke ich nicht mal durchzulesen. Vor allem, wenns so eine einfache Aufgabe ist..
Wie du ja jetzt selber gemerkt hast, ist es genau das gleiche, wie mit Integer. Und das hättest du auch in dem Link gefunden..