//******************************************************************** // TextCalculator.java Author: Sophie Quigley // // Provides a textual input user interface for the Calculator Class // //******************************************************************** import cs1.Keyboard; public class TextCalculator { private Calculator calculator; public TextCalculator () { String entry; char letter1; calculator = new Calculator(); calculator.addViewer(Calculator.TEXTVIEWER); while (true) { System.out.println("Enter a float, operator, or e to erase last entry, c to clear all entries, or s for stop:"); entry = Keyboard.readString(); letter1 = entry.toLowerCase().charAt(0); switch (letter1) { case 's': // Stop return; case 'e': // Erase last entry calculator.eraseLast(); break; case 'c': // Clear calculator.clear(); break; case '+': // Handle unary and binary + if (entry.length() == 1) calculator.operation(Calculator.PLUS); else parseNumber(entry); break; case '-': // Handle unary and binary - if (entry.length() == 1) calculator.operation(Calculator.MINUS); else parseNumber(entry); break; case '*': calculator.operation(Calculator.TIMES); break; case '/': calculator.operation(Calculator.DIVIDES); break; default: // Numbers parseNumber(entry); } } } private void parseNumber (String number) { calculator.number(new Float(number)); } }