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
2108481

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.