0 Daumen
4,1k Aufrufe

Hallo zusammen, derzeit hänge ich leider etwas... :(

In meinem Java-Programm Wechselgeld soll eine Funktion (berechne()) einen Geldbetrag (in Cent) übergeben bekommen und die Anzahl der 50 Cent, 25 Cent, 15 Cent, 5 Cent, 2 Cent und 1 Cent Münzen (ich weiß, dass es einige Münzen gar nicht gibt, so lautet meine Aufgaben :D), ausgibt. Hierbei sollen so wenig Münzen wie möglich ausgegeben werden. Leider habe ich bei diesem Programm gerade Probeleme. : (  

Hier ist mein Code:

public class Wechselgeld {
  public static void main(String[] args) {
     
      System.out.println("Bitte geben Sie einen zu zahlenden Betrag in Cent ein!\n");
     
      int zuzahlen = new java.util.Scanner(System. in ).nextInt();
     
      System.out.println("Bitte geben Sie den Betrag, den Sie zahlen, in Cent ein!\n");
     
      int gezahlt = new java.util.Scanner(System. in ).nextInt();
     
      if (zuzahlen > gezahlt) {
        System.out.println("Sie müssen mehr bezahlen!\n");
      }
      else {
        berechne();
      }
     
      berechne() {
        if (zuzahlen == gezahlt) {
            System.out.println("Sie haben die exakte Summe gezahlt!\n");
        } else {
            // Hier wollte ich die Rechnung haben :(
        }
      }

  }
}

Über Hilfe würde ich mich freuen! :)

Avatar von

Du musst mit Rest teilen. Also modulo (%). Ich hab noch irgendwo ein Programm was das berechnet.. Ich schau mal bei Gelegenheit.

Hast Du Dein Programm noch gefunden?

Sorry, ich bin erst gestern abend nach Hause gekommen. Ich suche gleich danach.

1 Antwort

+2 Daumen
 
Beste Antwort

public void rueckgeldAusrechnen(){
        while (wechselgeld>=200 && vorhandenZweiEuro>0){
            wechselgeld=wechselgeld-200;
            vorhandenZweiEuro--;
            outputZweiEuro.setText(""+vorhandenZweiEuro);
        }
        while(wechselgeld>=100 && vorhandenEinEuro>0){
            wechselgeld=wechselgeld-100;
            vorhandenEinEuro--;
            outputEinEuro.setText(""+vorhandenEinEuro);
        }
        while(wechselgeld>=50 && vorhandenFuenfzig>0){
            wechselgeld=wechselgeld-50;
            vorhandenFuenfzig--;
            outputFuenfzig.setText(""+vorhandenFuenfzig);
        }
        while(wechselgeld>=20 && vorhandenZwanzig>0){
            wechselgeld=wechselgeld-20;
            vorhandenZwanzig--;
            outputZwanzig.setText(""+vorhandenZwanzig);
        }
        while(wechselgeld>=10 && vorhandenZehn>0){
            wechselgeld=wechselgeld-10;
            vorhandenZehn--;
            outputZehn.setText(""+vorhandenZehn);
        }
        while(wechselgeld>=5 && vorhandenFuenf>0){
            wechselgeld=wechselgeld-5;
            vorhandenFuenf--;
            outputFuenf.setText(""+vorhandenFuenf);
        }
       
        String wechselgeldString = String.format("%1$.2f",((float)(wechselgeldAusgeben)/100));
        JOptionPane.showMessageDialog(null,"Ihr Rückgeld beträgt "+wechselgeldString+"€.");
    }

Der Code ist schon vor einiger Zeit entstanden.. Damals hatten wir JAVA-Projekte im Informatik-LK in der Schule. Der Code gehört zu einem Ticket-Automaten, der mit einer Anzahl vorhandener Münzen auskommen muss. Werden Münzen eingeworfen, erhöht sich diese Zahl dementsprechend.

Der Betrag wird als Ganzzahl übergeben (wechselgeld) und dann wird überprüft, wie oft jede Münze abgezogen werden kann. Sehr unschön, aber übersichtlich ;)

Du kannst die Münzen ganz einfach ändern, indem du im Schleifenkopf und im Anweisungsblock die Zahlen änders. Wenn du Fragen hast, gerne melden. Die ganzen output.setText kannst du getrost löschen, die Felder zeigen nur an, wie viele Münzen es noch gibt.

Avatar von

Dankeschön, das hat mir sehr geholfen! : )

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

0 Daumen
1 Antwort
0 Daumen
1 Antwort
0 Daumen
2 Antworten

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community