Taschenrechner - Methoden implementieren

Isnogud

Mitglied
Hallo!
Ich hatte gestern schon einmal geschrieben wegen eines Taschenrechners.
Jetzt möchte ich gerne die Berechnung in eine andere Klasse stecken und dann diese Methode in der Taschenrechnerklasse aufrufen und benutzen. (Ich möchte nämlich in die Taschenrechnerklasse später die grafische Oberfläche reincoden)

Taschenrechner:
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import main.Berechnung;
public class Taschenrechner {



	public static void main(String[] args) throws IOException

	{
		boolean validUserInput = false;
		double ergebnis = 0;
		double zahl1 = 0;
		double zahl2 = 0;
		String neustart = null;
		String weiterrechnen = null;
		String rechenart = null;
		String rechnung = "  %10.3f%n%s %10.3f%n------------%n%s %10.3f %n";
		BufferedReader input = new BufferedReader(new InputStreamReader(
				System.in));
		do {
			do {

				while (!validUserInput) {

					System.out.print("Bitte geben Sie Ihre erste Zahl ein: ");
					try {
						String str1 = input.readLine();
						zahl1 = Double.parseDouble(str1);
						validUserInput = true;
					} catch (NumberFormatException e1) {
						System.out.println("Bitte nur Zahlen eingeben.");
						System.out.println("Versuchen Sie es bitte erneut.");
						System.out.println(" ");

					}
				}

				validUserInput = false;
				while (!validUserInput) {

					System.out.print("Bitte geben Sie Ihre zweite Zahl ein: ");
					try {
						String str2 = input.readLine();
						zahl2 = Double.parseDouble(str2);
						validUserInput = true;
					} catch (NumberFormatException e1) {
						System.out.println("Bitte nur Zahlen eingeben.");
						System.out.println("Versuchen Sie es bitte erneut.");
						System.out.println(" ");

					}
				}
				validUserInput = false;
				while (!validUserInput) {
					System.out
							.println("Geben Sie bitte an, mit welcher Rechenart Sie diese Zahlen berechnen moechten.");
					System.out.println("a fuer Addition");
					System.out.println("s fuer Subtraktion");
					System.out.println("m fuer Multiplikation");
					System.out.println("d fuer Division");

					rechenart = input.readLine();

					switch (rechenart) {

					case "a":
						System.out
								.println("Sie haben sich für die Addition entschieden.");
						ergebnis = berechnung(zahl1, "+", zahl2);
						System.out.printf(rechnung, zahl1, "+", zahl2, "=",
								ergebnis);
						validUserInput = true;
						break;
					case "s":
						System.out
								.println("Sie haben sich für die Subtraktion entschieden.");
						ergebnis = berechnung(zahl1, "-", zahl2);
						System.out.printf(rechnung, zahl1, "-", zahl2, "=",
								ergebnis);
						validUserInput = true;
						break;
					case "m":
						System.out
								.println("Sie haben sich für die Multiplikation entschieden.");
						ergebnis = berechnung(zahl1, "*", zahl2);
						System.out.printf(rechnung, zahl1, "*", zahl2, "=",
								ergebnis);
						validUserInput = true;
						break;
					case "d":
						System.out
								.println("Sie haben sich für die Division entschieden.");
						ergebnis = berechnung(zahl1, "/", zahl2);
						System.out.printf(rechnung, zahl1, "/", zahl2, "=",
								ergebnis);
						validUserInput = true;
						break;
					default:
						System.out
								.println("Ihre Eingabe ist ungueltig. Dieses Programm ist case sensitive.");
						continue;

					}
				}
				System.out
						.println("Wollen Sie das Programm erneut starten oder mit "
								+ ergebnis + " weiterrechnen?");
				System.out.println("n=Neustart / w=Weiterrechnen / b=Beenden");
				neustart = input.readLine();
				if ("b".equalsIgnoreCase(neustart)) {
					System.out.println("Das Programm wird nun beendet.");
					System.exit(0);
				}
				if ("n".equalsIgnoreCase(neustart))

				{
					zahl1 = 0;
					zahl2 = 0;
					ergebnis = 0;
					validUserInput = false;
				}

			} while ("n".equalsIgnoreCase(neustart));

			System.out
					.println("Wollen Sie mit " + ergebnis + " weiterrechnen?");
			System.out.println("j=Ja / n=Nein");
			weiterrechnen = input.readLine();

			if ("j".equalsIgnoreCase(weiterrechnen))

			{
				validUserInput = true;
				zahl1 = ergebnis;
				ergebnis = 0;
			}

		} while ("j".equalsIgnoreCase(weiterrechnen));

		System.out.println("Das Programm wird nun beendet.");

	}

}

Methode:

Java:
package main;


public class Berechnung {
	
	public static double berechnung(double zahl1, String operator, double zahl2) {
		
		return 0 ;

		

	}

}

Fehlercode:

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method berechnung(double, String, double) is undefined for the type Taschenrechner
The method berechnung(double, String, double) is undefined for the type Taschenrechner
The method berechnung(double, String, double) is undefined for the type Taschenrechner
The method berechnung(double, String, double) is undefined for the type Taschenrechner

at Taschenrechner.main(Taschenrechner.java:71)



Ich will jetzt meinen Taschenrechner so komprimieren und verkleinern das ich am Ende wirklich einen kleinen Taschenrechner mit grafischer Oberfläche daraus machen kann.
Bitte keine fertigen Codes, ich brauch höchstens Schlüsselwörter weil ich es ja lernen möchte.


Gruß,
Isno
 
S

SlaterB

Gast
immer wieder irre, wie lang manche Programme/ main-Methoden werden, bevor es dann an das eigentliche Problem geht,
lasse doch zumindest jetzt, wo ein Problem auftritt, die Unmengen an Ausgaben usw. weg und schreibe nur:

Java:
public class Test
{
    public static void main(String[] args)
    {
        double ergebnis = berechnung(4, "-", 3);
    }

}
wäre das nicht exakt dasselbe Problem?

die Klasse Berechnung braucht es sicherlich noch,
dass es eine separate Klasse ist, gibt dir keinen Hinweis darauf, was du aufrufen musst?
Klassenname.methodenName()
 
G

Gast2

Gast
Deine Klasse Taschenrechner hat keine Methode
Code:
berechnung(double, String, double)
, die liegt in der Klasse Berechnung. Der Aufruf muss so lauten:
Code:
Berechnung.berechnung(zahl1, "+", zahl2);
 

Isnogud

Mitglied
Gut, zumindest berechnet die Methode die Aufgabe.
Habe jetzt in der Klasse Berechnung folgendes geändert:
Java:
	public static double berechnung(double zahl1, String operator, double zahl2, double ergebnis) {
		
		return ergebnis ;
Heißt das Ergebnis angefügt. Nur gibt mir der Taschenrechner eine glatte 0 aus nachdem ich die Rechenart eingegeben habe.
Was ist da schief gegangen?

Und für die baldige grafische Oberfläche einfach alles an System.out.printXXX ausradieren da dies eh nicht mehr benötigt wird?
 
S

SlaterB

Gast
> Nur gibt mir der Taschenrechner eine glatte 0 aus nachdem ich die Rechenart eingegeben habe.

was dein Gesamtprogramm macht kann niemand wissen, außer du erwartest dass hier alles kombiniert wird, also gut..,
die Variable ergebnis war von Anfang an 0, wird hier vielleicht als 0 an die Methode übergeben, diese macht nix, Rückgabe 0,
-> ergebnis bleibt in main auch 0, Ausgabe 0,
überall nur 0, 0 und nochmal 0, irgendeine Überraschung dabei? ;)

du musst schon irgendwann irgendwo
> ergebnis = 4;
oder meinetwegen
> ergebnis = zahl1 + zahl2;
schreiben, sonst bleibt ergebnis weiterhin 0 und nur 0, ab und zu vielleicht auch mal 0,
eigentlich leicht einzusehen,

der Parameter ergebnis kann wieder wegfallen, die Methode schafft es schon alleine, das auszurechnen

-----

> Und für die baldige grafische Oberfläche einfach alles an System.out.printXXX ausradieren da dies eh nicht mehr benötigt wird?

vor paar Monaten ist damit hoffentlich nicht zu rechnen, dann sicherlich,
ich meinte aber, dass ein Programm mit nur einer Zeile das Problem genauso darstellen würde,
naja, es fehlt zuviel Grundverständnis
 
Zuletzt bearbeitet von einem Moderator:

maestr0

Bekanntes Mitglied
Da es sich um die gleiche Aufgabe dreht,hätte ich es besser gefunden, deine Fragen im gestern erstellten Thread weiterzuführen.

Ich will jetzt meinen Taschenrechner so komprimieren und verkleinern das ich am Ende wirklich einen kleinen Taschenrechner mit grafischer Oberfläche daraus machen kann.
Bitte keine fertigen Codes, ich brauch höchstens Schlüsselwörter weil ich es ja lernen möchte.

Ich habe dir gestern im anderen Thread ein Snippet gepostet,also solltest du damit anfangen den BufferedReader(InputstreamReader) zu ersetzen,dann wird das schon komprimierter.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
R Einfacher Taschenrechner mit Eclipse Java Basics - Anfänger-Themen 3
M Einfacher Taschenrechner Java Basics - Anfänger-Themen 2
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
W Taschenrechner Java Basics - Anfänger-Themen 11
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
P Taschenrechner mit unendlich vielen Eingabemöglichkeiten Java Basics - Anfänger-Themen 1
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
S Taschenrechner Java Basics - Anfänger-Themen 13
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
S Basic- Taschenrechner? Java Basics - Anfänger-Themen 7
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
S Taschenrechner hilfe! Java Basics - Anfänger-Themen 17
H Java Taschenrechner Java Basics - Anfänger-Themen 4
R Variablen Taschenrechner mit Komfortfunktionen Java Basics - Anfänger-Themen 2
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Q simpler Taschenrechner Java Basics - Anfänger-Themen 34
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
R Variablen Weitergehenderr Taschenrechner Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
M Java Taschenrechner Programmieren Java Basics - Anfänger-Themen 12
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
A Taschenrechner programmieren Java Basics - Anfänger-Themen 21
Z Java Taschenrechner Java Basics - Anfänger-Themen 6
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taschenrechner in Java Java Basics - Anfänger-Themen 6
J Erste Schritte Java CMD Taschenrechner mit Parametern! Java Basics - Anfänger-Themen 16
J Taschenrechner: Probleme Java Basics - Anfänger-Themen 5
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
R Erste Schritte Taschenrechner mit Schleife Java Basics - Anfänger-Themen 24
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
Z Taschenrechner - Additions/Substraktions/Multiplikations/Divionsketten! Java Basics - Anfänger-Themen 4
D Taschenrechner Frage Java Basics - Anfänger-Themen 12
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
Z Taschenrechner - Wie addiere,multipliziere und subtrahiere ich? Java Basics - Anfänger-Themen 6
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
K Taschenrechner im GUI Java Basics - Anfänger-Themen 2
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
D Simpler Taschenrechner Java Basics - Anfänger-Themen 6
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
R Erste Schritte Taschenrechner - Punkt-vor-Strich Rechnung Java Basics - Anfänger-Themen 1
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
M Taschenrechner fertigstellung Java Basics - Anfänger-Themen 1
N Methoden Taschenrechner Java Basics - Anfänger-Themen 2
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
J Scanner Taschenrechner? Java Basics - Anfänger-Themen 7
J Variablen Rechenzeichen und Zahlen verknüpfen für einen Taschenrechner Java Basics - Anfänger-Themen 17
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
R Methoden Taschenrechner Java Basics - Anfänger-Themen 4
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
I Java Starthilfe (Taschenrechner) Java Basics - Anfänger-Themen 7
J Taschenrechner Problemchen Java Basics - Anfänger-Themen 3
D Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 11
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
J Taschenrechner Punkt vor Strich Java Basics - Anfänger-Themen 9
A Taschenrechner programmieren Java Basics - Anfänger-Themen 5
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
M Dividieren bei Grafischem Taschenrechner klappt nicht Java Basics - Anfänger-Themen 2
N Taschenrechner mit Unterprogra Java Basics - Anfänger-Themen 6
C Taschenrechner Java Basics - Anfänger-Themen 12
Z Taschenrechner programmieren Java Basics - Anfänger-Themen 5
E Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 8
K Taschenrechner Java Basics - Anfänger-Themen 25
J Textfeld für Taschenrechner Java Basics - Anfänger-Themen 3
D Taschenrechner Java Basics - Anfänger-Themen 28
A Taschenrechner-GUI mit BorderLayout? Java Basics - Anfänger-Themen 6
W [PROJEKT] Simpler grafischer Taschenrechner Java Basics - Anfänger-Themen 8
M Taschenrechner mit JApplet Java Basics - Anfänger-Themen 26
J Grafischen Taschenrechner programmieren - Frage dazu Java Basics - Anfänger-Themen 12
W Taschenrechner Java Basics - Anfänger-Themen 2
T Tasten vom Taschenrechner? Java Basics - Anfänger-Themen 3
S Datentypen Taschenrechner Java Basics - Anfänger-Themen 13
J Taschenrechner Java Basics - Anfänger-Themen 5
J Taschenrechner Java Basics - Anfänger-Themen 9
M While bei einem Taschenrechner Java Basics - Anfänger-Themen 5
F Datentypen Ganz simpler Taschenrechner mit switch Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben