From a5c198adadb912185a21daae2ae49b880f63d004 Mon Sep 17 00:00:00 2001 From: james Date: Sun, 1 Mar 2026 14:49:57 -0500 Subject: [PATCH 1/4] Created a calculator that is interactive w the result --- .../scientificcalculator/Console.java | 1 - .../scientificcalculator/MainApplication.java | 16 ++++++++++++++++ .../TestMainApplication.java | 12 ++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java b/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java index 5b76fcd..f374443 100644 --- a/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java +++ b/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java @@ -66,4 +66,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..bde04e7 100644 --- a/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java +++ b/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java @@ -58,12 +58,28 @@ public static int calculate(int a, int b, String operator) { // } public static void main(String[] args) { + boolean isRunning = true; + String prompt = "Enter an operator (+, -, *, /): "; 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); + + 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 (+, -, *, /): "); + Integer newNum = Console.getIntegerInput("Enter a number: "); + result = calculate(result, newNum, newOperator); + Console.println("Result: %d", result); + } } + Console.println("Thank you for using the calculator!"); +} } \ 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; + } + } From 89103594b53c242f85b45be71102472ca462ffa8 Mon Sep 17 00:00:00 2001 From: james Date: Sun, 1 Mar 2026 16:19:37 -0500 Subject: [PATCH 2/4] Seamless calc with reusable results including sqrt and sqr --- .../scientificcalculator/Console.java | 40 ++++++++-- .../scientificcalculator/MainApplication.java | 80 +++++++++---------- 2 files changed, 70 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java b/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java index f374443..c49e953 100644 --- a/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java +++ b/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java @@ -9,30 +9,54 @@ 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 void print(String output, Object... args) { diff --git a/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java b/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java index bde04e7..94ef4e2 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,51 +22,36 @@ 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; 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) { boolean isRunning = true; + double result = 0.0; - String prompt = "Enter an operator (+, -, *, /): "; + String prompt = "Enter an operator (+, -, *, /, sqrt, sqr): "; 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")) { + 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): "); @@ -74,12 +59,23 @@ public static void main(String[] args) { if (again.equalsIgnoreCase("no")) { isRunning = false; } else { - String newOperator = Console.getStringInput("Enter an operator (+, -, *, /): "); - Integer newNum = Console.getIntegerInput("Enter a number: "); - result = calculate(result, newNum, newOperator); - Console.println("Result: %d", result); + String newOperator = Console.getStringInput("Enter an operator (+, -, *, /, sqrt, sqr): "); + + if (newOperator.equals("sqrt") || newOperator.equals("sqr")) { + 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!"); } - 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 From 617450791e6748aa9d651e474c19a454187cc52c Mon Sep 17 00:00:00 2001 From: james Date: Sun, 1 Mar 2026 16:34:52 -0500 Subject: [PATCH 3/4] Added inverse, negative, log, and exponent into code --- .../scientificcalculator/Console.java | 12 ++++++++++++ .../scientificcalculator/MainApplication.java | 17 +++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java b/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java index c49e953..eeb5ccc 100644 --- a/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java +++ b/src/main/java/com/zipcodewilmington/scientificcalculator/Console.java @@ -57,6 +57,18 @@ public static double invert(double a) { 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) { diff --git a/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java b/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java index 94ef4e2..88c0a12 100644 --- a/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java +++ b/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java @@ -28,6 +28,15 @@ public static double calculate(double a, double b, String operator) { 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; default: System.out.println("Invalid operator"); } @@ -39,9 +48,9 @@ public static void main(String[] args) { boolean isRunning = true; double result = 0.0; - String prompt = "Enter an operator (+, -, *, /, sqrt, sqr): "; + String prompt = "Enter an operator (+, -, *, /, sqrt, sqr, inv, neg, log): "; String operatorInput = Console.getStringInput(prompt); - if (operatorInput.equals("sqrt") || operatorInput.equals("sqr")) { + 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); @@ -59,9 +68,9 @@ public static void main(String[] args) { if (again.equalsIgnoreCase("no")) { isRunning = false; } else { - String newOperator = Console.getStringInput("Enter an operator (+, -, *, /, sqrt, sqr): "); + String newOperator = Console.getStringInput("Enter an operator (+, -, *, /, sqrt, sqr, inv, neg, log): "); - if (newOperator.equals("sqrt") || newOperator.equals("sqr")) { + 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: "); From a948b6f2ebf1011a63e7d11353fe02d6ef98307e Mon Sep 17 00:00:00 2001 From: james Date: Sun, 1 Mar 2026 16:37:00 -0500 Subject: [PATCH 4/4] Added Exponent into code --- .../scientificcalculator/MainApplication.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java b/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java index 88c0a12..77ff5e6 100644 --- a/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java +++ b/src/main/java/com/zipcodewilmington/scientificcalculator/MainApplication.java @@ -37,6 +37,9 @@ public static double calculate(double a, double b, String operator) { case "log": result = (double) Console.logarithm(a); break; + case "exp": + result = (double) Console.exponent(a, b); + break; default: System.out.println("Invalid operator"); } @@ -48,7 +51,7 @@ public static void main(String[] args) { boolean isRunning = true; double result = 0.0; - String prompt = "Enter an operator (+, -, *, /, sqrt, sqr, inv, neg, log): "; + String prompt = "Enter an operator (+, -, *, /, sqrt, sqr, inv, neg, log, exp): "; String operatorInput = Console.getStringInput(prompt); if (operatorInput.equals("sqrt") || operatorInput.equals("sqr") || operatorInput.equals("inv") || operatorInput.equals("neg") || operatorInput.equals("log")) { Double numInput = Console.getDoubleInput("Enter a number: "); @@ -68,7 +71,7 @@ public static void main(String[] args) { if (again.equalsIgnoreCase("no")) { isRunning = false; } else { - String newOperator = Console.getStringInput("Enter an operator (+, -, *, /, sqrt, sqr, inv, neg, log): "); + 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);