diff --git a/Rechenmaschine.java b/Rechenmaschine.java index 5d1e6e9..d3371db 100644 --- a/Rechenmaschine.java +++ b/Rechenmaschine.java @@ -1,5 +1,5 @@ import java.util.Scanner; - +import java.text.DecimalFormat; /** * Hauptklasse des Projekts */ @@ -44,7 +44,7 @@ public class Rechenmaschine { } run(); - System.out.println("Ergebnis der Ausführung: " + result); + } public boolean scanne( String pEingabe ) { @@ -292,9 +292,13 @@ public class Rechenmaschine { return false; } else { tokenlist.toLast(); - if(!tokenlist.getContent().getToken().equals(")")){ + + if (tokenlist.hasAccess()) { + if (!tokenlist.getContent().getToken().equals(")")) { + tokenlist.append(new Token("OPERAND", currentToken.toString())); + } + } else { tokenlist.append(new Token("OPERAND", currentToken.toString())); - return true; } return true; } @@ -412,19 +416,19 @@ public class Rechenmaschine { //Durchlaufe die Tokenliste while(pList.hasAccess()){ // Token gleich ( dann entferne ihn - if(pList.getContent().getToken().equals("(")){ + if(pList.getContent().getToken().equals("(")) { pList.remove(); //anschließend durchlaufe solange, bis auf ) gestoßen wird - while(!pList.getContent().getToken().equals(")")){ + while (!pList.getContent().getToken().equals(")")) { //wenn noch nicht am ende der tokenliste - if(pList.hasAccess()) { + if (pList.hasAccess()) { //wenn ( erneutvorkommt - if (pList.getContent().getToken().equals("(") ) { + if (pList.getContent().getToken().equals("(")) { // rufe die methode mehrereKlammern auf und speicher das ergebnis als neues Token in newTokenlist berechnet = mehrereKlammern(pList); - newTokenlist.append(new Token("OPERAND",String.valueOf(berechnet))); + newTokenlist.append(new Token("OPERAND", String.valueOf(berechnet))); } //wenn der Token nicht ) ist dann soll dieser in newTokenlist eingefügt werden und anschließend entfernt werden if (!pList.getContent().getToken().equals(")")) { @@ -438,7 +442,11 @@ public class Rechenmaschine { //newTokenlist wird ausgerechnet berechnet = berechne(newTokenlist); //und in die Tokenliste eingefügt - pList.insert(new Token("OPERAND", String.valueOf(berechnet))); + if (pList.hasAccess()) { + pList.insert(new Token("OPERAND", String.valueOf(berechnet))); + } else { + pList.append(new Token("OPERAND", String.valueOf(berechnet))); + } newTokenlist = new List(); //hier wurde nun 1 klammer gelöst } @@ -505,9 +513,10 @@ public class Rechenmaschine { public void run() { klammerRegel(tokenlist); punktVorStrich(tokenlist); - result=berechne(tokenlist); - - + double result=berechne(tokenlist); + DecimalFormat format = new DecimalFormat("#,##0.####"); + String resultString=format.format(result); + System.out.println("Ergebnis der Ausführung: " + resultString); } }