Skip to content
Open
10 changes: 8 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.zipcodewilmington</groupId>
Expand Down Expand Up @@ -48,6 +48,12 @@
<version>4.12</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>eu.tortitas.utils</groupId>
<artifactId>lib</artifactId>
<version>1.2.0</version>
</dependency>
</dependencies>


Expand Down
120 changes: 118 additions & 2 deletions src/main/java/com/zipcodewilmington/scientificcalculator/Console.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,116 @@
/**
* Created by leon on 2/9/18.
*/


public class Console {

public static double add(double a, double b) {
double sum = a + b;
System.out.println(sum);
return sum;
}

public static double subtract(double a, double b) {
double difference = a - b;
System.out.println(difference);
return difference;
}

public static double multiply(double a, double b) {
double product = a * b;
System.out.println(product);
return product;
}

public static double divide(double a, double b) {
if (b == 0) {
throw new ArithmeticException("Err");
}

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) {
if (a < 0) {
throw new ArithmeticException("Err");
}
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) {
if (a <= 0) {
throw new ArithmeticException("Err");
}
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 double sine(double a) {
double result = Math.sin(a);
System.out.println(result);
return result;
}

public static double cosine(double a) {
double result = Math.cos(a);
System.out.println(result);
return result;
}

public static double tangent(double a) {
double result = Math.tan(a);
System.out.println(result);
return result;
}

public static double inverseSine(double a) {
double result = Math.asin(a);
System.out.println(result);
return result;
}

public static double inverseCosine(double a) {
double result = Math.acos(a);
System.out.println(result);
return result;
}

public static double inverseTangent(double a) {
double result = Math.atan(a);
System.out.println(result);
return result;
}

public static void print(String output, Object... args) {
System.out.printf(output, args);
}
Expand All @@ -23,10 +131,18 @@ public static String getStringInput(String prompt) {
}

public static Integer getIntegerInput(String prompt) {
return null;
Scanner scanner = new Scanner(System.in);
println(prompt);
Integer userInput = scanner.nextInt();
return userInput;
}

public static Double getDoubleInput(String prompt) {
return null;
Scanner scanner = new Scanner(System.in);
println(prompt);
Double userInput = scanner.nextDouble();
return userInput;
}
}


Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,138 @@
/**
* Created by leon on 2/9/18.
*/


public class MainApplication {

public static double calculate(double a, double b, String operator) {
double result = 0;
switch (operator) {
case "+":
result = Console.add(a, b);
break;
case "-":
result = Console.subtract(a, b);
break;
case "*":
result = Console.multiply(a, b);
break;
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;
case "sin":
result = (double) Console.sine(a);
break;
case "cos":
result = (double) Console.cosine(a);
break;
case "tan":
result = (double) Console.tangent(a);
break;
case "asin":
result = (double) Console.inverseSine(a);
break;
case "acos":
result = (double) Console.inverseCosine(a);
break;
case "atan":
result = (double) Console.inverseTangent(a);
break;
default:
System.out.println("Invalid operator");
}
return result;
}


public static void main(String[] args) {
Console.println("Welcome to my calculator!");
String s = Console.getStringInput("Enter a string");
Integer i = Console.getIntegerInput("Enter an integer");
Double d = Console.getDoubleInput("Enter a double.");

Console.println("The user input %s as a string", s);
Console.println("The user input %s as a integer", i);
Console.println("The user input %s as a d", d);
boolean isRunning = true;
double result = 0.0;
double memory = 0.0;
double prevA = 0.0;
double prevB = 0.0;
String prevOperator = "";

String prompt = "Enter an operator (+, -, *, /, sqrt, sqr, inv, neg, log, exp, sin, cos, tan, mr, cv, mc): ";
String operatorInput = Console.getStringInput(prompt);
if (operatorInput.equals("sqrt") || operatorInput.equals("sqr") || operatorInput.equals("inv") || operatorInput.equals("neg") || operatorInput.equals("log") || operatorInput.equals("sin") || operatorInput.equals("cos") || operatorInput.equals("tan")) {
Double numInput = Console.getDoubleInput("Enter a number: ");
prevA = numInput;
prevB = 0.0;
prevOperator = operatorInput;
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: ");
prevA = num1Input;
prevB = num2Input;
prevOperator = operatorInput;
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, sin, cos, tan, mr, cv, mc): ");

if (newOperator.equals("mr")) {
result = memory;
Console.println("Memory Recall: %f", result);
} else if (newOperator.equals("cv")) {
Console.println("Current Value: %f", result);
} else if (newOperator.equals("mc")) {
memory = 0.0;
Console.println("Memory cleared.");
} else if (newOperator.equals("redo")) {
Double editNum = Console.getDoubleInput("Enter a new number: ");
memory = result;
result = calculate(prevA, editNum, prevOperator);
Console.println("Result: %f", result);
}
else if (newOperator.equals("sqrt") || newOperator.equals("sqr") || newOperator.equals("inv") || newOperator.equals("neg") || newOperator.equals("log") || newOperator.equals("sin") || newOperator.equals("cos") || newOperator.equals("tan")) {
memory = result;
prevA = result;
prevB = 0.0;
prevOperator = newOperator;
result = calculate(result, 0, newOperator);
Console.println("Result: %f", result);
}
else {
Double newNum = Console.getDoubleInput("Enter a number: ");
memory = result;
prevA = result;
prevB = newNum;
prevOperator = newOperator;
result = calculate(result, newNum, newOperator);
Console.println("Result: %f", result);
}
}
}
Console.println("Thank you for using our calculator!");
}
}

// Ready to Send
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,49 @@
/**
* Created by leon on 2/9/18.
*/

class Prompt {
private String prompt;
private String userInput;

public Prompt(String prompt, String userInput) {
this.prompt = prompt;
this.userInput = userInput;
}

public String getPrompt() {
return prompt;
}

public String getUserInput() {
return userInput;
}
}
public class TestMainApplication {


public static int add(int a, int b) {
int sum = a + b;
System.out.println(sum);
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;
}

}