Is wichtig bitte
-
Problem ist, dass er die bool werte nicht bei einem erneuten Durchlauf beibehält.
Hatt jemand ne idee warum und wies geht?#include <iostream> #include <iomanip> using namespace std; int main() { char auswahl=0; float rechnung=0; bool ba,bb,bc,b1,b2,b3; do { if(auswahl=='!') { cout<<endl; cout<<"Danke fuer ihre Bestellung"<<endl; } else { cout<<endl; cout<<"FAT frisch appetitlich traumhaft - freut sich auf ihre Bestelleung:"<<endl; } cout<<endl; cout<<"Ihre Bestllung:"<<endl; ba==true?cout<<"FAT Hamburger" <<endl: bb==true?cout<<"FAT Chocoburger" <<endl: bc==true?cout<<"FAT Frozen Salad" <<endl: b1==true?cout<<"FAT Cola" <<endl: b2==true?cout<<"FAT Lime" <<endl: b3==true?cout<<"FAT Honey Coffe" <<endl: cout<<endl; cout<<endl; cout<<"Ihre Rechnung: Euro "<<rechnung<<endl; cout<<endl; cout<<"Ihre Wahl:"<<endl; cout<<endl; cout<<setw(40)<<left<<"a) FAT Hamburger Euro 1.99"<<setfill(' ')<<right<<"1) FAT Cola Euro 0.99"<<endl; cout<<setw(40)<<left<<"b) FAT Chocoburger Euro 2.99"<<setfill(' ')<<right<<"2) FAT Lime Euro 0.99"<<endl; cout<<setw(40)<<left<<"c) FAT Frozen Salad Euro 3.49"<<setfill(' ')<<right<<"3) FAT Honey Coffe Euro 1.99"<<endl; cout<<endl; cout<<setw(40)<<left<<"x) Bestellung aufheben"<<setfill(' ')<<right<<"!) Bestellung abgeben"<<endl; cout<<endl; cout<<">"; cin>>auswahl; cout<<endl; cout<<endl; switch(auswahl) { case 'a': ba=true; rechnung+=1.99; break; case 'b': bb=true; rechnung+=2.99; break; case 'c': bc=true; rechnung+=3.49; break; case '1': b1=true; rechnung+=0.99; break; case '2': b2=true; rechnung+=0.99; break; case '3': b3=true; rechnung+=1.99; break; case '!': break; case 'x': ba=false; bb=false; bc=false; b1=false; b2=false; b3=false; rechnung=0; break; default: cout<<"Achtung!!! Falsche Eingabe"<<endl; continue; } }while(auswahl !='q');//Nur den Angestellten bekannt abrechen des Programmes mit "q" system("Pause"); return 0; }Vielen Danke schon mal!!
/edit: code-tags
-
Schlechte Überschrift!

-
Hinweis schrieb:
Schlechte Überschrift!

Mag sein, deine Promotion-Tour hilft aber auch nicht weiter.
@NicNN: Bitte editiere dein Posting und klammere deinen Code mit [ cpp ] [ /cpp ] Tags ein (Ohne Leerzeichen). Dann ist der Code a) formatiert und b) schön bunt so das man sich dein Programm ansehen kann - so wird dir niemand helfen

MfG SideWinder
-
NicNN schrieb:
ba==true?cout<<"FAT Hamburger" <<endl: bb==true?cout<<"FAT Chocoburger" <<endl: bc==true?cout<<"FAT Frozen Salad" <<endl: b1==true?cout<<"FAT Cola" <<endl: b2==true?cout<<"FAT Lime" <<endl: b3==true?cout<<"FAT Honey Coffe" <<endl: cout<<endl;WTF hast du dir dabei gedacht?
-
ich will jeweils die bestelltet produkte unternander ausgeben.
Mit einem klappt das auch wunderbar.
-
Und wenn ich zwei Hamburger bestelle?
-
tut mir leid kanns nicht mehr edditieren da ich keinen accout habe
-
hast recht Hmm
ne idee wie ichs sonst machen kann?
-
NicNN schrieb:
ne idee wie ichs sonst machen kann?
zum Beispiel so:
#include <iostream> using namespace std; enum Bestellung { Hamburger, Chocoburger, Frozen_Salad, Cola, Lime, Honey_Coffee }; int main() { const char * const NAMEN[] = { "FAT Hamburger", "FAT Chocoburger", "FAT Frozen Salad", "FAT Cola", "FAT Lime", "FAT Honey Coffee"}; int bestellungen[] = {0, 0, 0, 0, 0, 0}; const int N = sizeof(bestellungen)/sizeof(int); ++bestellungen[Hamburger]; ++bestellungen[Chocoburger]; bestellungen[Cola] += 2; for(int i = 0; i<N; ++i) if(bestellungen[i]>0) cout << bestellungen[i] << " x " << NAMEN[i] << endl; cin.get(); }
-
NicNN schrieb:
Problem ist, dass er die bool werte nicht bei einem erneuten Durchlauf beibehält.
Die bool-Werte werden schon beibehalten, aber die Art und Weise wie Du auf einen bool reagierst schließt bei einem Wert ==true die Abfrage aller anderen aus.
Ändere den Codeba==true?cout<<"FAT Hamburger" <<endl: bb==true?cout<<"FAT Chocoburger" <<endl: bc==true?cout<<"FAT Frozen Salad" <<endl: b1==true?cout<<"FAT Cola" <<endl: b2==true?cout<<"FAT Lime" <<endl: b3==true?cout<<"FAT Honey Coffe" <<endl:mal nach
if( ba ) cout<<"FAT Hamburger" <<endl; if( bb ) cout<<"FAT Chocoburger" <<endl; if( bc ) cout<<"FAT Frozen Salad" <<endl; if( b1 ) cout<<"FAT Cola" <<endl; if( b2 ) cout<<"FAT Lime" <<endl; if( b3 ) cout<<"FAT Honey Coffe"<<endl;im Übrigen solltest Du alle Werte immer initialisieren, bevor sie abgefragt werden. Also
bool ba = false; // usw.Gruß
Werner
-
Hallo,
der Code dürfte so gar nicht compilierfähig sein, das die
letzte Abfrage (?:;) nicht richtig beendet wird. An der
Strukturierung muss dringen dgearbeitet werden, da der Code
mindestens um Faktor 2 vereinfacht / verbessert werden kann.Grundsätzlich sollte man alle C Abfragen in Klammern setzen.
Spätestens wenn man ein unsauberes Makro benutzt fällt man
sonst böse auf die Nase. Eindeutigkeit ist extrem wichtig.