Erstellen eines Steuerprogramms mittels if-anweisungen

Status
Nicht offen für weitere Antworten.

TeddyderBär

Mitglied
Brauche Hilfe in Bezug auf Aufgabe unten: Ist der Anfangsgedanke richtig, was muss ich beachten?
Wäre echt froh wenn ich mal einen vernünftigen Anfang hinbekommen würde. bzw einen groben Aufbau des Programms.


Aufgabe
Die Einkommensteuer in den USA wird nach einem recht einfachen Verfahren berechnet, das auf Steuerklassen
und zu versteuerndem Einkommen beruht. Es gibt vier Steuerklassen: Ledige, Verheiratete mit gemeinsamer
Veranlagung sowie Witwe/r, Verheiratete mit getrennter Veranlagung und Haushaltsvorstand. Die Steuersätze
für das Jahr 2005 für jede dieser Klassen sind in folgender Tabelle dargestellt: Tabelle bekomme ich net kopiert, vielleicht wird das Problem trotzdem klar!? (Es gibt Stufungen von 10 bis 35% bei den Einkommen.)
Bei einem Ledigen mit einem zu versteuernden Einkommen von $10000 würden also die ersten $7300 mit 10%
versteuert und die verbleibenden $2700 mit 15%. Insgesamt wären hier also $730 + $405 = $1135 Steuern zu
zahlen. Schreiben Sie ein Java-Programm, das nach Eingabe der Steuerklasse und des zu versteuernden
Einkommens die abzuführenden Steuern ermittelt.


[/img]
Code:
public class EKST  {

    public static void main(String[] args)	{
	
	int zahl1 = Integer.parseInt (args[0]);		//zahl1 = Steuerklasse 1,2,3,4
	double zahl2 = Integer.parseInt (args[1]);	//zahl2 = Einkommen
	double Steuer1 = 0;

	if (zahl1 = 1);
	if (zahl2 <=7300);
		Steuer1 = zahl2*10/100;

	
	
	System.out.println("Steuer: "+Steuer1 +"Dollar");

}

}
 

DocRandom

Top Contributor
..wäre aber nett, wenn Du die Tabelle dazu auch posten könntest, dann würden wir* uns mit der Hilfestellung etwas leichter tun!

mfg
DocRandom

* ich zumindest! ;)
 
S

SlaterB

Gast
if (zahl2 <=7300);

Vorsicht mit dem Semikolon, das macht hinter einem if nie Sinn,
derzeit wird Steuer1 = zahl2*10/100; immer ausgeführt

wenn du Double parsen willst benutze vielleicht Double.parseDouble,

allgemein:
arbeite auf jeden Fall auch mit Listen/ Arrays und ähnlichem,
if (zahl2 <=7300)
ist zu spezifisch,
eher
if (zahl2 <=grenze[0][steuertyp]) {
Steuer1 = zahl2*steuersatz[0][steuertyp];
}

so dass diese Zeile allgemein für die untereren Grenzen aller Steuerklassen funktioniert,
(falls bei allen Klassen so eine Unterscheidung da ist)

und natürlich von Variablen wie zahl2 wegkommen hin zu 'einkommen'
oder was auch immer
 

DocRandom

Top Contributor
..nun lt. Deiner Tabelle hast Du 4 verschiedene Steuerklassen und je 6 dazu gehörende Steuersätze!
Entweder packst Du dies in ein Array oder eine Klasse.
Die Berechnung der Steuer kannst du per Schleife lösen, da Du ja immer wieder die selben Schritte durchführst!

Für eine weitere Hilfestellung, müsste ich schon etwas mehr Code Deinerseits sehen.

mfg
DocRandom
 
G

Guest

Gast
Code:
class EKST {

	public static void main (String [] args) {

	double Steuerklasse = Integer.parseInt (args[0]);
	double Einkommen = Integer.parseInt (args [1]);
	
	double Steuern = 0 ;

	if(Steuerklasse == 1 && Einkommen <=7300)
	Steuern = Einkommen*0.1;

	if(Steuerklasse == 1 && Einkommen >=7301 && Einkommen <=29700)
	Steuern = ((7300*0.1) + ((Einkommen - 7300)*0.15));

	if(Steuerklasse == 1 && Einkommen >=29701 && Einkommen <=71950)
	Steuern = ((7300* 0.1) + (22399*0.15) + ((Einkommen - 29700)*0.25));

	if(Steuerklasse == 1 && Einkommen >=71951 && Einkommen <=150150)
	Steuern = ((7300* 0.1) + (22399*0.15) + (42249*0.25) + ((Einkommen - 71950)*0.28));

	if(Steuerklasse == 1 && Einkommen >=150151 && Einkommen <=326450)
	Steuern = ((7300* 0.1) + (22399*0.15) + (42249*0.25) + (71950*0.28) +((Einkommen - 150151)*0.33));

	if(Steuerklasse == 1 && Einkommen >=326451)
	Steuern = ((7300* 0.1) + (22399*0.15) + (42249*0.25) + (71950*0.28) + (150151*0.33) + ((Einkommen - 326450)*0.35));

	
	if(Steuerklasse == 2 && Einkommen <=14600)
	Steuern = (Einkommen*0.1);
	
	if(Steuerklasse == 2 && Einkommen >=14601 && Einkommen <=59400)
	Steuern = ((14600*0.1) + ((Einkommen - 14600)*0.15));
	
	if(Steuerklasse == 2 && Einkommen >=59401 && Einkommen <=119950)
	Steuern = ((14600*0.1) + (44799*0.15) + ((Einkommen - 59401)*0.25));
	
	if(Steuerklasse == 2 && Einkommen >=119951 && Einkommen <=182800)
	Steuern = ((14600*0.1) + (44799*0.15) + (60549*0.25) + ((Einkommen - 119951)*0.28));

	if(Steuerklasse == 2 && Einkommen >=182801 && Einkommen <=326450)
	Steuern = ((14600*0.1) + (44799*0.15) + (60549*0.25) + (62849*0.28) + ((Einkommen - 182801)*0.33));

	if(Steuerklasse == 2 && Einkommen >=326450)
	Steuern = ((14600*0.1) + (44799*0.15) + (60549*0.25) + (62849*0.28) + (143649*0.33) + ((Einkommen - 326450)*0.35)); 



	System.out.println("Steuern: "+Steuern);


	}
}

Ok, das funzt schon ganz gut, obwohl man das bestimmt auch kürzer machen kann?! Arrays und Schleifen hatten wir in der Vorlesung noch nicht. Mich würde jetzt interessieren was man schöner und kürzer machen kann? Kommentare werde ich hinzufügen wenn ich fertig bin.
 

TeddyderBär

Mitglied
Das sind jetzt nur die ersten beiden Steuerklassen, ist ne ganz schöne Schreibarbeit. Oben hab ich double noch nicht ausgetauscht...
 

DocRandom

Top Contributor
..auf alle fälle würde ich das mal andern:
von:
Code:
double Steuerklasse = Integer.parseInt (args[0]);
double Einkommen = Integer.parseInt (args [1]);
zu:
Code:
int Steuerklasse = Integer.parseInt (args[0]);
double Einkommen = Double.parseDouble(args [1]);

mfg
DocRandom
 

DocRandom

Top Contributor
..nun, da Ihr noch keine Arrays und Schleifen kennt, wird Dir nix anderes übrig bleiben als alles in dieser Manier runter zu klopfen!
Ich habe mir allerdings erlaubt Deinen bisherigen Code etwas zu bereinigen.
Immerhin werden Variablen in Java klein geschrieben.
Außerdem habe ich etwas Struktur in Dienen Code gebracht.
Code:
class EKST {
		
	public static void main (String [] args) {
		int steuerklasse = Integer.parseInt (args[0]); 		// Steuerklasse
		double einkommen = Double.parseDouble(args [1]); 	// Einkommen
	   
		double steuern = 0 ;

		if (steuerklasse == 1) {
			if (einkommen <= 7300)
				steuern = (einkommen * 0.1);
		   
			if (einkommen > 7300 && einkommen <= 29700)
				steuern = ((7300 * 0.1) + ((einkommen - 7300) * 0.15));
		   
			if ( einkommen > 29700 && einkommen <= 71950)
				steuern = ((7300 * 0.1) +((29700 - 7300)* 0.15)+ ((einkommen - 29700) * 0.25));
			
			if (einkommen > 71950 && einkommen <= 150150) 
				steuern = ((7300 * 0.1) + ((29700 - 7300)* 0.15) + ((71950 - 29700) * 0.25)+ ((einkommen - 71950)* 0.28));
				
			if (einkommen > 15150 && einkommen <= 326450)
				steuern = ((7300 * 0.1) + ((29700 - 7300)* 0.15) + ((71950 - 29700) * 0.25)+ ((150150 - 71950)* 0.28)+ ((einkommen - 150150) * 0.33 ));
			
			if ( einkommen > 326450)
				steuern = ((7300 * 0.1) + ((29700 - 7300)* 0.15) + ((71950 - 29700) * 0.25)+ ((150150 - 71950)* 0.28)+ ((326450 - 150150) * 0.33 ) + ((einkommen - 326450) * 0.35));
		}
		if ( steuerklasse == 2 ) {
			if ( einkommen <= 14600)
				steuern = (einkommen * 0.1);
			
			if ( einkommen > 14600 && einkommen <= 59400 )
				steuern = ((14600 * 0.1) + ((einkommen - 14600) * 0.15));
			
			if ( einkommen > 59400 && einkommen <= 119950)
				steuern = ((14600 * 0.1) + ((59400 - 14600) * 0.15)+ ((einkommen - 59400) * 0.25));
			
			if ( einkommen > 119950 && einkommen <= 182800)
				steuern = ((14600 * 0.1) + ((59400 - 14600) * 0.15)+ ((11990 - 59400) * 0.25) +((einkommen - 11990) * 0.28));
			
			if ( einkommen > 182800 && einkommen <= 326450)
				steuern = ((14600 * 0.1) + ((59400 - 14600) * 0.15)+ ((11990 - 59400) * 0.25) +((182800 - 11990) * 0.28) +((einkommen - 188200) * 0.33));
			
			if ( einkommen > 326450)
				steuern = ((14600 * 0.1) + ((59400 - 14600) * 0.15)+ ((11990 - 59400) * 0.25) +((182800 - 11990) * 0.28) +((326450 - 188200) * 0.33) + ((einkommen - 326450) * 0.35));
		}
		if ( steuerklasse == 3) {
			
		}
		if ( steuerklasse == 4) {
			
		}
		System.out.println("Zu zahlende Steuern: "+steuern);
	}
}

mfg
DocRandom
 
S

SlaterB

Gast
Code:
         if (einkommen > 15150 && einkommen <= 326450)
fetten Fehler eingebaut!
15.000 stat 150.000


ohne Arrays kann man zumindest mit einem anderen Aufbau noch ein wenig Wiederholung sparen,
Ansichstsache was schöner ist,


Code:
double resteinkommen = einkommen
if (steuerklasse == 1) {
  if ( resteinkommen > 326450) {
      steuer += (resteinkommen -326450)*0.35;
      resteinkommen = 326450;
  }
  if ( resteinkommen > 150150) {
      steuer += (resteinkommen -150150)*0.33;
      resteinkommen = 150150;
  }
  usw. am Ende 

  steuer += resteinkommen * 0.1;
}

andererseits könnte man Werte wie
(14600*0.1) + (44799*0.15) + (60549*0.25) + (62849*0.28) + (143649*0.33)
fertig ausrechnen und dann 45436 oder so hinschreiben, wäre auch kurz und insgesamt schneller,

drei Varianten mit unterschiedlichen Blickwinkeln
 

TeddyderBär

Mitglied
Erstmal vielen Dank für die Tipps. Werde es mal ein wenig umändern.

Hab dasselbe jetzt auch mit IO-Anweisungen hinbekommen.

So langsam macht es auch Spass. Werde bestimmt mit den nächsten Aufgaben wieder ein paar Fragen haben, die ich dann hier poste :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
C Wie kann ich Versionen eines Projektes in Eclipse erstellen? Java Basics - Anfänger-Themen 3
M Erstellen eines insets Objekts, GridBagLayout Java Basics - Anfänger-Themen 13
C Erstellen eines Widerstandsnetzwerks Java Basics - Anfänger-Themen 10
M Erstellen eines Stacks Java Basics - Anfänger-Themen 14
D java main methode kann nicht kompiliert werden (Erstellen eines Objekts) Java Basics - Anfänger-Themen 6
K Klassen Klasse erstellen, die Punkte eines Koordinatensystems repräsentiert? Java Basics - Anfänger-Themen 3
C Erstellen eines Telefonbuchs Java Basics - Anfänger-Themen 1
K Nullpointer beim Erstellen eines Imageicons Java Basics - Anfänger-Themen 2
R Problem beim erstellen eines neuen Klassenobjekts Java Basics - Anfänger-Themen 2
J Klassen Erstellen eines Attributs mit 3 Möglichkeiten Java Basics - Anfänger-Themen 6
N Probleme mit dem Erstellen eines package Java Basics - Anfänger-Themen 6
W Problem beim erstellen eines Tests Java Basics - Anfänger-Themen 16
S Problem beim Erstellen eines Scanner-Objekts Java Basics - Anfänger-Themen 7
A Null Pointer Exception beim Erstellen eines Arrays aus einer eigenen Klasse Java Basics - Anfänger-Themen 3
R Array eines neuen Typen erstellen und befüllen Java Basics - Anfänger-Themen 2
V Problem beim erstellen eines ausführbaren Programs Java Basics - Anfänger-Themen 5
G Erstellen eines Maven Projektes mit Eclipse Java Basics - Anfänger-Themen 9
C Problem beim erstellen eines jar Archivs Java Basics - Anfänger-Themen 2
K Koordinaten eines 2D-Feldes erstellen Java Basics - Anfänger-Themen 4
J erstellen eines 2D-Arrays mit Beschriftung Java Basics - Anfänger-Themen 4
Z prob beim erstellen eines jar files mit eclipse Java Basics - Anfänger-Themen 4
J Probleme beim Erstellen eines Programms Java Basics - Anfänger-Themen 5
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J Packages erstellen Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
dcHost Java Kara Sensor erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
N 2D Array Summe erstellen Java Basics - Anfänger-Themen 6
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S Programm erstellen Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
T Countdown erstellen Java Basics - Anfänger-Themen 7
I ZIP File erstellen Java Basics - Anfänger-Themen 10
L Ordner in neuen erstellten Ordner erstellen Java Basics - Anfänger-Themen 12
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
B JaxB - Referenzen erstellen? Java Basics - Anfänger-Themen 2
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
E Classpath Datai erstellen Java Basics - Anfänger-Themen 3
B eine methode erstellen Java Basics - Anfänger-Themen 7
I Entity erstellen, die für API gedacht ist Java Basics - Anfänger-Themen 33
M Packages erstellen mit Java-Editor Java Basics - Anfänger-Themen 6
L FinanzApp erstellen Java Basics - Anfänger-Themen 1
J Junit4 Klasse erstellen Java Basics - Anfänger-Themen 5
B Warteschlange erstellen mit LinkedList ? Java Basics - Anfänger-Themen 6
Animal-Mother BMI Rechner erstellen für W/M Java Basics - Anfänger-Themen 7
F GSON file mit einer List erstellen Java Basics - Anfänger-Themen 2
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
J Java Queue mit default Werten erstellen Java Basics - Anfänger-Themen 4
JaVaN0oB Bruchklasse erstellen Java Basics - Anfänger-Themen 9
N Kreismuster auf Bestehendem Kreis erstellen Java Basics - Anfänger-Themen 10
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
F Adjunkte Matrix erstellen Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
T Startbildschirm für ein Spiel erstellen Java Basics - Anfänger-Themen 0
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
GermanPie Discord Text Channel erstellen? Java Basics - Anfänger-Themen 1
K Objektdiagramm erstellen Java Basics - Anfänger-Themen 3
D Klassen Klassendiagramm richtig erstellen Java Basics - Anfänger-Themen 20
S Objekte indiziert erstellen Java Basics - Anfänger-Themen 27
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
B Methode für jede beliebe Entity erstellen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben