Methoden Taschenrechner

Regi

Neues Mitglied
Hallo allerseits,

ich lerne seit ein paar Wochen Java, bin also noch ziemlicher Anfänger und leider habe ich bereits ein Problem mit den Methoden. In einer Übungsaufgabe sollte ein einfacher Taschenrechner programmiert werden. Eingaben über Eingabedialogfenster und 4 Methoden zur Berechnung von +,-,*, und /. Die Berechnungen sollen nur in der Javakonsole mit Print() ausgegeben werden. Den Teil habe ich fertig und würde mich freuen wenn ihr mal schauen könntet ob sich da noch Fehler eingeschlichen haben.
Diese Aufgabe wird nun erweitert und dabei bräuchte ich eure Hilfe. Ich möchte jetzt nicht das ihr meine Aufgabe löst, sondern ich brauche Hilfe dabei zu verstehen wie ich das lösen muss.
Die Aufgabenstellung ist dabei folgende:
Erweiterung des Taschenrechners so, dass neben der Ausgabe der einzelnen Rechenoperationen, am Ende zusätzlich die Ergebnisse aller Rechenoperationen gleichzeitig auf dem Bildschirm ausgegeben werden können. Diese Funktionalität soll ebenfalls als Methode erstellt werden.
Ich weiß einfach nicht WIE ich das Programm dazu bringe mir ein Eingabedialogfenster NACH der Ausgabe der gewählten Rechenoperation zu erstellen. Denn die Aufgabe besagt ja, das alle Rechenoperationen, wenn gewünscht, am Ende angezeigt werden sollen. Oder verstehe ich die Aufgabe falsch?
Der Code für Teil 1 sieht so aus:

Java:
import javax.swing.*;


public class Java_taschenrechner {

	 /**
	 * Methode addition addiert die übergebenen Eingaben in den Variablen eingabeZahl1 und eingabeZahl2
	 * liefert dann das Ergebnis zurück
	 * 
	 * Methoden subktraktion,division und multiplikation verfahren ebenso,
	 * entsprechend den ihnen zugewiesenen Rechenarten
	 * 
	 * Um Kommazahlen abzufangen bzw. zu ermöglichen wurde der Typ double verwendet
	 */
	// Methode Addition
	static double addition(double eingabeZahl1, double eingabeZahl2)
	{

		  return (eingabeZahl1 + eingabeZahl2);
	}
	
	// Methode Subtraktion
	static double subtraktion(double eingabeZahl1, double eingabeZahl2)
	{

		return (eingabeZahl1 - eingabeZahl2);
	}
	
	// Methode Division
	static double division(double eingabeZahl1, double eingabeZahl2)
	{

		return (eingabeZahl1 / eingabeZahl2);
	}
	
	// Methode Multiplikation
	static double multiplikation(double eingabeZahl1, double eingabeZahl2)
	{
	
		return (eingabeZahl1 * eingabeZahl2);
	}
	

		/* ## Hier versuche ich die geforderte Methode für Teil 2 zu erstellen ##
	 * 
	 * methode zur Auswahl anzeige der restlichen Rechenoperationen
	 */
	 public static boolean alleAnzeigen (char anzeigeWahl)
	{	 
		 if ((anzeigeWahl == 'j') || (anzeigeWahl == 'J'))
		 {
			 return true;
		 }
		 else
			 return false;
	}
	

	public static void main(String[] args) {
		/**
		 * @param args
		 * double, String, char
		 */
		// Vereinbarung der Variablen
		
		double eingabeZahl1, eingabeZahl2; // zur Aufnahme der eingegebenen Zahlen
		String eingabeRechenoperator; // zur Aufnahme der gewünschten Rechenoperation als Zeichenkette
		char rechenoperator; // zur Aufnahme des eingegebenen,einzelnen Zeichens für den Rechenoperator
		
		//Einlesen der Werte und des Rechenoperators
		eingabeZahl1 = Double.parseDouble(JOptionPane.showInputDialog("Geben Sie bitte ihren ersten Wert ein:\nHinweis:\n Benutzen Sie bitte einen punkt \" . \" als Trennzeichen wenn Sie keine ganze Zahl eingeben"));
		
		eingabeRechenoperator = JOptionPane.showInputDialog("Geben Sie bitte + , - , / oder * für die gewünschte Rechenoperation ein: ");
		rechenoperator = eingabeRechenoperator.charAt(0); // nehme nur das erste (eingegebene) Zeichen
		
		eingabeZahl2 = Double.parseDouble(JOptionPane.showInputDialog("Geben Sie bitte ihren zweiten Wert ein:\nHinweis:\n Benutzen Sie bitte einen punkt \" . \" als Trennzeichen wenn Sie keine ganze Zahl eingeben"));
	
		
		// die Auswertung von rechenoperator in einer switch - case Abfrage 
		// case +, -, / und * mit dem entsprechenden Aufruf, 
		// der je nach gewähltem Rechenoperator dazugehörenden Methode
		// und abschließender Ausgabe des Ergbnisses auf dem Bildschirm.
		
		
		switch (rechenoperator) // Auswertung des eingegebenen Rechenoperators
		{
			case '+': // Rechenoperation Addition gewählt
				
				// Werte an die entsprechende Methode weitergeben und ausgabe des ergebnisses
				System.out.print("Das Ergebnis von " + eingabeZahl1 + " + " + eingabeZahl2 + " ist " + addition(eingabeZahl1,eingabeZahl2));
			break;
		
			case '-': // Rechenoperation Subtraktion gewählt
		
				// Werte an die entsprechende Methode weitergeben und ausgabe des ergebnisses
				System.out.print("Das Ergebnis von " + eingabeZahl1 + " - " + eingabeZahl2 + " ist " + subtraktion(eingabeZahl1,eingabeZahl2));
			break;
			
			case '/': // Rechenoperation Division gewählt
				
				// Werte an die entsprechende Methode weitergeben und ausgabe des ergebnisses
				System.out.print("Das Ergebnis von " + eingabeZahl1 + " / " + eingabeZahl2 + " ist " + division(eingabeZahl1,eingabeZahl2));
			break;
			
			case '*': // Rechenoperation Multiplikation gewählt
			
				// Werte an die entsprechende Methode weitergeben und ausgabe des ergebnisses
				System.out.print("Das Ergebnis von " + eingabeZahl1 + " * " + eingabeZahl2 + " ist " + multiplikation(eingabeZahl1,eingabeZahl2));
			break;
			
		default:
			// wenn keine Rechenoperation gewählt wurde, Fehler ausgeben
			System.out.println("Sie haben keine gültige Rechenoperation ausgewählt! ");
		}
		

		// Einlesen um auch die anderen Rechenoperationen anzeigen zu lassen
//### Hier ist der Aufruf der von JOptionPane und methode für Teil 2 ###


		anzeigeWahlEinlesen = JOptionPane.showInputDialog("Möchten Sie sich die Ergebnisse aller Rechenarten anzeigen lassen?\nGeben Sie \"j\" für Ja oder \"n\" für Nein ein: ");
		anzeigeWahl = anzeigeWahlEinlesen.charAt(0); // nehme nur das erste (eingegebene) Zeichen
	
		if (alleAnzeigen (anzeigeWahl)== true)
		{
			
			System.out.print("\n\nDas Ergebnis von " + eingabeZahl1 + " + " + eingabeZahl2 + " ist " + addition(eingabeZahl1,eingabeZahl2));
			System.out.print("\nDas Ergebnis von " + eingabeZahl1 + " - " + eingabeZahl2 + " ist " + subtraktion(eingabeZahl1,eingabeZahl2));
			System.out.print("\nDas Ergebnis von " + eingabeZahl1 + " / " + eingabeZahl2 + " ist " + division(eingabeZahl1,eingabeZahl2));
			System.out.print("\nDas Ergebnis von " + eingabeZahl1 + " * " + eingabeZahl2 + " ist " + multiplikation(eingabeZahl1,eingabeZahl2));
		
		}

		System.exit(0);
	}

}

Für Teil 2 hab ich bereits, seit Tagen, alles mögliche probiert und zur Zeit gar keine Idee mehr . Ich wäre sehr dankbar wenn jemand einen hilfreichen Denkanstoß oder ein Beispiel für mich hätte, um diesen verflixten Verständnis-Blackout weg zu bekommen.
MfG
ein recht verzweifelter
JavaNeuling
 
Zuletzt bearbeitet von einem Moderator:
Java:
//Hier musst du einen neuen String und char deklarieren
 String anzeigeWahlEinlesen = JOptionPane.showInputDialog("Möchten Sie sich die Ergebnisse aller Rechenarten anzeigen lassen?\nGeben Sie \"j\" für Ja oder \"n\" für Nein ein: ");
        char anzeigeWahl = anzeigeWahlEinlesen.charAt(0); // nehme nur das erste (eingegebene) Zeichen
    
        if (alleAnzeigen (anzeigeWahl)== true)
        {
            
            System.out.print("\n\nDas Ergebnis von " + eingabeZahl1 + " + " + eingabeZahl2 + " ist " + addition(eingabeZahl1,eingabeZahl2));
            System.out.print("\nDas Ergebnis von " + eingabeZahl1 + " - " + eingabeZahl2 + " ist " + subtraktion(eingabeZahl1,eingabeZahl2));
            System.out.print("\nDas Ergebnis von " + eingabeZahl1 + " / " + eingabeZahl2 + " ist " + division(eingabeZahl1,eingabeZahl2));
            System.out.print("\nDas Ergebnis von " + eingabeZahl1 + " * " + eingabeZahl2 + " ist " + multiplikation(eingabeZahl1,eingabeZahl2));
        
        }
 
Zuletzt bearbeitet:
Java:
int val = JOptionPane.showConfirmDialog( null, "Möchten Sie sich die Ergebnisse aller Rechenarten anzeigen lassen?", "Bestätigen", JOptionPane.YES_NO_OPTION );

if( val == JOptionPane.YES_OPTION ) {
	System.out.print( "\n\nDas Ergebnis von " + eingabeZahl1 + " + " + eingabeZahl2 + " ist " + addition( eingabeZahl1, eingabeZahl2 ) );
	System.out.print( "\nDas Ergebnis von " + eingabeZahl1 + " - " + eingabeZahl2 + " ist " + subtraktion( eingabeZahl1, eingabeZahl2 ) );
	System.out.print( "\nDas Ergebnis von " + eingabeZahl1 + " / " + eingabeZahl2 + " ist " + division( eingabeZahl1, eingabeZahl2 ) );
	System.out.print( "\nDas Ergebnis von " + eingabeZahl1 + " * " + eingabeZahl2 + " ist " + multiplikation( eingabeZahl1, eingabeZahl2 ) );
}
Bei mir klappts!
 
Vielleicht sollst du auch alles, was du bis jetzt gerechnet hast anzeigen?
Ungefähr so:
Java:
public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		double a = 0;
		double b = 0;
		double e = 0;
		ArrayList<Double> list = new ArrayList<Double>();
		while(true){
			try{
				a = Double.parseDouble(in.readLine());
				b = Double.parseDouble(in.readLine());
			}catch(NumberFormatException nfe){
				System.out.println("Alle Ergebnisse anzeigen?");
				if(in.readLine().equalsIgnoreCase("j")){
					System.out.println(list);
					continue;
				}
				else return;
			}
			switch(in.readLine().charAt(0)){
			case('+'):
				e = a+b;
				break;
			case('-'):
				e = a-b;
				break;
			case('*'):
				e = a*b;
				break;
			case('/'):
				e = a/b;
				break;
			}
			System.out.println(e);
			list.add(e);
		}
	}
Natürlich etwas schöner😀
 
Hallo Leute,

lieber ein wenig spät als nie.

Ich wollte mich nur bei euch bedanken, denn ihr habt mir wirklich weitergeholfen.
Der Tip von tribalup hatt den Knoten platzen lassen.

Also noch einmal recht herzlichen Dank.

MfG
Regi
 

Zurück
Oben