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

15 Lösungen Lösungen öffentlich
#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:

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
vote_ok
von nOrdan (1160 Punkte) - 30.05.2019 um 20:31 Uhr
Anmerkung: Ich arbeite mit dem Programm BlueJ

Quellcode ausblenden 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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2092821

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.