Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
14 changes: 14 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,20 @@
<groupId>com.zipcodewilmington</groupId>
<artifactId>scientific_calculator</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
</dependencies>


</project>
Binary file added src/.DS_Store
Binary file not shown.
Binary file added src/main/.DS_Store
Binary file not shown.
Binary file added src/main/java/.DS_Store
Binary file not shown.
Binary file added src/main/java/com/.DS_Store
Binary file not shown.
Binary file added src/main/java/com/zipcodewilmington/.DS_Store
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
package com.zipcodewilmington.scientificcalculator;
public class Calculator {
public Calculator() {
}
public void drawScreen(String d){
Console.println("");
Console.println("|------------------------------------------------|");
Console.println("|Quit Clear Set M+ MC MRC |");
Console.println("|------------------------------------------------|");
Console.println(" Current Number: %s ",d);
Console.println("|------------------------------------------------|");
Console.println("| Add Subtract Multiply Divide |");
Console.println("| Square Square Root Exponential Inverse |");
Console.println("| Log Log-1 Ln Ln-1 |");
Console.println("| Sine Cosine Tangent Factorial |");
Console.println("| Sine-1 Cosine-1 Tangent-1 Invert |");
Console.println("| cToF fToC LBtoKG KGtoLB |");
Console.println("| radToDeg degToRad |");
Console.println("|------------------------------------------------|");
}
public double performOperation(String op, double num1, double num2){
double returnAns;
if(op.equalsIgnoreCase("add")){
returnAns = this.addition(num1,num2);

double newThing = MainApplication.getCurrent();

}
else if(op.equalsIgnoreCase("subtract")){
returnAns = this.subtraction(num1,num2);
}
else if(op.equalsIgnoreCase("multiply")){
returnAns = this.multiply(num1, num2);
}
else if(op.equalsIgnoreCase("divide")){
returnAns = this.divide(num1, num2);
}
//catching exponential operation
else {
returnAns = this.exponential(num1, num2);
}
return returnAns;
}
public double performOperation(String op, double num){
double returnAns;
if(op.equalsIgnoreCase("square")){
returnAns = this.square(num);
}
else if(op.equalsIgnoreCase("square root")){
returnAns = this.squareRoot(num);
}
else if(op.equalsIgnoreCase("inverse")){
returnAns = this.inverse(num);
}
else if(op.equalsIgnoreCase("invert")){
returnAns = this.invert(num);
}
else if(op.equalsIgnoreCase("sine")){
returnAns = this.sine(num);
}
else if(op.equalsIgnoreCase("cosine")){
returnAns = this.cosine(num);
}
else if(op.equalsIgnoreCase("tangent")){
returnAns = this.tangent(num);
}
else if(op.equalsIgnoreCase("sine-1")){
returnAns = this.inverseSine(num);
}
else if(op.equalsIgnoreCase("cosine-1")){
returnAns = this.inverseCosine(num);
}
else if(op.equalsIgnoreCase("tangent-1")){
returnAns = this.inverseTangent(num);
}
else if(op.equalsIgnoreCase("factorial")){
returnAns = this.factorial(num);
}
else if(op.equalsIgnoreCase("log")){
returnAns = this.log(num);
}
else if(op.equalsIgnoreCase("log-1")){
returnAns = this.inverseLog(num);
}
else if(op.equalsIgnoreCase("ln")){
returnAns = this.naturalLog(num);
}
else if(op.equalsIgnoreCase("ln-1")){
returnAns = this.inverseNaturalLog(num);
}
else if(op.equalsIgnoreCase("lbToKg")){
returnAns = this.convertLBtoKG(num);
}
else if(op.equalsIgnoreCase("kgtoLb")) {
returnAns = this.convertKGtoLB(num);
}
else if(op.equalsIgnoreCase("radtodeg")) {
returnAns = this.toDegrees(num);
}
else if(op.equalsIgnoreCase("degtorad")) {
returnAns = this.toRadians(num);
}
else if(op.equalsIgnoreCase("fToC")){
returnAns = this.convertFtoC(num);
}
//catching convert C to F
else {
returnAns = this.convertCtoF(num);
}
return returnAns;
}
//two variable operations
public double addition(double x, double y){
double ans = x + y;
return ans;
}
public double subtraction(double x,double y){
double ans = x - y;
return ans;
}
public double multiply(double x,double y){
double ans = x * y;
return ans;
}
//divide by zero handled in MainApplication
public double divide(double x,double y){
double ans = x / y;
return ans;
}
public double exponential(double x,double y){
double ans = Math.pow(x,y);
return ans;
}
//one variable operations
public double square(double x){
double ans = Math.pow(x,2);
return ans;
}
public double squareRoot(double x){
double ans = Math.sqrt(x);
return ans;
}
public double inverse(double x){
double ans = (1 / x);
return ans;
}
public double invert(double x){
double ans = (x * -1);
return ans;
}
public double sine(double x){
double ans = Math.sin(x);
return ans;
}
public double cosine(double x){
double ans = Math.cos(x);
return ans;
}
public double tangent(double x){
double ans = Math.tan(x);
return ans;
}
public double inverseSine(double x){
double ans = Math.asin(x);
return ans;
}
public double inverseCosine(double x){
double ans = Math.acos(x);
return ans;
}
public double inverseTangent(double x){
double ans = Math.atan(x);
return ans;
}
public double factorial(double x){
double ans = 1;
for(int i=1;i<=x;i++){
ans *= i;
}
return ans;
}
public double log(double x){
double ans = Math.log10(x);
return ans;
}
public double inverseLog(double x){
double ans = Math.pow(10,x);
return ans;
}
public double naturalLog(double x){
double ans = Math.log(x);
return ans;
}
public double inverseNaturalLog(double x){
double ans = Math.exp(x);
return ans;
}
public double convertFtoC(double x) {
double fToC = (x - 32) / 1.8;
return fToC;
}
public double convertCtoF(double x) {
double cToF = (x * 1.8) + 32;
return cToF;
}
public double convertLBtoKG(double x) {
double lbToKg = (x * 0.45359237);
return lbToKg;
}
public double convertKGtoLB(double x){
double kgtoLb = (x * 2.20462262);
return kgtoLb ;
}
public double toRadians(double x){
double ans = Math.toRadians(x);
return ans;
}
public double toDegrees(double x){
double ans = Math.toDegrees(x);
return ans;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,16 @@ 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
@@ -1,17 +1,92 @@
package com.zipcodewilmington.scientificcalculator;

import java.util.InputMismatchException;
/**
* Created by leon on 2/9/18.
*/
public class MainApplication {

public static double currentlyDisplayed;

public static void main(String[] args) {
boolean isRunning = true;

Calculator myCalc = new Calculator();
myCalc.drawScreen(Double.toString(currentlyDisplayed));
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.");
while(true) {
try {
currentlyDisplayed = Console.getDoubleInput("Please enter your first number:");
break;
} catch (InputMismatchException e) {
Console.println("");
}
}
myCalc.drawScreen(Double.toString(currentlyDisplayed));
while(isRunning) {
String op = Console.getStringInput("Please enter the operation you would like to perform:");
//prompt user for second number if they choose two variable operator then run two variable operator
if (op.equalsIgnoreCase("add") || op.equalsIgnoreCase("subtract") || op.equalsIgnoreCase("multiply") || op.equalsIgnoreCase("exponential")) {
while(true){
try{
double secondNum = Console.getDoubleInput("Please enter your second number or enter \"Memory\" for your stored value:");
currentlyDisplayed = myCalc.performOperation(op,currentlyDisplayed, secondNum);
myCalc.drawScreen(Double.toString(currentlyDisplayed));
break;
}
catch(InputMismatchException e) {
Console.println("");
}
}
}
//handle division by zero
else if (op.equalsIgnoreCase("divide")){
while(true){
try{
double secondNum = Console.getDoubleInput("Please enter your second number or enter \"Memory\" for your stored value:");
if (secondNum == 0) {
String error = "Can't divide by zero";
myCalc.drawScreen(error);
}
else {
currentlyDisplayed = myCalc.performOperation(op, currentlyDisplayed, secondNum);
myCalc.drawScreen(Double.toString(currentlyDisplayed));
}
break;
}
catch(InputMismatchException e) {
Console.println("");
}
}
}
//run one variable operator
else if (op.equalsIgnoreCase("square") || op.equalsIgnoreCase("square root") || op.equalsIgnoreCase("inverse") || op.equalsIgnoreCase("log")|| op.equalsIgnoreCase("log-1")|| op.equalsIgnoreCase("ln")|| op.equalsIgnoreCase("ln-1")|| op.equalsIgnoreCase("sine")|| op.equalsIgnoreCase("cosine")|| op.equalsIgnoreCase("tangent")|| op.equalsIgnoreCase("factorial")|| op.equalsIgnoreCase("sine-1")|| op.equalsIgnoreCase("cosine-1")|| op.equalsIgnoreCase("tangent-1")|| op.equalsIgnoreCase("invert")|| op.equalsIgnoreCase("ctof")|| op.equalsIgnoreCase("ftoc")|| op.equalsIgnoreCase("lbtokg")|| op.equalsIgnoreCase("kgtolb")|| op.equalsIgnoreCase("radtodeg")|| op.equalsIgnoreCase("degtorad")){
currentlyDisplayed = myCalc.performOperation(op, currentlyDisplayed);
myCalc.drawScreen(Double.toString(currentlyDisplayed));
}
//clear screen
else if (op.equalsIgnoreCase("clear")) {
currentlyDisplayed = 0;
myCalc.drawScreen(Double.toString(currentlyDisplayed));
}
else if(op.equalsIgnoreCase("set")){
double setNum = Console.getDoubleInput("Please enter your number to set:");
currentlyDisplayed = setNum;
myCalc.drawScreen(Double.toString(currentlyDisplayed));
}
//quit calc
else if(op.equalsIgnoreCase("quit")){
isRunning = false;
}
//handle misspelled operator
else{
String error = "Invalid operator";
myCalc.drawScreen(error);
}
}
}

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);
public static double getCurrent(){
return currentlyDisplayed;
}
}

}
Loading