Aufgabe Bruttorechner

9GRAMM

Mitglied
Kann mir jemand sagen, warum jammert hier die IDE? Habe momentan k.A. wie ich die Aufgabe sonst lösen kann. Als Gedanke habe ich noch Switch Case für das Gehalt einzusetzen. Würde gerne Ihre Meinung wissen.

Aufgabe:
Es soll ein Programm geschrieben werden für die Berechnung des Bruttogehalts von Vertriebsmitarbeitern. Dass Bruttogehalt setzt sich aus einem festen und einem flexiblen Anteil zusammen

Bestimmung fester Anteil:

BetriebszugehörigkeitGehalt
Bis 5 Jahre1.700 €
Über 5 Jahre bis 10 Jahre2.100 €
Über 10 Jahre2.700 €


Bestimmung flexibler Anteil:

MonatsumsatzGehaltszuschlag
Bis 5000 €10% vom Umsatz
Über 5.000 € bis 10.000 €15% vom Umsatz
Über 10.000 €23% vom Umsatz


Nach Eingabe der Werte soll das Bruttogehalt berechnet und ausgegeben werden.
 

Anhänge

  • fehlerjava.JPG
    fehlerjava.JPG
    82,6 KB · Aufrufe: 2

temi

Top Contributor
Bitte Code nicht als Screenshot, sondern per Copy & Paste in Codetags (das </> Symbol im Editor) einfügen.

In Java ist der Punkt das Dezimaltrennzeichen: 1,2 => 1.2
 

9GRAMM

Mitglied
Java:
public class Bruttorechner {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);


        double gehalt;
        double umsatz;
        int betriebszugehoerigkeit;

        //Einlesen
        betriebszugehoerigkeit = scan.nextInt();
        System.out.println("Geben Sie Ihre Betriebszugehörigkeit in Jahren ein: ");

        umsatz = scan.nextInt();
        System.out.println("Geben Sie Ihre Umsatz in EUR ein: ");
        if (betriebszugehoerigkeit <= 5) {
            gehalt = 1700;
        } else if (betriebszugehoerigkeit > 5) {
            if (betriebszugehoerigkeit < 10) {
                gehalt = 2100;
            } else {
                betriebszugehoerigkeit = 2700;
            }
        }
        System.out.println("Ihre Bruttogehalt ist: " + gehalt + "€");

        if (umsatz < 5000) {
            gehalt = gehalt + umsatz * 0.1;
        } else if (umsatz < 10000) {
            gehalt = gehalt + umsatz * 0.15;
        } else (umsatz > 10000) {
            gehalt = gehalt + umsatz * 0.23;
        }
        System.out.println("Ihre Gehalt nach dem Zuschlagberenung: " + gehalt);
 

mihe7

Top Contributor
1. Du lässt den Benutzer erst was eingeben und sagst ihm dann, was er eingeben hätte sollen :)
2. Das if in Zeile 20 ist überflüssig. Wenn die betriebszugehörigkeit nicht kleiner gleich 5 ist, ist sie automatisch größer als 5. Du kannst also direkt nach < 10 (oder <= 10) fragen. (wie beim Umsatz unten)
3. Das if in Zeile 33 ist überflüssig (EDIT: sehe gerade, hier fehlt das if ganz, das geht natürlich nicht). Hier reicht ein else, aus eben genannten Gründen.

Echte Probleme kann ich bei dem Code auf den ersten Blick nicht erkennen.
 

9GRAMM

Mitglied
1. Du lässt den Benutzer erst was eingeben und sagst ihm dann, was er eingeben hätte sollen :)
2. Das if in Zeile 20 ist überflüssig. Wenn die betriebszugehörigkeit nicht kleiner gleich 5 ist, ist sie automatisch größer als 5. Du kannst also direkt nach < 10 (oder <= 10) fragen. (wie beim Umsatz unten)
3. Das if in Zeile 33 ist überflüssig (EDIT: sehe gerade, hier fehlt das if ganz, das geht natürlich nicht). Hier reicht ein else, aus eben genannten Gründen.

Echte Probleme kann ich bei dem Code auf den ersten Blick nicht erkennen.
Zu Punkto 3 verstehe ich überhaupt nicht. In Zeile 33 steht doch ein else, du sagst aber da fehlt ein if. Wie soll man es verstehen. Sorry bin vielleicht zu anfänger (
 

9GRAMM

Mitglied
Code nach dem Bearbeitung...

Java:
public class Bruttorechner {


    public static void main(String[] args) {


        Scanner scan = new Scanner(System.in);



        double gehalt;

        double umsatz;

        int betriebszugehoerigkeit;


        //Einlesen

        System.out.println("Geben Sie Ihre Betriebszugehörigkeit in Jahren ein: ");

        betriebszugehoerigkeit = scan.nextInt();


        System.out.println("Geben Sie Ihre Umsatz in EUR ein: ");

        umsatz = scan.nextInt();


        if (betriebszugehoerigkeit <= 5) {

            gehalt = 1700;

        } else if (betriebszugehoerigkeit <= 10) {

                gehalt = 2100;

            } else {

                betriebszugehoerigkeit = 2700;

            }


        System.out.println("Ihre Bruttogehalt ist: " + gehalt + "€");


        if (umsatz < 5000) {

            gehalt = gehalt + umsatz * 0.1;

        } else if (umsatz < 10000) {

            gehalt = gehalt + umsatz * 0.15;

        } else (umsatz > 10000) {

            gehalt = gehalt + umsatz * 0.23;

        }

        System.out.println("Ihre Gehalt nach dem Zuschlagberenung: " + gehalt);
 

LimDul

Top Contributor
Kleiner Tipp - nicht nur angeben, was unterstrichen wird - sondern auch warum. So eine IDE ist gesprächig und gibt dir Fehlerbeschreibungen. Die sollte man sich in Ruhe anschauen.

Ein Problem ist Zeile 40 - da wird Betriebszugehörigkeit = 2700 zugewiesen. Sieht nicht sinnvoll aus.
Konsequenz: gehalt ist nicht initialisiert
 

mihe7

Top Contributor
Zu Punkto 3 verstehe ich überhaupt nicht. In Zeile 33 steht doch ein else, du sagst aber da fehlt ein if.
Nach einem else hat eine Anweisung (bzw. ein Block von Anweisungen) zu stehen. Bei Dir folgt jedoch eine Bedingung:
Java:
        } else (umsatz > 10000) {
            gehalt = gehalt + umsatz * 0.23;
        }
Das geht so nicht, weil (umsatz > 1000) nun einmal keine Anweisung ist. Würdest Du ein if einfügen, wäre das korrekter Code:
Java:
        } else if (umsatz > 10000) {
            gehalt = gehalt + umsatz * 0.23;
        }
Tatsächlich ist das if aber überflüssig, weil alle anderen Fälle bereits vorher erledigt sein sollten (was bei Dir leider auch nicht der Fall ist, dazu komme ich gleich). Also reicht:
Java:
        } else {
            gehalt = gehalt + umsatz * 0.23;
        }

In Zeile 31 prüfst Du den Fall umsatz < 10000, tatsächlich sollte dort umsatz <= 10000 stehen, da der Fall umsatz == 10000 sonst nicht berücksichtigt wird.
 
K

kneitzel

Gast
Die Verwendung eines Scanners ist hier natürlich vollkommen ok. Und wenn man sich die Dokumentation des Scanners anschaut, dann ist die Verwendung hier genau das, wofür des Scanner gedacht ist:
A simple text scanner which can parse primitive types and strings using regular expressions.
A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace. The resulting tokens may then be converted into values of different types using the various next methods.

Ich würde sogar die Aussage umdrehen: Es sieht falsch aus, wenn der Scanner nicht verwendet würde.
- Entweder man baut Funktionalität nach (z.B. die Erkennung von Integern per regulärem Ausdruck)
- oder man verzichtet auf viel Funktionalität und nutzt dann z.B. Exceptions zur Steuerung des normalen Ablaufs (Einfach Integer.parseInt aufrufen und ggf. Exception fangen)

@9GRAMM Es sollte also alles ok sein - zumal das ja auch dem entspricht, was euch gezeigt wurde.
 

Blender3D

Top Contributor
Uff. An allen vielen Dank! Endlich ist mir geläufig geworden.
Funktionen helfen Dir, das Programm besser zu strukturieren.
[CODE lang="java" highlight="7-15"]import java.util.Scanner;

public class BruttoRechner {
final static Scanner input = new Scanner(System.in);

public static void main(String[] args) {
double pay = 0;
double sales = 0;
int seniority = 0;
seniority = (int) inputValue("Geben Sie Ihre Betriebszugehörigkeit in Jahren ein");
sales = inputValue("Geben Sie Ihren Umsatz in EUR ein");
pay = seniorityToPay(seniority);
System.out.println("Ihr Bruttogehalt ist " + pay + " €");
pay = addSalesbonusToPay(sales, pay);
System.out.println(String.format("Ihr Gehalt nach der Zuschlagsberechnung %.2f€", pay));
}

static double addSalesbonusToPay(double sales, double pay) {
if (sales <= 5000)
return pay * 1.1;
if (sales <= 10000)
return pay * 1.15;
return pay * 1.23;
}

static double inputValue(String label) {
double value = 0;
boolean ok = false;
do {
try {
System.out.print(label + " >");
value = Double.parseDouble(input.next());
ok = true;
} catch (NumberFormatException e) {
System.out.println("Bitte nur Zahlen eingeben!");
}
} while (!ok);
return value;
}

static double seniorityToPay(int seniority) {
if (seniority <= 5)
return 1700;
if (seniority <= 10)
return 2100;
return 2700;
}

}[/CODE]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Jere58 Aufgabe zu Mustern Java Basics - Anfänger-Themen 1
M Interfaces Aufgabe Java Basics - Anfänger-Themen 2
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Mikejr Java Berg aufgabe Java Basics - Anfänger-Themen 6
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
berserkerdq2 Habe ich die Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 3
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
Neuling47 Ich zerbreche mit den kopf an einer Aufgabe Java Basics - Anfänger-Themen 61
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
T Informatik Studium Aufgabe Java Basics - Anfänger-Themen 4
T Aufgabe Informatik Studium Java Basics - Anfänger-Themen 10
I matrix aufgabe Java Basics - Anfänger-Themen 22
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
J boolean aufgabe Java Basics - Anfänger-Themen 9
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
StevenGG Aufgabe im Studium Java Basics - Anfänger-Themen 36
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
S Schulaufgabe - verstehe leider die Aufgabe nicht Java Basics - Anfänger-Themen 4
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
R Eclipse Aufgabe Java Basics - Anfänger-Themen 4
J OOP-Aufgabe Java Basics - Anfänger-Themen 15
Helix19 Informatik Grundkurs (Haus-)Aufgabe Java Basics - Anfänger-Themen 5
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
TimoN11 Java spezielle Suchprobleme - Aufgabe Java Basics - Anfänger-Themen 5
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 2
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 9
dieter000 Aufgabe Hilfe Java Basics - Anfänger-Themen 18
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
Q Hilfe auf Aufgabe(Matrixmultiplikation) Java Basics - Anfänger-Themen 1
jonathanpizza Hilfe bei der Aufgabe Java Basics - Anfänger-Themen 19
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
C Rechnungen-Aufgabe Java Basics - Anfänger-Themen 18
C Biene-Aufgabe Java Basics - Anfänger-Themen 2
K Algorithmen und Datenstrukturen Programmier Aufgabe Java Basics - Anfänger-Themen 10
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Aufgabe Flussdiagramm, kann jemand checken? Java Basics - Anfänger-Themen 8
B Methoden Ausgeben Aufgabe Java Basics - Anfänger-Themen 15
M Lösung Aufgabe - Java Programmiren lernen für Dummies Java Basics - Anfänger-Themen 11
J Rekursion Klausur Aufgabe Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
F Aufgabe: Abstand von einem Punkt zu einem anderen Punkt Java Basics - Anfänger-Themen 10
T Aufgabe zum Verschlüsselungsalgorithmus Java Basics - Anfänger-Themen 11
J Erste Schritte Aufgabe Java Basics - Anfänger-Themen 24
T Methoden BinaryTree transformieren Aufgabe Java Basics - Anfänger-Themen 36
J Brauche Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 1
J Hat jemand einen Lösungsansatz für diese Aufgabe? Java Basics - Anfänger-Themen 1
S Sortieralgorithmus - Aufgabe mit Lösungsidee Java Basics - Anfänger-Themen 20
A Aufgabe: Gleitkommazahlen Java Basics - Anfänger-Themen 3
A Java-Programmierungs Aufgabe Java Basics - Anfänger-Themen 2
U Aufgabe zu Kontrollstrukturen Java Basics - Anfänger-Themen 8
G Probleme bei Aufgabe Java Basics - Anfänger-Themen 12
J Aufgabe als Feuertaufe Java Basics - Anfänger-Themen 8
S Unbedingte hilfe bei Java Aufgabe [Schleife / Zinsrechnung] Java Basics - Anfänger-Themen 14
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
G Ratlosigkeit zur Aufgabe im Anhang (boolean, equals.) Java Basics - Anfänger-Themen 20
S Hilfe bei Java Aufgabe (Schleifen) Java Basics - Anfänger-Themen 25
B Probleme bei einer Aufgabe Java Basics - Anfänger-Themen 19
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
H aufgabe 4 Java Basics - Anfänger-Themen 297
M Hilfe bei Projektorientierungs-Aufgabe !! Java Basics - Anfänger-Themen 3
J Java Starthilfe Verständnisfrage Aufgabe Java Basics - Anfänger-Themen 2
H java aufgabe Java Basics - Anfänger-Themen 7
E Mathematische Aufgabe: Antwort entspricht nicht der Lösung Java Basics - Anfänger-Themen 5
H was verlangt die aufgabe ? Java Basics - Anfänger-Themen 10
H java aufgabe Java Basics - Anfänger-Themen 68
H java aufgabe Java Basics - Anfänger-Themen 25
H aufgabe java luhn algorithmus Java Basics - Anfänger-Themen 10
R Java Aufgabe (Teilbarkeit) Java Basics - Anfänger-Themen 7
H java aufgabe Java Basics - Anfänger-Themen 44
H java aufgabe Java Basics - Anfänger-Themen 7
H java string aufgabe Java Basics - Anfänger-Themen 10
H array aufgabe Java Basics - Anfänger-Themen 13
D Erste Schritte Lösen dieser Aufgabe, Hilfe! Java Basics - Anfänger-Themen 12
H aufgabe Java Basics - Anfänger-Themen 9
H lösung aufgabe Java Basics - Anfänger-Themen 12
S Hilfe für Aufgabe Java Basics - Anfänger-Themen 4
H java online aufgabe Java Basics - Anfänger-Themen 4
H Array aufgabe Java Basics - Anfänger-Themen 7
H oop aufgabe probe kalusur Java Basics - Anfänger-Themen 11
H oop aufgabe Java Basics - Anfänger-Themen 19
H JAVA AUFGABE Java Basics - Anfänger-Themen 7
W Thread Aufgabe - Vorgehensweise Java Basics - Anfänger-Themen 8
J Problem bei Aufgabe "Geldstückelung" Java Basics - Anfänger-Themen 5
P Problem bei Java-Aufgabe Java Basics - Anfänger-Themen 12
B Verständnis Frage zu der Aufgabe Java Basics - Anfänger-Themen 30
L Klassen Geldrückgabe - Aufgabe Programmieren Java Basics - Anfänger-Themen 23

Ähnliche Java Themen

Neue Themen


Oben