12 lore ~/project1/code $ cat Calculator.java
//will just check if there is 2, 3 ... .digit number since I like to be able to input 2 + 2 in the same line.
/*
Simple calculator in java, using simple I/O, and structures.
Just did it for fun, and becouse someone in a forum need it.
I'll include more things when I feel like it....although its preatty simple.
Needs Savitchin class, which makes it even simple, but preatty useable.
*/
import java.util.*;
public class Calculator
{
double firstNumber;
double secondNumber;
double result;
public boolean intCheck(char anyChar)
{
return anyChar == '0' || anyChar == '1' || anyChar == '2' || anyChar == '3' || anyChar == '4' || anyChar == '5' || anyChar == '6' || anyChar == '7' || anyChar == '8' || anyChar == '9';
//will just check if there is 2, 3 ... .digit number since I like to be able to input 2 + 2 in the same line.
}
public double add (double firstNumber, double secondNumber)
{
result = firstNumber + secondNumber;
return result;
}
public double substract (double firstNumber, double secondNumber)
{
result = firstNumber - secondNumber;
return result;
}
public double multiply (double firstNumber, double secondNumber)
{
result = firstNumber * secondNumber;
return result;
}
public double divide (double firstNumber, double secondNumber)
{
if (secondNumber == 0)
{
System.out.print ("Error can't divide by 0");
return 0;
}
else
{
result = firstNumber/secondNumber;
return result;
}
}
public double power (double firstNumber, double secondNumber)
{
result = 1;
//while a Number which = 0, is lower than the second number, it should multiply firstNumber * firstNumber, is more fun this way, although you can use mathpow......which is lame, still thinking about negatives and irrationals
for (int counter = 0 ; counter < secondNumber ; counter ++ ) {
result = result * firstNumber;
}
return result;
}
public void start ()
{
System.out.println ("This is a calculator, please use control + z to exit");
System.out.println ("Usage 2 + 2, 2 ^ 2, 2 - 2, 2 / 2, 2 * 2 (spaces are important!)");
String operator;
boolean infinite=true;
while (infinite = true) {
// int position1 = 0, position2 = 4;
//String userInput;
StringTokenizer userInput = new StringTokenizer ( SavitchIn.readLine () );
if (userInput.hasMoreTokens())
{
firstNumber=Double.parseDouble(userInput.nextToken());
}
else
{
return;
}
if (userInput.hasMoreTokens())
{
operator = (String)(userInput.nextToken());
}
else
{
return;
}
if (userInput.hasMoreTokens())
{
secondNumber = Double.parseDouble(userInput.nextToken());
}
else
{
return;
}
// firstNumber = (double) userInput.charAt(position1);
//secondNumber = (double) userInput.charAt(position2);
if (operator.equals("+") ){
add(firstNumber, secondNumber);
System.out.println ("= " + result);
}
else if (operator.equals("-") ){
substract(firstNumber, secondNumber);
System.out.println ("= " + result);
}
else if (operator.equals ("*")){
multiply(firstNumber, secondNumber);
System.out.println ("= " + result);
}
else if (operator.equals ("/") ){
divide(firstNumber, secondNumber);
System.out.println ("= " + result);
}
else if (operator.equals ("^") ){
power(firstNumber, secondNumber);
System.out.println ("= " + result);
}
}
}
public static void main (String [] args)
{
Calculator calc = new Calculator();
calc.start();
}
}
24 lore ~/project1/code $ java Calculator
This is a calculator, please use control + z to exit
Usage 2 + 2, 2 ^ 2, 2 - 2, 2 / 2, 2 * 2 (spaces are important!)
10 * 10
= 100.0
10 + 10
= 20.0
5 ^ 2
= 25.0
8 / 9
= 0.8888888888888888
3 / 0
Error can't divide by 0
Bueno asi funciona, espero que te sirve, a mi me parece que me quedo chida