import tio.*;

/**
 * The class <code>calc</code> is a simple
 * class to implement a four-function calculator 
 * It uses our very own BigNum class
 * Makes use of package tio
 *
 * @author K Becker
 * @version 2.0
 *
 * changed code marked with /* */
/*   original statements at end of line //+++
 */

public class calc2
{
    /*********************************************************/
    /**
     * read a BIG number from stdin -
     * seperated from next thing by at least one blank
     * 
     * @return BigNum read from console
     */
/* */	private static BigNum getNum() {
	
/* */ 	  BigNum temp = new BigNum();
/* */	  temp.readMe();
/* */	  return temp;	
	
} /* end getNum */
    
    
    /*********************************************************/
    /**
     * Main Program.
     * Turns your powerful, expensive computer in to something less
     * useful than a $1.98 calculator.
     * 
     */
    public static void main(String[] args)
    {        
/* */	BigNum.setDebug(false); // turn debug trace off
/* */	BigNum first = new BigNum();            //+++int first = 0;
/* */	BigNum result = new BigNum();          //+++int result = 0;
/* */	BigNum num = new BigNum();                //+++int num = 0;

	boolean OK = true;
	boolean done = false;
	char op = ' ';
	char ans = 'n';
	
	
	System.out.print("Calculator:\n");
	System.out.print("\n");
	System.out.print("This program turns your powerful, expensive computer\n");
	System.out.print("into something less useful than a $1.99 calculator.\n");
	System.out.print("Cool, huh.\n");
	System.out.print("\n");
	System.out.print("Enter an integer, then an operator, then another integer\n");
	System.out.print("followed by <RETURN>.\n");
	System.out.print("\n");
	System.out.print("Allowable operators are: + - * /\n");
	System.out.print("\n");
	
	/* begin */
	while (!done)
	    {
		System.out.print(">> ");
		first = result = getNum();
		
		/* skip blanks */
		op = ' ';
		while (op == ' ') 
		    op = (char)Console.in.readChar();
		
		Console.in.readChar(); // skip blank
		
		num = getNum();
		Console.in.readLine();
		
		switch (op) {
/* */		case '+' : result = result.add(num);     //+++result += num;
		    break;
 /* */		case '-' : result = result.sub(num);     //+++result -= num;
		    break;
/* */		case '*' : result = result.mult(num);    //+++result *= num;
		    break;
/* */		case '/' : result = result.div(num);     //+++result /= num;
		    break;
		default:
		} /* case */
		
		System.out.print("\n");
/* */		first.writeMe();                //+++System.out.print(first);
		System.out.print(" ");
		System.out.print(op);
		System.out.print(" ");
/* */	       	num.writeMe();                    //+++System.out.print(num);
		System.out.print(" = ");
/* */		result.writeMe();              //+++System.out.print(result);
		System.out.print("\n");
		System.out.print("Another? ");
		ans = (char)Console.in.readChar();
		Console.in.readLine();
		
		done = ((ans != 'y') && (ans != 'Y'));
		
	    } /* while not done */
	
    }
    
}
