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

8 Lösungen Lösungen öffentlich
#11

Multiplikation ohne zu multiplizieren

Anfänger - Java von Gustl - 11.11.2012 um 17:24 Uhr
Erstellen Sie ein Konsolenprogramm welches dem Benutzer auffordert 2 Zahlen einzugeben, diese sollen dann multipliziert werden, jedoch ist nur die Grundrechenart Addition erlaubt.

Wenn einer der 2 Zahlen keine Zahl ist, soll eine Fehlermeldung ausgegeben werden und der Benutzer noch einmal aufgefordert werden eine Zahl einzugeben.
#5
vote_ok
von nOrdan (1160 Punkte) - 02.06.2019 um 21:08 Uhr
Anmerkung: Ich arbeite mit dem Programm BlueJ

Quellcode ausblenden Java-Code


import javax.swing.JOptionPane;

import java.text.DecimalFormat;

/**
 * Ein Programm welches Multiplikation nur mithilfe von Additon durchführt.
 * 
 * @author (nOrdan) 
 * @version (02.06.2019)
 */
public class MultiplikationMitAddition
{
    
    DecimalFormat df = new DecimalFormat("0.00");
    
    public static void main(String [] args)
    {
        MultiplikationMitAddition mpa = new MultiplikationMitAddition();
        mpa.inputs();
    }

    private void inputs()
    {
        boolean valid1 = false;
        double ersteZahl = 0;
        double zweiteZahl = 0;
        while (valid1 == false)
        {
            String input1 = userInput("Bitte die erste Zahl eingeben");
            try 
            {   
                errorUserInput(input1);
                ersteZahl = parseDouble(input1);
                valid1 = true;
            }
            catch(Exception e)
            {
                errorMessage("Invalid user input","Input Error");
            }                
        }
        valid1 = false;
        while (valid1 == false)
        {
            String input2 = userInput("Bitte die zweite Zahl eingeben");
            try
            {
                errorUserInput(input2);
                zweiteZahl = parseDouble(input2);
                valid1 = true;
            }
            catch(Exception e)
            {
                errorMessage("Invalid user input","Input Error");
            }
        }    
        berechnungen(ersteZahl,zweiteZahl);
    }

    private void berechnungen(double ersteZahl, double zweiteZahl)
    {
        double ergebnis = 0;
        for (int i = 0; i < ersteZahl; i++)
        {            
            ergebnis += zweiteZahl;
        }
        JOptionPane.showMessageDialog(null,"Das Ergebnis ist auf zwei Nachkommastellen gerundet: " + df.format(ergebnis), "Ergebnis",JOptionPane.INFORMATION_MESSAGE);
    }

    private String userInput(String message)
    {
        return JOptionPane.showInputDialog(message);
    }

    private double parseDouble(String input)
    {
        return Double.parseDouble(input);
    }

    private void errorUserInput(String input)
    {
        if (input == null) 
        {
            System.exit(0); //Drückt der User auf abbrechen wird null zurück gegeben und das Programm wird beendet
        }
        else if (input.length() == 0)
        {

        }
    }

    private void errorMessage(String message,String errorName)
    {
        JOptionPane.showMessageDialog(null,message,errorName,JOptionPane.ERROR_MESSAGE); 
    }
}


Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

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