Java :: Aufgabe #225 :: Lösung #1

4 Lösungen Lösungen öffentlich
#225

Celsius und Fahrenheit Rechner

Anfänger - Java von Gelöschte Person - 31.03.2019 um 15:41 Uhr
Schreibe ein Programm das Celsius in Fahrenheit umrechnet und umgekehrt.











#1
vote_ok
von nOrdan (1160 Punkte) - 06.06.2019 um 23:49 Uhr
Anmerkung: Kann man bestimmt noch optimieren was die Ausgabe der Ergebnisse angibt, habe die Ergebnisse jetzt auf 2 Nachkommastellen runden lassen

Main-Klasse:

Quellcode ausblenden Java-Code

import Methodensammlung.Methoden;

import java.text.DecimalFormat;

/**
 * Celsius kann in Fahrenheit und Fahrenheit in Celsius umgerechnet
 * 
 * @author (nOrdan) 
 * @version (06.06.2019)
 */
public class FahrenheitCelsiusUmrechner
{

    Methoden m = new Methoden();
    
    DecimalFormat df = new DecimalFormat("0.00");

    public static void main(String [] args)
    {
        FahrenheitCelsiusUmrechner fcu = new FahrenheitCelsiusUmrechner();
        fcu.inputs();
    }

    private void inputs()
    {
        boolean valid1 = false;
        boolean valid2 = false;
        double gradzahl = 0;
        while (valid1 == false)
        {
            String input1 = m.userInput("Geben sie ein ob sie Celsius (c) oder Fahrenheit (f) eingeben wollen");
            m.errorIntInput(input1);
            try
            {
                input1 = input1.toLowerCase().replaceAll("\\s+","");
                if (input1.equals("c"))

                {
                    valid1 = true;
                    while (valid2 == false)
                    {
                        input1 = m.userInput("Geben sie die Gradzahl in Celsius ein");
                        m.errorIntInput(input1);
                        try
                        {
                            gradzahl = m.parseDouble(input1);
                            if (gradzahl < -273.15)
                            {
                                m.errorMessage("-273.15°C ist der absolute Nullpunkt, es kann nicht kälter werden. Bitte geben sie einen Wert größer als -273.15 ein","Scientifically wrong");
                                continue;
                            }                            
                            valid2 = true;
                            berechneFahrenheit(gradzahl);
                        }
                        catch(Exception e)
                        {
                            m.errorMessage("Invalid user input","Invalid input");  
                        }
                    }
                }
                else if (input1.equals("f"))
                {
                    valid1 = true;
                    while (valid2 == false)
                    {
                        input1 = m.userInput("Geben sie die Gradzahl in Fahrenheit ein");
                        m.errorIntInput(input1);
                        try
                        {
                            gradzahl = m.parseDouble(input1);
                            if (gradzahl < -459.67)
                            {
                                m.errorMessage("-459.67°F ist der absolute Nullpunkt, es kann nicht kälter werden. Bitte geben sie einen Wert größer als -459.67 ein","Scientifically wrong");
                                continue;
                            }
                            valid2 = true;
                            berechneCelsius(gradzahl);
                        }
                        catch(Exception e)
                        {
                            m.errorMessage("Invalid user input","Invalid input");  
                        }
                    }
                }
                else
                {
                    continue;
                }
            }
            catch(Exception e)
            {
                m.errorMessage("Invalid user input","Invalid input");                
            }
        }
    }
    
    private void berechneFahrenheit(double gradzahl)
    {
        double fahrenheit = gradzahl * 9 / 5 + 32;
        m.informationMessage(gradzahl + "°C sind auf zwei Nachkommastellen gerundet " + df.format(fahrenheit) + "°F","Ergebnis");
    }
    
    private void berechneCelsius(double gradzahl)
    {
        double celsius = (gradzahl - 32) * 5 / 9;
        m.informationMessage(gradzahl + "°F sind auf zwei Nachkommastellen gerundet " + df.format(celsius) + "°C","Ergebnis");
    }
}



Die Methoden die ich aus meinem eigenem Methodensammlung package benutzt habe:

Quellcode ausblenden Java-Code

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

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

public void errorIntInput(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.isEmpty() == true)
        {
            
        }
    }

public void errorMessage(String message,String errorName)
    {
        JOptionPane.showMessageDialog(null,message,errorName,JOptionPane.ERROR_MESSAGE); 
    }
    
    public void informationMessage(String message,String informationName)
    {
        JOptionPane.showMessageDialog(null,message,informationName,JOptionPane.INFORMATION_MESSAGE);
    }

Kommentare:

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

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

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.