Parkautomat verbessern
-
Hi,
also ich habe ein virtuellen Parkautomaten programmiert. Das gute daran ist, er funktioniert schon fast perfekt *g*
Folgendes Problem habe ich noch. So wie das Programm jetzt geschrieben ist, bekomme ich wenn ich das Programm starte als erstes die Begrüsung angezeigt und dnn fängt das eigentliche Programm an. Beim zweiten Durchlauf erfolgt leider keine Begrüssung mehr. Die sollte aber trotzdem erscheinen, da ja nun ein neuer Kunde davor steht. Der Programmcode sollte so wenig wie möglich verändert werden. Habe ihn nachstehend für euch geposted
# include <iostream.h>
# include <conio.h>int main()
{
int Parkdauer, Zeittakt, Taste;
float Einheit, Betrag;
int Var1 = 1;
int Var2 = 0;
char ende;ende = 'j';
zaehler = 0;
Zeittakt = 15;
Parkdauer = 0;
Betrag = 0;
Einheit = 0.50;
cout <<"Guten Tag \n";
do
{cout <<"Bitte geben Sie die Parkdauer ein :";
cin >> Taste;
cout <<"\n";if (Taste == Var1)
{Parkdauer = Parkdauer + Zeittakt;
cout <<"Parkdauer: "<<Parkdauer<<" min\n\n";
}
else
{
if (Taste == Var2)
{
Betrag = Einheit * Parkdauer / Zeittakt;
cout <<"Beleg wird gedruckt\n";
cout <<"Zu zahlender Betrag : "<<Betrag<<" Euro\n\n\n";
Betrag = 0;
Parkdauer = 0;
cout<<"Moechten Sie das Programm wiederholen? [J/N]";
cin>>ende;
clrscr();
}
else
cout<<"FEHLER!!";
}}
while(ende=='j' || ende=='J');// getchar();
return 0;
}Vielen Dank für eure Hilfe schonmal.
-
# include <iostream.h> # include <conio.h> int main() { do //Setz das do hier hin { int Parkdauer, Zeittakt, Taste; float Einheit, Betrag; int Var1 = 1; int Var2 = 0; char ende; ende = 'j'; zaehler = 0; Zeittakt = 15; Parkdauer = 0; Betrag = 0; Einheit = 0.50; cout <<"Guten Tag \n"; cout <<"Bitte geben Sie die Parkdauer ein :"; cin >> Taste; cout <<"\n"; if (Taste == Var1) { Parkdauer = Parkdauer + Zeittakt; cout <<"Parkdauer: "<<Parkdauer<<" min\n\n"; } else { if (Taste == Var2) { Betrag = Einheit * Parkdauer / Zeittakt; cout <<"Beleg wird gedruckt\n"; cout <<"Zu zahlender Betrag : "<<Betrag<<" Euro\n\n\n"; Betrag = 0; Parkdauer = 0; cout<<"Moechten Sie das Programm wiederholen? [J/N]"; cin>>ende; clrscr(); } else { cout<<"FEHLER!!"; } } while(ende=='j' || ende=='J'); // getchar(); return 0; }
-
aber dann hab ichg das Problem dass er das jedes mal mit aufschreibt und beim Wiederholen alle Texte rausscmeist die er hat.
Aber er soll das halt für jeden Benutzer nur einmal oben aufschreiben.
Trotdem danek schonmal
-
????
hää wie jetzt?
Du möchstes doch wenn der Benutzer j oder J drückt, das das Programm wieder von vorn anfängt und das der Benutzer erneut Begrüsst wird oder nicht??Ich versteh deine Aussage dann nicht ganz?
-
also du hast insoweit dass ich möchte das die Begrüssung kommt sobald das Programm wiederholt wird. Alerdings wenn ich es nach deinem Vorschlag löse erscheint jedes Mal:
Guten Tag Bitte geben Sie die Parkdauer ein:
Er soll aber nur das erste Mal Guten Tag sagen. Danach soll nur noch "Bitte geben Sie die Parkdauer ein:" erscheinen. Die Begrüssung soll dann erst wieder kommen sobald das Programm widerholt wird.
Desweiteren erscheint bei mir sobald ich das Programm wiederhole der Dialog
Falsche Eingabe!! Vorgang abgebrochen Guten Tag Bitte geben Sie die Parkdauer ein:
Die Fehlermeldungen sollen natürlich nicht kommen wenn kein fehler vorhanden ist. Das Programm wiederholen sehe ich nicht als Fehler an.
Ich hoffe es ist jetzt etwas verständlicher
-
# include <iostream.h> # include <conio.h> int main() { cout <<"Guten Tag \n"; do //Setz das do hier hin { int Parkdauer, Zeittakt, Taste; float Einheit, Betrag; int Var1 = 1; int Var2 = 0; char ende; ende = 'j'; zaehler = 0; Zeittakt = 15; Parkdauer = 0; Betrag = 0; Einheit = 0.50; cout <<"Bitte geben Sie die Parkdauer ein :"; cin >> Taste; cout <<"\n"; if (Taste == Var1) { Parkdauer = Parkdauer + Zeittakt; cout <<"Parkdauer: "<<Parkdauer<<" min\n\n"; } else { if (Taste == Var2) { Betrag = Einheit * Parkdauer / Zeittakt; cout <<"Beleg wird gedruckt\n"; cout <<"Zu zahlender Betrag : "<<Betrag<<" Euro\n\n\n"; Betrag = 0; Parkdauer = 0; cout<<"Moechten Sie das Programm wiederholen? [J/N]"; cin>>ende; clrscr(); } else { cout<<"FEHLER!!"; } } while(ende=='j' || ende=='J'); // getchar(); return 0; }
-
# include <iostream.h> // # include <conio.h> -> Wozu? Nimm lieber die hier: # include <stdlib.h> // Ist nämlich für system("..."); int main(int argc, char* argv[]) /* int argc und char* argv[] sind übergebene Parameter. Sollte man drin haben. */ { int Parkdauer=0, Zeittakt=15, Taste=0; float Einheit=0.5, Betrag=0; // int Var1 = 1; -> ??? // int Var2 = 0; -> ??? char ende; // Deklarationen niemals in eine Schleife packen! cout <<"Guten Tag \n"; do //Setz das so hier hin { ende = 'j'; zaehler = 0; Zeittakt = 15; Parkdauer = 0; Betrag = 0; Einheit = 0.50; cout <<"Bitte geben Sie die Parkdauer ein :"; cin >> Taste; // Wo wird hier die Dauer eingegeben? cout <<"\n"; if (Taste == 1) // Wozu Var1 und Var2? Nimm doch gleich 1 und 0. { Parkdauer = Parkdauer + Zeittakt; cout <<"Parkdauer: "<<Parkdauer<<" min\n\n"; } else { if (Taste == 0) { Betrag = Einheit * Parkdauer / Zeittakt; cout <<"Beleg wird gedruckt\n"; cout <<"Zu zahlender Betrag : "<<Betrag<<" Euro\n\n\n"; Betrag = 0; Parkdauer = 0; getchar(); cout<<"Moechten Sie das Programm wiederholen? [J/N]"; cin>>ende; // clrscr(); // Borland-spezifisch, nimm lieber system("cls"); } else { cout<<"FEHLER!!"; } } while(ende=='j' || ende=='J'); // getchar(); return 0; }