Java :: Aufgabe #225
4 Lösungen

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:
Anmerkung: Kann man bestimmt noch optimieren was die Ausgabe der Ergebnisse angibt, habe die Ergebnisse jetzt auf 2 Nachkommastellen runden lassen
Main-Klasse:
Java-Code
Die Methoden die ich aus meinem eigenem Methodensammlung package benutzt habe:
Java-Code
Main-Klasse:

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:

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

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

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

import java.util.Scanner; class Scratch { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Gib die Tempertur ein"); double temperaturCelcius = scanner.nextDouble(); double temperaturFahrenheit = (temperaturCelcius * 9/5) +32; System.out.println(temperaturCelcius + " Grad Celsius sind "+ temperaturFahrenheit +" Grad Fahrenheit"); } }