M
Matze82
Gast
Hi!
Ich habe hier ein kleines Programm mit dem eine Wochenabrechnung erstellt wird. Ich hatte folgende Vorgaben:
Eine Arbeitsstunde 50 Euro. Wenn jemand mehr als 40 Stunden arbeitet werden die Überstunden mit 75 Euro vergütet.
Für jeden Meter Kabel werden 3 Euro berechnet. Ab 500 Meter Kabel (Kabeltrommel) kostet 1 Meter Kabel nur 2 Euro.
Hier ist das Programm weelches ich geschrieben habe. Funktioniert auch soweit, aber ich habe mir überlegt, dass man es vielleicht auch ein bisschen besser schreiben könnte. Habe gehört, dass man es auch ohne jegliche Schleifen machen kann. Also keine if, while, for schleifen oder switch anweisungen. Könnte mir das jemand helfen? Danke schonmal im vorraus.
METHODENAUFRUF:
METHODENDEKLARATION:
Ich habe hier ein kleines Programm mit dem eine Wochenabrechnung erstellt wird. Ich hatte folgende Vorgaben:
Eine Arbeitsstunde 50 Euro. Wenn jemand mehr als 40 Stunden arbeitet werden die Überstunden mit 75 Euro vergütet.
Für jeden Meter Kabel werden 3 Euro berechnet. Ab 500 Meter Kabel (Kabeltrommel) kostet 1 Meter Kabel nur 2 Euro.
Hier ist das Programm weelches ich geschrieben habe. Funktioniert auch soweit, aber ich habe mir überlegt, dass man es vielleicht auch ein bisschen besser schreiben könnte. Habe gehört, dass man es auch ohne jegliche Schleifen machen kann. Also keine if, while, for schleifen oder switch anweisungen. Könnte mir das jemand helfen? Danke schonmal im vorraus.
METHODENAUFRUF:
Code:
package pr1.Basics;
public class Materialkosten {
private static final double KOSTEN_EURO_JE_1M_KABEL = 3.00;
private static final double KOSTEN_EURO_JE_500M_KABELTROMMEL = 2.00;
private static final double KOSTEN_EURO_PRO_STUNDE = 50.00;
private static final double KOSTEN_EURO_AB_40_STUNDEN = 75.00;
public static double kostenStundenFuerZeit(double stunden) {
if (stunden <= 40){
stunden = KOSTEN_EURO_PRO_STUNDE * stunden;
}else {
stunden = 40 * KOSTEN_EURO_PRO_STUNDE + KOSTEN_EURO_AB_40_STUNDEN * (stunden-40);
}
return stunden;
}
public static double kostenFuerMaterial(double material) {
if (material<= 499){
material = material * KOSTEN_EURO_JE_1M_KABEL;
}else {
material = material * KOSTEN_EURO_JE_500M_KABELTROMMEL;
}
return material;
}
}
METHODENDEKLARATION:
Code:
package pr1.Basics;
import java.io.PrintWriter;
import java.util.Scanner;
import java.util.Locale;
public class MaterialkostenTest {
public static void main (String[] args){
Abrechnung ();
}
public static void Abrechnung (){
// Alle Ein- und Ausgaben im US-Format (Dezimalpunkt)
Locale.setDefault(Locale.US);
String Eingabe = "40.00 400.00 70.00 600.00";
Scanner in = new Scanner (Eingabe);
PrintWriter out = new PrintWriter (System.out, true);
out.println ("Kostenabrechnung");
out.println ();
out.println("Das Programm startet!");
out.println();
while (in.hasNext()){
double stunden = in.nextDouble();
double material = in.nextDouble();
double KostenStunden = Materialkosten.kostenStundenFuerZeit(stunden);
double KostenMaterial = Materialkosten.kostenFuerMaterial(material);
double GesamtKosten = KostenStunden + KostenMaterial;
out.println("Die Kosten für " + stunden + " Stunden und " + material + " Meter Kabel betragen:");
out.println();
out.println(stunden + " Stunden kosten: " + KostenStunden + " Euro");
out.println();
out.println(material + " Meter Kabel kostet: " + KostenMaterial + " Euro");
out.println();
out.println("Kosten Gesamt: " + GesamtKosten + " Euro");
out.println();
}
}
}