Erste Schritte,erste Class,Korrekturlesen und Verbesserungen

Status
Nicht offen für weitere Antworten.

RipdEaTh

Mitglied
Hi Leute!

Ich beginne gerade damit, mich mit Java auseinander zu setzen.
Da ich heute bei der Arbeit ein wenig Luft hatte, und etwas Abwechslung brauchte, habe ich angefangen, einen Taschenrechner in Java zu erstellen.

Folgende Punkte hatte ich mir vorgestellt:

- Man kann mit dem Rechner die Grundrechenarten benutzen, also addieren, substrahieren, multiplizieren, dividieren.
- Man kann beliebig viele Zahlen einsetzen, also z.B. mit 3 Zahlen rechnen, aber auch mit 10.
- Man soll nach jeder Zahl eine Rechenart wählen können.
- Bei dem Versuch, etwas durch 0 zu dividieren, soll ein Fehler ausgegeben werden und der Schritt ausgelassen werden.
- Der Rechner soll das Endergebnis ausgeben.

Ich habe den Rechner soweit zum Laufen bekommen, er tut auch alles was er soll.

Nun wollte ich einmal fragen, ob hier jemand vll meinen Code Korrekturlesen kann, mir Verbesserungsvorschläge gibt, den Code vll optimiert, denn ich denke, der erste Programmcode ist ziemlich chaotisch ^^


Dadurch möchte ich sehen, worauf ich mehr achten sollte, was ich verbessern kann, blah blah ^^ Lernen eben..

So, hier einmal der Code..

Code:
import java.io.*;

class Taschenrechner {
	static float rErg;
	static char rOption;
	
	static float addieren (float ergebnis, float rZahl) {
		ergebnis += rZahl;
		return ergebnis;
	}
	
	static float substrahieren (float ergebnis, float rZahl) {
		ergebnis -= rZahl;
		return ergebnis;
	}
	
	static float multiplizieren (float ergebnis, float rZahl) {
		ergebnis *= rZahl;
		return ergebnis;
	}
	
	static float dividieren (float ergebnis, float rZahl) {
		if (rZahl == 0) {
			System.out.println("Fehler! Es kann nicht durch Null dividiert werden! Der Vorgang wird übersprungen!");
		}
		else {
			ergebnis /= rZahl;
		}
		return ergebnis;
	}
	
	static float rechne (char rArt, float ergebnis, float rZahl) {
		switch (rArt) {
			case '+': 
			Taschenrechner.rErg = addieren(ergebnis, rZahl);
			break;
			
			case '-': 
			Taschenrechner.rErg = substrahieren(ergebnis, rZahl);
			break;
			
			case '*': 
			Taschenrechner.rErg = multiplizieren(ergebnis, rZahl);
			break;
			
			case '/': 
			Taschenrechner.rErg = dividieren(ergebnis, rZahl);
			break;
		}
		return Taschenrechner.rErg;
	}
	
	static boolean checkRArt (char rArt) {
		boolean rCheck = false;
		switch (rArt) {
			case '+':
			case '-':
			case '*':
			case '/':
			rCheck = true;
			break;
		}
		return rCheck;
	}
	
	public static void main (String[] args) throws IOException {
		float erg = 0;
		int aZahlen;
		float zahl;
		boolean status = true;
		
		BufferedReader stdin = new BufferedReader(
		new InputStreamReader( System.in ) );
		String option;
		String aZahlenS;
		String eingabe;
		
		do {
		System.out.print("Wieviele Zahlen moechtest du eingeben: ");
		aZahlenS = stdin.readLine();
		aZahlen = Integer.parseInt(aZahlenS);
		if (aZahlen < 2) System.out.println("Fehler! Du musst mindestens 2 Zahlen angeben!");
		} while (aZahlen < 2);

		float[] zahlen = new float[aZahlen];
		
		for (int i=0; i < aZahlen; i++) {
			if ((i+1) > 1) {
				boolean checkRArt;
				do {
					System.out.print("Was moechtest du mit der Zahl machen?");
					option = stdin.readLine();
					char options = option.charAt(0);
					checkRArt = checkRArt(options);
					Taschenrechner.rOption = options;
				} while (checkRArt = false);
			}
			System.out.print("Gebe die " + (i+1) + ".Zahl ein: ");
			eingabe = stdin.readLine();
			zahlen[i] = Float.parseFloat(eingabe);
			
			zahl = zahlen[i];
			
			if (i == 0) erg = zahl;
			else {
				erg = rechne(Taschenrechner.rOption, erg, zahl);
			}
		}
			
						
		/*for (int i=0; i < aZahlen; i++) {
			System.out.print("Gebe die " + (i+1) + ".Zahl ein: ");
			eingabe = stdin.readLine();
			zahlen[i] = Integer.parseInt(eingabe);
						
			if ((i + 1 != aZahlen) {
				boolean checkRArt;
				do {
					System.out.print("Was moechtest du mit der Zahl machen?");
					option = stdin.readLine();
					char options = option.charAt(0);
					checkRArt = checkRArt(options);
				} while (checkRArt = false);
			}			
		}*/		
		
		System.out.println("Dein Ergebnis ist: " + erg);
	}
}

Vielen Dank schonmal im voraus für eure Mühe :)
 

Wildcard

Top Contributor
Viel netter währe es doch wenn man einen String der Art 3*4+5-17 eingeben kann. So ist das ja unbenutzbar :wink:
Teil das ganze auf: Eine Klasse die Eingabe parst, und eine die sie berechnet.
Das mit dem static solltest du dir unbedingt abgewöhnen.
 

RipdEaTh

Mitglied
wie lass ich denn die eingabe in bestandteile zerlegen? also interessant wäre da ja erstmal die auflösung in einen array, wo mögliche geklammerte elemente drin enthalten sind..

was kann ich denn anstatt static machen? wenn da kein static steht gibts immer n error beim compilen..
 

Wildcard

Top Contributor
RipdEaTh hat gesagt.:
wie lass ich denn die eingabe in bestandteile zerlegen? also interessant wäre da ja erstmal die auflösung in einen array, wo mögliche geklammerte elemente drin enthalten sind..
In der FAQ ist ein Beispiel für einen mathematischen Parser.
RipdEaTh hat gesagt.:
was kann ich denn anstatt static machen? wenn da kein static steht gibts immer n error beim compilen..
Objekte erzeugen :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G erste Schritte in Fenster und Grafik-Programmierung Java Basics - Anfänger-Themen 2
T Erste Schritte (SEHR mühsam); Grafiktest Java Basics - Anfänger-Themen 5
A erste Schritte auf dem Weg eine XML-Datei zu parsen Java Basics - Anfänger-Themen 2
F Erste Schritte in Java - Wo finde ich Antworten? Referenzbib Java Basics - Anfänger-Themen 3
E Erste Schritte - warum läuft nur das eine? Java Basics - Anfänger-Themen 2
MarvinsDepression Datentypen Generics: Erste Berührungen Java Basics - Anfänger-Themen 6
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
3 OOP erste Versuche, OOP zu verstehen. Probleme mit gettern und settern Java Basics - Anfänger-Themen 4
F nur das erste Element mit iterator ausgeben Java Basics - Anfänger-Themen 5
J Objekt erste freie Stelle zuweisen Java Basics - Anfänger-Themen 3
Zrebna Compiler-Fehler Java-Compiler wird nach 'javac' keyword-Eingabe nicht gestartet (Erste Übung) Java Basics - Anfänger-Themen 18
Textsurfer Erste Schritte Ist es der erste Schleifendurchlauf? Java Basics - Anfänger-Themen 4
V Erste Schritte Hilfe gesucht beim einstieg in Java und erste Aufgaben aus der Berufsschule Java Basics - Anfänger-Themen 9
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
C Erste Ziffer einer Zahl Java Basics - Anfänger-Themen 46
L Erste Schritte Erste Versuche mit Server und Client Java Basics - Anfänger-Themen 7
V Klassen Bestimmen Sie die erste und letzte Position an der ein 'c' steht? Java Basics - Anfänger-Themen 3
Crazynet jTable erste Zeile mit deffinierten Werten Java Basics - Anfänger-Themen 0
B Kreuzprodukt zweier Vektoren (Erste Java Aufgabe - Hilfestellungen und Tips erwünscht) Java Basics - Anfänger-Themen 4
Tarrew Generics: Erste gemeinse Oberklasse als Rückgabewert Java Basics - Anfänger-Themen 1
N InsertionSort sortiert erste Zahl im Array nicht mit? Java Basics - Anfänger-Themen 6
I String abschneiden erste und letzte Zeichen Java Basics - Anfänger-Themen 3
U Wie bekomme ich bei der Ausgabe das erste Komma weg Java Basics - Anfänger-Themen 8
S Erste App Java Basics - Anfänger-Themen 2
johnnydoe Erste Schritte Erster Blick - erste Fragen Java Basics - Anfänger-Themen 11
Farbenfroh Erste GUI Versuche Java Basics - Anfänger-Themen 1
R Java als erste Programmiersprache 5 Auflage Java Basics - Anfänger-Themen 0
N Erste Zeile bei BufferedReader doppelt lesen? Java Basics - Anfänger-Themen 2
L Das erste Mal GridBagLayout - wie geht das? Java Basics - Anfänger-Themen 5
O Erste Versuche eine Art "EventHandler" zu bauen.. Java Basics - Anfänger-Themen 8
H Worauf bezieht sich die erste else-Anweisung Java Basics - Anfänger-Themen 9
E nur der erste (mehrerer Strings) wird ausgegeben Java Basics - Anfänger-Themen 15
C Meine erste Funktion Java Basics - Anfänger-Themen 12
O erste Loggingversuche Java Basics - Anfänger-Themen 12
A Meine erste Bibliothek erstellen Java Basics - Anfänger-Themen 24
A Mit javac zweite Datei compilieren ohne Erste erneut zu compilieren? Java Basics - Anfänger-Themen 7
P HILFE !!! erste aufgabe beim programmieren Java Basics - Anfänger-Themen 13
T Erste Programm Java Basics - Anfänger-Themen 9
T Das erste Programm starten Java Basics - Anfänger-Themen 27
L Erste Klasse Java Basics - Anfänger-Themen 12
P Textdatei auf erste Zeichenkette Prüfen... Java Basics - Anfänger-Themen 10
R Erste und zweite Stelle einer Eingabe auslesen Java Basics - Anfänger-Themen 2
M Meine erste Java Programmierung funzt nicht :-( Java Basics - Anfänger-Themen 34
U Erste Ziffer abspalten Java Basics - Anfänger-Themen 3
J Erste und letzte Zeile in txt Java Basics - Anfänger-Themen 3
J Erste OO-Aufgabe-Probleme mit Aufgabenstellung Java Basics - Anfänger-Themen 32
J Erste Gehvesuche Java Basics - Anfänger-Themen 3
C Erste GUI - Wie auswerten? Java Basics - Anfänger-Themen 3
B Das erste Programm . Java Basics - Anfänger-Themen 4
R Meine erste Klasse: Punkt Java Basics - Anfänger-Themen 3
L beim ersten compilen schon erste probleme Java Basics - Anfänger-Themen 8
L JTabel abfragen ob es eine erste Zeile gibt? Java Basics - Anfänger-Themen 2
Q An erste Stelle in eine Queue eintragen Java Basics - Anfänger-Themen 4
C Generische Klassen, das erste Mal. Java Basics - Anfänger-Themen 8
J Neuling und erste Fragen Java Basics - Anfänger-Themen 8
D String, erste zeichen löschen Java Basics - Anfänger-Themen 6
J Threads: warten bis erste aktion ausgeführt wurde Java Basics - Anfänger-Themen 6
V Erste Ziffer aus einer dreistelligen "Zahl" heraus Java Basics - Anfänger-Themen 5
G Meine erste IF Abfrage Java Basics - Anfänger-Themen 11
D Erste und letzte 3 Buchst. eines Str. in jeweils ein Array Java Basics - Anfänger-Themen 13
H Nur die erste Zeile einer Datei auslesen Java Basics - Anfänger-Themen 3
R Nur erste Zeile wird ausgelesen Java Basics - Anfänger-Themen 4
K Wortanzahl in erste Zeile schreiben Java Basics - Anfänger-Themen 6
W warum öffnet der nur die erste datei???? Java Basics - Anfänger-Themen 5
D erste spalte eines zweidimensionales Array sortieren ??!! Java Basics - Anfänger-Themen 2
T x Schritte zählen Java Basics - Anfänger-Themen 18
K OOP Die ersten Schritte bei der Programierung Java Basics - Anfänger-Themen 1
T Anzahl der Schritte berechnen Java Basics - Anfänger-Themen 6
G Anfängerbuch geschafft - nächste Schritte? Java Basics - Anfänger-Themen 14
H Datenbank suche in kleine Schritte Java Basics - Anfänger-Themen 6
X SAX die ersten Schritte Java Basics - Anfänger-Themen 5
S ersten schritte in Java lernen! Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben