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