Bussgeldkatalog Proble,m



  • {

    int a;
    int b;
    int c;
    int y;

    Anfang:
    cout << "Sie haben das Bussgeldkatalog geoeffnet, weil Sie sicherlich" "\n";
    cout << "zu schnell unterwegs waren." "\n""\n";
    cout << "Wenn Sie innerhalb geschlossener Ortschaften geblitzt worden sind," "\n";
    cout << "druecken Sie die 1, fuer ausserhalb geschlossener Ortschaften die 2." "\n";
    cin >> c;

    if (c>=3)
    {
    cout << "Fehler! Bitte nocheinmal versuchen" "\n" "\n";
    goto Anfang;
    }

    if (c==1)
    {
    Innerortsberechnung:
    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;

    if (b<=99)

    {
    y = (b - a - 3);

    }

    if (b>=100)

    {

    y = (b - a - (b * 3 / 100));

    }
    cout << "Ihre Geschwindigkeitsueberschreitung nach Toleranzabzug betrug:" "\n";
    cout << y; "\n""\n";

    if (y<=0)

    {

    cout << "\n""\n" "Ihre Ueberschrittende Geschwindigkeit ist ungueltig!"" \n""\n";
    goto Innerortsberechnung;

    }

    if (y<=10)
    {
    cout << "\n" "\n" "Bis 10 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "15 Euro Strafe.";
    return 0;
    }

    if (y<=15)
    {
    cout << "\n" "\n" "Bis 15 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "25 Euro Strafe.";
    return 0;
    }

    if (y<=20)
    {
    cout << "\n" "\n" "Bis 20 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "35 Euro Strafe.";
    return 0;
    }

    if (y<=25)
    {
    cout << "\n" "\n" "Bis 25 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "80 Euro Strafe + 23,50 Euro Gebuehren + 1 Punkt in Flensburg.";
    return 0;
    }

    if (y<=30)
    {
    cout << "\n" "\n" "Bis 30 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "100 Euro Strafe + 23,50 Euro Gebuehren + 3 Punkte in Flensburg.";
    return 0;
    }

    if (y<=40)
    {
    cout << "\n" "\n" "Bis 40 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "160 Euro Strafe + 23,50 Euro Gebuehren + 3 Punkte in Flensburg + 1 Monat Fahrverbot.";
    return 0;
    }

    if (y<=50)
    {
    cout << "\n" "\n" "Bis 50 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "200 Euro Strafe + 23,50 Euro Gebuehren + 4 Punkte in Flensburg + 1 Monat Fahrverbot.";
    return 0;
    }

    if (y<=60)
    {
    cout << "\n" "\n" "Bis 60 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "280 Euro Strafe + 23,50 Euro Gebuehren + 4 Punkte in Flensburg + 2 Monate Fahrverbot.";
    return 0;
    }

    if (y<=70)
    {
    cout << "\n" "\n" "Bis 70 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "480 Euro Strafe + 23,50 Euro Gebuehren + 4 Punkte in Flensburg + 3 Monate Fahrverbot.";
    return 0;
    }

    if (y>=71)
    {
    cout << "\n" "\n" "Ab 71 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "680 Euro Strafe + 23,50 Euro Gebuehren + 4 Punkte in Flensburg + 3 Monate Fahrverbot.";
    return 0;

    }
    }

    if (c==2)
    {
    Ausserortsberechnung:
    cout << "Ausserortsberechnung:" "\n";
    cout << "Bitte geben Sie die zugelassene Hoechstgeschwindigkeit an." "\n";
    cin >> a;
    cout << "Bitte geben Sie nun Ihre Geschwindigkeit an." "\n";
    cin >> b;

    if (b<=99)

    {
    y = (b - a - 3);

    }

    if (b>=100)

    {

    y = (b - a - (b * 3 / 100));

    }
    cout << "Ihre Geschwindigkeitsueberschreitung nach Toleranzabzug betrug:" "\n";
    cout << y; "\n""\n";

    if (y<=0)

    {

    cout << "\n""\n" "Ihre Ueberschrittende Geschwindigkeit ist ungueltig!"" \n""\n";
    goto Ausserortsberechnung;

    }

    if (y<=10)
    {
    cout << "\n" "\n" "Bis 10 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "10 Euro Strafe.";
    return 0;
    }

    if (y<=15)
    {
    cout << "\n" "\n" "Bis 15 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "20 Euro Strafe.";
    return 0;
    }

    if (y<=20)
    {
    cout << "\n" "\n" "Bis 20 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "30 Euro Strafe.";
    return 0;
    }

    if (y<=25)
    {
    cout << "\n" "\n" "Bis 25 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "70 Euro Strafe + 23,50 Euro Gebuehren + 1 Punkt in Flensburg.";
    return 0;
    }

    if (y<=30)
    {
    cout << "\n" "\n" "Bis 30 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "80 Euro Strafe + 23,50 Euro Gebuehren + 3 Punkte in Flensburg.";
    return 0;
    }

    if (y<=40)
    {
    cout << "\n" "\n" "Bis 40 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "120 Euro Strafe + 23,50 Euro Gebuehren + 3 Punkte in Flensburg.";
    return 0;
    }

    if (y<=50)
    {
    cout << "\n" "\n" "Bis 50 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "160 Euro Strafe + 23,50 Euro Gebuehren + 3 Punkte in Flensburg + 1 Monat Fahrverbot.";
    return 0;
    }

    if (y<=60)
    {
    cout << "\n" "\n" "Bis 60 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "240 Euro Strafe + 23,50 Euro Gebuehren + 4 Punkte in Flensburg + 1 Monat Fahrverbot.";
    return 0;
    }

    if (y<=70)
    {
    cout << "\n" "\n" "Bis 70 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "440 Euro Strafe + 23,50 Euro Gebuehren + 4 Punkte in Flensburg + 2 Monate Fahrverbot.";
    return 0;
    }

    if (y>=71)
    {
    cout << "\n" "\n" "Ab 71 km/h zu schnell erwartet Sie:" "\n" "\n";
    cout << "600 Euro Strafe + 23,50 Euro Gebuehren + 4 Punkte in Flensburg + 3 Monate Fahrverbot.";
    return 0;

    }
    }
    }

    Das ist mein Bussgeldkatalog.

    Meine 1.Frage: Wie kann ich es einstellen, dass der Fragt, ob er wieder ein Verstoß ausrechnen will? Das bedeutet so viel: Möchten Sie weiterrechnen, dann drücken Sie die 1, wenn nicht, dann die 2. (Dann gleichzeitig verhindern, dass bei einer Eingabe z.B. von einer 3 eine Fehlermeldung erscheint).

    Meine 2. Frage: Wie kann ich bei den If Befehlen die Eingabe von Buchstaben verhindern? Wenn ich a z.B. eintippe, dann kommt mein Bussgeldkatalog in eine Endschleife und so. 🙂

    Danke für die Hilfe im Vorraus.

    MFG

    Andy



  • Frage 1 habe ich mir grade selber erporgrammiert 😉

    Bleibt nur noch Frage 2 offen.



  • Hier ein komplettes Beispiel, wie man es machen könnte:

    #include <iostream>
    
    int main()
    {
    	while (true)
    	{
    		int a;
    
    		std::cout << "Eingabe: ";
    		std::cin >> a;
    
    		if (std::cin.fail()) // Ist beim Einlesen ein Fehler aufgetreten?
    		{
    			std::cin.clear(); // Löschen der Fehlerflags
    			std::cin.sync(); // Löschen der verbliebenen Daten im Lesepuffer
    
    			std::cerr << "Fehler: Bitte nur Zahlen eingeben!\n" << std::endl;
    
    			continue; // An den Schleifenanfang gehen und es erneut probieren
    		}
    
    		std::cout << "Ausgabe: " << a << "\n" << std::endl;
    	}
    
    	return 0;
    }
    

    Noch ein Tipp: Versuch eine bessere Lösung für die vielen goto s zu finden.

    Bitte beachte auch, das C++ und C++/CLI nicht das gleiche meinen. Du bist also im falschen Unterforum gelandet und hast damit unnötig lange auf eine Antwort warten müssen.

    Das richtige Forum findest du hier: http://www.c-plusplus.net/forum/f15



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET 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.


Log in to reply