diff --git a/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java b/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java index 5b76fcd..eeb5ccc 100644 --- a/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java +++ b/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java @@ -9,30 +9,66 @@ public class Console { - public static int add(int a, int b) { - int sum = a + b; + public static double add(double a, double b) { + double sum = a + b; System.out.println(sum); return sum; } - public static int subtract(int a, int b) { - int difference = a - b; + public static double subtract(double a, double b) { + double difference = a - b; System.out.println(difference); return difference; } - public static int multiply(int a, int b) { - int product = a * b; + public static double multiply(double a, double b) { + double product = a * b; System.out.println(product); return product; } - public static int divide(int a, int b) { - int quotient = a / b; + public static double divide(double a, double b) { + double quotient = a / b; System.out.println(quotient); return quotient; } + public static double square(double a) { + double result = a * a; + System.out.println(result); + return result; + } + + public static double squareRoot(double a) { + double result = Math.sqrt(a); + System.out.println(result); + return result; + } + + public static double inverse(double a) { + double result = 1 / a; + System.out.println(result); + return result; + } + + public static double invert(double a) { + double result = -a; + System.out.println(result); + return result; + } + + public static double logarithm(double a) { + double result = Math.log(a); + System.out.println(result); + return result; + } + + public static double exponent(double a, double b) { + double result = Math.pow(a, b); + System.out.println(result); + return result; + } + public static void print(String output, Object... args) { @@ -66,4 +102,3 @@ public static Double getDoubleInput(String prompt) { } - diff --git a/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java b/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java index 9d11de3..77ff5e6 100644 --- a/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java +++ b/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java @@ -7,8 +7,8 @@ public class MainApplication { - public static int calculate(int a, int b, String operator) { - int result = 5; + public static double calculate(double a, double b, String operator) { + double result = 0; switch (operator) { case "+": result = Console.add(a, b); @@ -22,48 +22,72 @@ public static int calculate(int a, int b, String operator) { case "/": result = Console.divide(a, b); break; + case "sqrt": + result = (double) Console.squareRoot(a); + break; + case "sqr": + result = (double) Console.square(a); + break; + case "inv": + result = (double) Console.inverse(a); + break; + case "neg": + result = (double) Console.invert(a); + break; + case "log": + result = (double) Console.logarithm(a); + break; + case "exp": + result = (double) Console.exponent(a, b); + break; default: System.out.println("Invalid operator"); } return result; } - - // Console.println(""); - // String s = Console.getStringInput("Enter a string"); - // Integer i = Console.getIntegerInput("Enter an integer"); - // Double d = Console.getDoubleInput("Enter a double"); - // } - - - // public static void main(String[] args, Object userInput, Object prompt, String operator) { - - // if (userInput instanceof String) { - // System.out.println(); - // String userInputStr = Console.getStringInput(prompt); - // Console.println(userInputStr); - // } else if (userInput instanceof Integer) { - // System.out.println(); - // Integer userInputInt = Console.getIntegerInput(prompt); - // Console.println(userInputInt); - // } else if (userInput instanceof Double) { - // System.out.println(); - // Double userInputDbl = Console.getDoubleInput(prompt); - // Console.println(userInputDbl); - // } - // else { - // System.out.println("Invalid input type"); - // } - // System.out.println(prompt); - // } public static void main(String[] args) { - String prompt = "Enter an operator (+, -, *, /): "; + boolean isRunning = true; + double result = 0.0; + + String prompt = "Enter an operator (+, -, *, /, sqrt, sqr, inv, neg, log, exp): "; String operatorInput = Console.getStringInput(prompt); - Integer num1Input = Console.getIntegerInput("Enter the first number: "); - Integer num2Input = Console.getIntegerInput("Enter the second number: "); - int result = calculate(num1Input, num2Input, operatorInput); - Console.println("Result: %d", result); + if (operatorInput.equals("sqrt") || operatorInput.equals("sqr") || operatorInput.equals("inv") || operatorInput.equals("neg") || operatorInput.equals("log")) { + Double numInput = Console.getDoubleInput("Enter a number: "); + result = calculate(numInput, 0, operatorInput); + Console.println("Result: %f", result); + } else { + + Double num1Input = Console.getDoubleInput("Enter the first number: "); + Double num2Input = Console.getDoubleInput("Enter the second number: "); + result = calculate(num1Input, num2Input, operatorInput); + Console.println("Result: %f", result); + } + + while (isRunning) { + String again = Console.getStringInput("Use result in new equation? (yes/no): "); + if (again.equalsIgnoreCase("no")) { + isRunning = false; + } else { + String newOperator = Console.getStringInput("Enter an operator (+, -, *, /, sqrt, sqr, inv, neg, log, exp): "); + + if (newOperator.equals("sqrt") || newOperator.equals("sqr") || newOperator.equals("inv") || newOperator.equals("neg") || newOperator.equals("log")) { + result = calculate(result, 0, newOperator); + } else { + Double newNum = Console.getDoubleInput("Enter a number: "); + result = calculate(result, newNum, newOperator); + } + Console.println("Result: %f", result); + } + } + Console.println("Thank you for using the calculator!"); } -} \ No newline at end of file +} + + +// String newOperator = Console.getStringInput("Enter an operator (+, -, *, /): "); +// Double newNum = Console.getDoubleInput("Enter a number: "); +// double newResult = calculate(result, newNum, newOperator); +// result = newResult; \ No newline at end of file diff --git a/src/test/java/com/zipcodewilmington/scientific_calculator/TestMainApplication.java b/src/test/java/com/zipcodewilmington/scientific_calculator/TestMainApplication.java index 451aac9..850bebf 100644 --- a/src/test/java/com/zipcodewilmington/scientific_calculator/TestMainApplication.java +++ b/src/test/java/com/zipcodewilmington/scientific_calculator/TestMainApplication.java @@ -30,10 +30,22 @@ public static int add(int a, int b) { return sum; } + public static int subtract(int a, int b) { + int difference = a - b; + System.out.println(difference); + return difference; + } + public static int multiply(int a, int b) { int product = a * b; System.out.println(product); return product; } + public static int divide(int a, int b) { + int quotient = a / b; + System.out.println(quotient); + return quotient; + } + }