PDA

View Full Version : My calculator V3!!!



pointer
07-10-2008, 09:22 AM
Well, I got it finnaly done, the perfect Java created calculator.
This is a BUG FREE calculator which is powered by Java.
It is a basic calculator, so you can do only basic things, but it's worth it to try and post a commend :) thanks :D



import java.util.Scanner;
import java.io.BufferedReader;
import java.io.InputStreamReader;


public class calculator
{
public static boolean loop = true;
public static float number1 = 0F;
public static float number2 = 0F;
public static String action = "No action";
public static String verder = "y";//verder means continue
public static int useOldNumber = 0;
public static float number3 = 0F;
public static boolean valid = false;
public static boolean valid2 = false;
public static boolean knownLastInput = false;
public static boolean actionValid = false;

static Scanner input = new Scanner(System.in);
static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

public static void main(String [] args)
{
System.out.println("You need to use a , in a decimal number instead of a .!\n");
number1Insert();
}


public static void number1Insert()
{
while(!valid)
try
{
System.out.println("What is the first number that you want to use?");
number1 = input.nextFloat();
valid = true;
System.out.print("\n");
actionInsert();
}
catch(Exception e)
{
System.out.println("The number you entered is invalid, try again.\n");
input.nextLine();
valid = false;
}
}


public static void actionInsert()
{
while(!actionValid)
{
try
{
System.out.println("What action? Divide (/), multiple (*), plus (+), min (-)?");
action = in.readLine();
}
catch(Exception e)
{
System.out.println("THIS CAN'T GO WRONG!");
}
if(action.equals("/") || action.equals("*") || action.equals("+") || action.equals("-"))
{
System.out.print("\n");
actionValid = true;
number2Insert();
}
else
{
System.out.println(action+" is an unknown action. Please try again.\n");
actionValid = false;
}
}
}


public static void number2Insert()
{
while(!valid2)
try
{
System.out.println("What is the second number that you want to use?");
number2 = input.nextFloat();
valid2 = true;
System.out.print("\n");
calculate();
}
catch(Exception e)
{
System.out.println("The number you entered is invalid, try again.\n");
input.nextLine();
valid2 = false;
}
}


public static void calculate()
{
if(action.equals("/"))
{
number3 = (number1 / number2);
System.out.println(number1+"/"+number2+"="+number3);
number1 = number3;
repeatOrNot();
}
if(action.equals("*"))
{
number3 = (number1 * number2);
System.out.println(number1+"*"+number2+"="+number3);
number1 = number3;
repeatOrNot();
}
if(action.equals("+"))
{
number3 = (number1 + number2);
System.out.println(number1+"+"+number2+"="+number3);
number1 = number3;
repeatOrNot();
}
if(action.equals("-"))
{
number3 = (number1 - number2);
System.out.println(number1+"-"+number2+"="+number3);
number1 = number3;
repeatOrNot();
}
}

public static void repeatOrNot()
{
try
{

System.out.println("\nWould you like to use the answer as the first number or do you want to quit? y/n/q");
verder = in.readLine();
}
catch(Exception e)
{
System.out.println("THIS CAN'T GO WRONG!!!");
}
knownLastInput = true;
letMeSee();
}

public static void letMeSee()
{
if(verder.equals("y") || verder.equals("n") || verder.equals("q"))
{
if(verder.equals("y"))
{
System.out.print("\n");
actionValid = false;
valid2 = false;
actionInsert();
}
if(verder.equals("n"))
{
System.out.print("\n");
valid = false;
actionValid = false;
valid2 = false;
number1Insert();
}
if(verder.equals("q"))
{
valid = true;
actionValid = true;
valid2 = true;
action = "No action";
System.out.print("\n");
}
}
else
{
System.out.println(verder+" is an unknown command, try again.");
repeatOrNot();
}
}
}