Java :: Aufgabe #4 :: Lösung #11
15 Lösungen

#4
Zinseszinsberechnung und Ausgabe
Anfänger - Java
von Gustl
- 12.08.2012 um 14:59 Uhr
Schreiben Sie ein Programm zur Zinseszinsberechnung. Das Konsolenprogramm soll den anzulegenden Geldbetrag, den Jahreszins und die Laufzeit in Jahren abfragen. Danach soll für jedes Laufjahr der Geldbetrag mit Zinseszins ausgegeben werden.
Etwa so:
Etwa so:
Konsolenausgabe:
Geldbetrag in Euro: 150
Jahreszins (0.05 = 5%): 0.04
Laufzeit in Jahren: 3
Wert nach 1 Jahr: 156,00 Euro
Wert nach 2 Jahren: 162,24 Euro
Wert nach 3 Jahren: 168,73 Euro
#11

von nOrdan (1160 Punkte)
- 30.05.2019 um 20:31 Uhr
Anmerkung: Ich arbeite mit dem Programm BlueJ
Java-Code

import javax.swing.JOptionPane; import java.text.DecimalFormat; /** * Berechnung von Zinseszinsen * * @author (nOrdan) * @version (30.05.2019 20:29) */ public class Zinseszins { DecimalFormat df = new DecimalFormat("0.00"); /** * Konstruktor für Objekte der Klasse Zinseszins */ public Zinseszins() { } public void zinseszins() { boolean valid1 = false; boolean valid2 = false; boolean valid3 = false; boolean valid4 = false; double geldbetrag = 0; double jahreszins = 0; int laufzeit = 0; while (valid1 == false) { String input1 = JOptionPane.showInputDialog("Geben sie ihren Geldbetrag ein"); try { if (input1 == null) { System.exit(0); //Drückt der User auf abbrechen wird null zurück gegeben und das Programm wird beendet } else if (input1.length() == 0) { continue; //Gibt der User nichts ein und drückt auf Ok wird die While-Schleife weiter fortgeführt bis der User etwas eingibt und auf Ok drückt } else { geldbetrag = parseDouble(input1); valid1 = true; } } catch(Exception e) { errorMessage("Invalid input","Error"); } } while (valid2 == false) { String input2 = JOptionPane.showInputDialog("Geben sie an ob sie ihren Jahreszins in Prozent(p oder %) oder als Dezimalzahl(d) angeben wollen"); if (input2 == null) { System.exit(0); } else if (input2.length() == 0) { continue; } else { input2 = input2.toLowerCase().replaceAll("\\s+",""); if (input2.equals("p") || input2.equals("%")) { valid2 = true; while (valid3 == false) { input2 = JOptionPane.showInputDialog("Geben sie den Jahreszins in Prozent ein"); try { if (input2 == null) { System.exit(0); } else if (input2.length() == 0) { continue; } else { jahreszins = parseDouble(input2); jahreszins /= 100; valid3 = true; } } catch(Exception e) { errorMessage("Invalid input","Error"); } } } else if (input2.equals("d")) { valid2 = true; while (valid3 == false) { input2 = JOptionPane.showInputDialog("Geben sie den Jahreszins als Dezimalzahl ein"); try { if (input2 == null) { System.exit(0); } else if (input2.length() == 0) { continue; } else { jahreszins = parseDouble(input2); valid3 = true; } } catch(Exception e) { errorMessage("Invalid input","Error"); } } } else { errorMessage("Invalid input, please repeat your action","Error"); continue; } } } while (valid4 == false) { String input3 = JOptionPane.showInputDialog("Geben sie die Laufzeit ein"); try { if (input3 == null) { System.exit(0); //Drückt der User auf abbrechen wird null zurück gegeben und das Programm wird beendet } else if (input3.length() == 0) { continue; //Gibt der User nichts ein und drückt auf Ok wird die While-Schleife weiter fortgeführt bis der User etwas eingibt und auf Ok drückt } else { laufzeit = parseInt(input3); valid4 = true; } } catch(Exception e) { errorMessage("Invalid input","Error"); } } ergebnisGeld(geldbetrag,jahreszins,laufzeit); } private void errorMessage(String message,String errorName) { JOptionPane.showMessageDialog(null,message,errorName,JOptionPane.ERROR_MESSAGE); } private int parseInt(String input) { return Integer.parseInt(input); } private double parseDouble(String input) { return Double.parseDouble(input); } private void konsoleLeeren() { System.out.print('\u000C'); } private void ergebnisGeld(double geldbetrag,double jahreszins,int laufzeit) { konsoleLeeren(); for (int i = 1; i < (laufzeit+1); i++) { geldbetrag = geldbetrag * (1 + jahreszins); if (i == 1) { System.out.println("Geld nach " + i + " Jahr: " + df.format(geldbetrag) + "€"); } else { System.out.println("Geld nach " + i + " Jahren: " + df.format(geldbetrag) + "€"); } } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1