Fehler bei CPP Programmierung
-
Hallo ich bastel ein Bußgeldkatalog für die Schule. Ich habe da ein Problem mit den If Funktionen. Nachdem ich die zugelassene Geschwindigkeit und die übertretende Geschwindigkeit eingegeben habe, errechnet er mir den c Wert. Der C Wert soll mit der If Funktion zu dem angegebenen Programmblock springen, der dann die entsprechende Strafe ausspuckt. Mein Problem ist, der zeigt mir andauernd alles an. Ich finde kein Rat mehr. Bitte helft mir.
Hier ist mein Aufbau:
{
int a;
int b;
int c;
int y;
int z;cout << "Sie haben das Bussgeldkatalog geoeffnet, weil Sie sicherlich" "\n";
cout << "zu schnell unterwegs waren." "\n""\n";
cout << "Wenn Sie innerhalb geschlossener Ortschaften unterwegs waren," "\n";
cout << "druecken Sie die 1, fuer ausserhalb geschlossener Ortschaften die 2." "\n";
cin >> c;if (c==1)
{
cout << "Innerortsberechnung" "\n";
cout << "Bitte geben Sie die zugelassene Hoechstgeschwindigkeit an." "\n";
cin >> a;
cout << "Bitte geben Sie nun Ihre Geschwindigkeit an." "\n";
cin >> b;
c = (b - a);
cout << "Ihre Geschwindigkeitsueberschreitung betrug:" "\n";
cout << c;{
if (c>=0<=10)
{
cout << "Bis 10 km/h zu schnell erwartet Sie:" "\n" "\n";
cout << "15 Euro Strafe.";
}
}{
if (c>=11<=15)
{
cout << "Bis 15 km/h zu schnell erwartet Sie:" "\n" "\n";
cout << "25 Euro Strafe.";
}
}{
if (c>=16<=20)
{
cout << "Bis 20 km/h zu schnell erwartet Sie:" "\n" "\n";
cout << "35 Euro Strafe.";
}
}{
if (c>=21<=25)
{
cout << "Bis 25 km/h zu schnell erwartet Sie:" "\n" "\n";
cout << "80 Euro Strafe + 23,50 Euro Gebühren + 1 Punkt in Flensburg.";
}
}{
if (c>=26<=30)
{
cout << "Bis 30 km/h zu schnell erwartet Sie:" "\n" "\n";
cout << "100 Euro Strafe + 23,50 Euro Gebühren + 3 Punkte in Flensburg.";
}
}{
if (c>=31<=40)
{
cout << "Bis 30 km/h zu schnell erwartet Sie:" "\n" "\n";
cout << "160 Euro Strafe + 23,50 Euro Gebühren + 3 Punkte in Flensburg + 1 Monat Fahrverbot.";
}
}{
if (c>=41<=50)
{
cout << "Bis 30 km/h zu schnell erwartet Sie:" "\n" "\n";
cout << "200 Euro Strafe + 23,50 Euro Gebühren + 4 Punkte in Flensburg + 1 Monat Fahrverbot.";
}
}{
if (c>=51<=60)
{
cout << "Bis 30 km/h zu schnell erwartet Sie:" "\n" "\n";
cout << "280 Euro Strafe + 23,50 Euro Gebühren + 4 Punkte in Flensburg + 2 Monate Fahrverbot.";
}
}{
if (c>=61<=70)
{
cout << "Bis 30 km/h zu schnell erwartet Sie:" "\n" "\n";
cout << "480 Euro Strafe + 23,50 Euro Gebühren + 4 Punkte in Flensburg + 3 Monate Fahrverbot.";
}
}{
if (c>=71)
{
cout << "Bis 30 km/h zu schnell erwartet Sie:" "\n" "\n";
cout << "680 Euro Strafe + 23,50 Euro Gebühren + 4 Punkte in Flensburg + 3 Monate Fahrverbot.";
}
}
}
-
if (c>=0<=10)
O_o
Was willst du mit dieser abfrage erreichen ?
if (c>=0 && c<=10)
alle anderen genau so.
-
Hat sich erledigt . Selbst behoben

-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C++ (auch C++0x) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Grauenhaft - beim Ansehen der ersten Zeilen hab ich schon aufgehört weiterzulesen.
stattint a; int b; int c; int y; int z;solltest - nein, musst - Du deinen Variablen sinnvolle Namen geben!
Also:bool aussenOrt; //da hier nur 2 Möglichkeiten bestehen, reicht bool aus int hoechstGeschwindigkeit, Geschwindigkeit, ueberschreitung;Und benutze bitte die cpp-Tags beim posten von Code.
Ist zwar ein gewisser Mehraufwand dabei, aber wenn du ein paar Tage später mal wieder reinschaust, dann wirst du denken "wtf! Was ist denn a? Wo benutze ich b? Und wieso lasse ich erst in c eingeben ob ausserhalb eines Ortes und benutze es dann um die Überschreitung zu errechnen?? HÄ?!", naja oder so ähnlich.
ALso gleich richtige Bezeichner nehmen.
-
Incocnito schrieb:
bool aussenOrt; //da hier nur 2 Möglichkeiten bestehen, reicht bool aus int hoechstGeschwindigkeit, Geschwindigkeit, ueberschreitung;Und wenn wir schon dabei sind: Du solltest deinen Variablen auch den richtigen Typ geben. Ich nehme einfach mal an, dass Höchstgeschwindigkeit, Geschwindigkeit und Überschreitung größer als 0 sind, daher ist der richtige Datentyp unsigned int. Anders sieht´s natürlich aus, wenn statt
Ueberschreitung Differenzbenutzt wird, die kann ja tatsächlich negativ werden. Ich geh auch davon aus, dass das Auto vorwärts geblitzt wurde, ich glaube, der Bußgeldkatalog sieht andere Strafen vor, wenn man mit 80km/h beim Rückwärtsfahren erwischt wird.
-
DocShoe schrieb:
Ich geh auch davon aus, dass das Auto vorwärts geblitzt wurde, ich glaube, der Bußgeldkatalog sieht andere Strafen vor, wenn man mit 80km/h beim Rückwärtsfahren erwischt wird.
off topic
Die StVO interessiert die Richtung als solche nicht.
Wenn man rückwärts fährt ist man tatsächlich in der Gegenrichtung unterwegs, also ist wäre vermutl. die Geschwindigkeitsbegrenzung, die für die andere Richtung gilt (kann ja manchmal abweichen) zu beachten. Andererseits düfte in den Fällen, bei denen das relevant sein könnte, sowieso zu bezweifeln sein, dass das Fahrzeug noch beherrscht wird.