Java :: Aufgabe #225

3 Lösungen Lösungen öffentlich

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.











Lösungen:

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);
    }

vote_ok
von Kotgreifer (660 Punkte) - 18.06.2019 um 11:10 Uhr
Quellcode ausblenden Java-Code
import java.util.Scanner;
public class Temperatur {
	public Temperatur() {
		
	}
	public static void main(String[] args) {
		System.out.println("Guten Tag, welche Temperatur möchten sie errechnen");
		System.out.println("Fahrenheit      1");
		System.out.println("Celsius    	2");
		Scanner scn =new Scanner(System.in);
		int choice=scn.nextInt();
		
		if (choice==1) {
			System.out.print("Temperatur in Celsius : ");
			int input= scn.nextInt();
			System.out.println(input*1.8+32+" Fahrenheit");
		}
		else {
			System.out.print("Temperatur in Fahrenheit : ");
			int input= scn.nextInt();
			System.out.println((input-32)/1.8+" Celsius");
		}
	}
}
vote_ok
von Fre011 (230 Punkte) - 27.08.2019 um 16:51 Uhr
Quellcode ausblenden Java-Code
import java.util.InputMismatchException;
import java.util.Scanner;

public class Celsius_Fahrenheit {

	public static void main(String[] args) {
		
		Scanner input = new Scanner(System.in);
		double temperature = 0;
		boolean repeat;
		
		do{
			repeat = false;
			try {
				System.out.println("Eine Temperatur in °C eingeben:");
				temperature = input.nextDouble();
			} catch(InputMismatchException ime){
				repeat = true;
				String errString = input.next();
		        System.out.println(errString + "ist keine Zahl! Bitte versuchen Sie es erneut:");
		    }
		} while (repeat);
		
		System.out.format("%f °C entsprechen %f °F \n", temperature, (temperature - 32) * 5/9);
		
		do{
			repeat = false;
			try {
				System.out.println("Eine Temperatur in °F eingeben:");
				temperature = input.nextDouble();
			} catch(InputMismatchException ime){
				repeat = true;
				String errString = input.next();
		        System.out.println(errString + "ist keine Zahl! Bitte versuchen Sie es erneut:");
		    }
		} while (repeat);
		
		System.out.format("%f °F entsprechen %f °C \n", temperature, temperature * 9/5 + 32);
		
	}

}