Zum Inhalt springen

Brauche Hilfe bei meinem programm


PrinzPii

Empfohlene Beiträge

Hey Leute also ich muss ne Aufgabe programmieren bei der ein Parkautomat simmuliert wird. Es wird eine zufällige Zahl von 1-12 angegebene und man muss dann Geld einschmeißen um die Kosten zu bezahlen. es läuft auch alles wunderbar. Nur am Ende wenn man alles bezahlt wurde bis auf den letzten Euro und man dann mit 20Cent-Münzen,10Cent-Münzen weiterzahlt klappt es nicht die Gebühren sind zwar auf 0, aber er verlangt immer noch, dass man was reinschmeißt. Mit 50Cent-Münzen geht es aber seltsamerweise Also ich bin am Ende meiner Weisheiten ich habe keine Ahnung wie ich das rausbekomme. Kann mir nur vostellen, dass er irgendwo einen Rundungsfehler macht. Bitte um Hilfe hier mein Quellcode :


import java.util.Scanner; public class Parken {

        public static Scanner in;

        public static void main(String[] argsv)

        {

                double dGebuehr, dInput;

                in = new Scanner(System.in);

                dGebuehr = Math.random();

                dGebuehr = dGebuehr *10;

                dGebuehr = Math.round(dGebuehr)+2;


                while(dGebuehr > 0)

                {

                        System.out.printf("Die Parkgebühren betragen %7.2f\n", dGebuehr);

                        System.out.printf("Bitte Geld einwerfen!\n");

                        dInput = in.nextDouble();


                        if(dInput == 1 || dInput ==2)

                        {

                                if(dInput <= dGebuehr)

                                {

                                        dGebuehr = dGebuehr - dInput;

                                        continue;

                                }

                                else

                                        System.out.printf("Zuviel bezahlt!");

                        }

                        else

                        {

                                if(dInput == 10 || dInput == 20 || dInput == 50)

                                {

                                        dInput = dInput/100;



                                        if(dInput <= dGebuehr)

                                        {

                                                dGebuehr = dGebuehr - dInput;                                        continue;

                                }

                                else

                                        System.out.printf("Zuviel bezahlt!");

                        }

                        else

                        {

                                if(dInput == 10 || dInput == 20 || dInput == 50)

                                {

                                        dInput = dInput/100;



                                        if(dInput <= dGebuehr)

                                        {

                                                dGebuehr = dGebuehr - dInput;

                                                continue;

                                        }



                                        else

                                                System.out.printf("Zuviel bezahlt!");



                                }

                                else

                                        System.out.printf("Falschen Betrag eingeworfen\n");

                        }


                }


                System.out.printf("Die Gebuehren sind bezahlt!");

        } }

Bearbeitet von flashpixx
Code-Tags eingefügt
Link zu diesem Kommentar
Auf anderen Seiten teilen

Verwende bitte das nächste mal die Code-Tags. Bevor ich jetzt anfange den Code mir im einzelnen anzuschauen:

Schau Dir Endlicher Automat ? Wikipedia an, nimm ein Stück Papier und male Dir für Deinen Automaten ein solches Diagramm. Egal was Du machst, Du musst Dich _immer_ in einem definierten Zustand befinden (nach Deiner Beschreibung ist eben genau das das Problem).

Wenn Du auf dem Papier einen solchen Automaten hast, dann fängst Du an ihn zu codieren, dafür gibt es für Java fertige Tools in die man nur die Übergänge und Zustände rein setzen muss (z.B. Java Finite State Machine Framework ) oder Du schreibst es eben selbst. Birch das Problem vor allem so weit runter, dass Du für jeden Münzenwert einen Zustand hast.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...