Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
0dc1b36
Added custom function java file
Isiah-A Mar 1, 2025
6b8e8b1
Can you see this
christhomas1190 Mar 1, 2025
85b1845
Added custom function java file
Isiah-A Mar 1, 2025
084753b
Added basic math
Isiah-A Mar 1, 2025
9ad7928
Here we go again
christhomas1190 Mar 1, 2025
0a135b6
Here we go again
christhomas1190 Mar 1, 2025
7da1b6c
Merge remote-tracking branch 'origin/master'
christhomas1190 Mar 1, 2025
85d8f8f
Everything in science
christhomas1190 Mar 1, 2025
2dbd83d
Almost there??
christhomas1190 Mar 1, 2025
c11ffe5
Almost there??
christhomas1190 Mar 1, 2025
a31901f
Adding more math methods
Isiah-A Mar 2, 2025
d3ec322
Added more math and made minor changes to MainApplication
Isiah-A Mar 2, 2025
5f0baa2
imported BigInteger for factorial
Isiah-A Mar 2, 2025
35937d5
Created factorial using big integer
Isiah-A Mar 2, 2025
334dc2b
added inverse natural log in science
Isiah-A Mar 2, 2025
f51cc0c
Added memory options in science
Isiah-A Mar 2, 2025
e547523
Added memory to main application at bottom in comments to go in at a …
Isiah-A Mar 2, 2025
b739497
Added comments for math in Science file
Isiah-A Mar 2, 2025
bf690f1
Almost there???
christhomas1190 Mar 2, 2025
8e67089
Merge remote-tracking branch 'origin/master'
christhomas1190 Mar 2, 2025
5cb4fdb
Almost there???
christhomas1190 Mar 2, 2025
47370ea
created 1st test for square and fixed issue with getting sin to work …
Isiah-A Mar 3, 2025
e65b950
Added test and replaces factorials
christhomas1190 Mar 4, 2025
0e72ae3
Merge remote-tracking branch 'origin/master'
christhomas1190 Mar 4, 2025
5ce8fdf
Let us pray
christhomas1190 Mar 5, 2025
38b7af5
added test comment
Isiah-A Mar 5, 2025
bb6dd5d
added pow and add tests
Isiah-A Mar 5, 2025
2568ab2
added tests for sin, pow, inverse, inverse sine, switch sign, cos , t…
Isiah-A Mar 5, 2025
f81e033
Fixed math for degrees, radians, and inverse NL. Added them to test a…
Isiah-A Mar 5, 2025
a401005
Comments added
christhomas1190 Mar 6, 2025
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
27 changes: 27 additions & 0 deletions SciCalc.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
@startuml
'https://plantuml.com/class-diagram

abstract class AbstractList
abstract AbstractCollection
interface List
interface Collection

List <|-- AbstractList
Collection <|-- AbstractCollection

Collection <|- List
AbstractCollection <|- AbstractList
AbstractList <|-- ArrayList

class ArrayList {
Object[] elementData
size()
}

enum TimeUnit {
DAYS
HOURS
MINUTES
}

@enduml
13 changes: 13 additions & 0 deletions ScienceCalc.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
@startuml
'https://plantuml.com/object-diagram

object Science.java
object Console

map MainApp {
Calculator *-> Science.java
Welcome msg. *--> Console
}

'NewYork --> CapitalCity::USA
@enduml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,19 @@ public static String getStringInput(String prompt) {
}

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

public static Double getDoubleInput(String prompt) {
return null;
Scanner scanner = new Scanner(System.in);
System.out.println(prompt);
while(!scanner.hasNextDouble()){
System.out.println("Invalid input. Please enter a valid double");
scanner.next();
}
return scanner.nextDouble();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.zipcodewilmington.scientificcalculator;

public class Corefunctions {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.zipcodewilmington.scientificcalculator;
import java.util.Scanner;

public class Customfunctions {

}
Original file line number Diff line number Diff line change
@@ -1,17 +1,147 @@
package com.zipcodewilmington.scientificcalculator;

import java.util.Scanner;
/**
* Created by leon on 2/9/18.
*/
public class MainApplication {
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);
System.out.println("Welcome to my scientific calculator");
Scanner scanner = new Scanner(System.in);
double memory = 0;


while (true) { //SwitchDisplayMode(String mode) = allow user to type operation/menu options in
System.out.println(" Choose an operation");
//.nextln()??
System.out.println("1: Addition");
System.out.println("2: Subtraction");
System.out.println("3: Multiplication");
System.out.println("4: Division");
System.out.println("5: Square");
System.out.println("6: Cube/Exponent");
System.out.println("7: Square root");
System.out.println("8: Sine");
System.out.println("9: Cosine");
System.out.println("10: Tangent");
System.out.println("11: Inverse Sine");
System.out.println("12: Inverse Cosine");
System.out.println("13: Inverse Tangent");
System.out.println("14: Inverse");
System.out.println("15: Switch sign");
System.out.println("16: Factorial");
System.out.println("17: Degrees");
System.out.println("18: Radians");
System.out.println("19: log");
System.out.println("20: log10");
System.out.println("21: log1p");
System.out.println("22: Inverse Natural Log");
System.out.println("23:Store Memory");
System.out.println("24:Reset Memory");
System.out.println("25:Recall Memory");
System.out.println("26: Quit application");
//SwitchDisplayMode() = create multiple display menus instead of one large one?

int choice = scanner.nextInt(); //Close scanner when all inputs are built

if(choice == 26){
break;
}

double num1 = 0;
double num2 = 0;

if(choice >=1 && choice <= 4 || choice ==6 || choice ==25){
System.out.println("Enter first number: ");
num1=scanner.nextDouble();
System.out.println("Enter second number: ");
num2=scanner.nextDouble();
}else if (choice == 5 || choice == 7 || (choice >= 8 && choice <= 25)){
num1= Console.getDoubleInput("Enter number here :");
}


Science science = new Science();
switch(choice){
case 1:
System.out.println("Result:" + science.addition(num1, num2));
break;

case 2:
System.out.println("Result:" + science.subtraction(num1, num2));
break;
case 3:
System.out.println("Result:" + science.multiplication(num1, num2));
break;
case 4:
System.out.println("Result:" + science.division(num1, num2));
break;
case 5:
System.out.println("Result:" + science.square(num1));
break;
case 6:
System.out.println("Result:" + science.pow(num1, num2));
break;
case 7:
System.out.println("Result:" + science.squareRt(num1));
break;
case 8:
System.out.println("Result:" + science.sin(num1));
break;
case 9:
System.out.println("Result:" + science.cos(num1));
break;
case 10:
System.out.println("Result:" + science.tan(num1));
break;
case 11:
System.out.println("Result:" + science.inverseSine(num1));
break;
case 12:
System.out.println("Result:" + science.inverseCos(num1));
break;
case 13:
System.out.println("Result:" + science.inverseTan(num1));
break;

case 14:
System.out.println("Result:" + science.inverse(num1));
break;
case 15:
System.out.println("Result:" + science.switchSign(num1));
break;
case 16:
System.out.println("Result:" + science.factorial((int) num1));
break;
case 17:
System.out.println("Result:" + science.degrees(num1));
break;
case 18:
System.out.println("Result:" + science.radians(num1));
break;
case 19:
System.out.println("Result:" + science.log(num1));
break;
case 20:
System.out.println("Result:" + science.log10(num1));
break;
case 21:
System.out.println("Result:" + science.log1p(num1));
break;
case 22:
System.out.println("Result:" + science.inverseNL(num1));
break;
case 23:
System.out.println("Result:" + science.storeMemory(num1));
break;
case 24:
System.out.println("Result:" + science.resetMemory(num1));
break;
case 25:
System.out.println("Result:" + science.recallMemory(num1));
break;

}
}
}
}

123 changes: 123 additions & 0 deletions src/main/java/com/zipcodewilmington/scientificcalculator/Science.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
package com.zipcodewilmington.scientificcalculator;
import java.math.BigInteger;
import java.lang.Math;


public class Science {

public static double square(double num){
return num*num;
}
public static double pow(double a, double b){
return Math.pow(a, b);
}
public static double squareRt(double num) {
return Math.sqrt(num);
}
public static double inverse(double num) {
return 1 / num;
}

//If absolute value of number is greater than 1 the result will be NaN
public static double inverseSine(double num) {
return Math.asin(num);
}

//Returns sign of number 1 for positive, -1 for negative and 0 for zero
public static double switchSign(double num) {
return Math.signum(num);
}
public static double sin(double num) {
return Math.sin(num);
}
public static double cos(double num) {
return Math.cos(num);
}
public static double tan(double num) {
return Math.tan(num);
}
public static double inverseCos(double num) {
return Math.acos(num);
}
public double inverseTan(double num) {
return Math.atan(num);
}

//using BigInteger import
public static int factorial(int num) {
int solution = 1;
for (int i = 1; i <= num; i++) {
solution *= i;
}
return solution;
}

//Addition
public static double addition(double a, double b) {
return a + b;
}
//Subtract
public static double subtraction(double a, double b) {
return a - b;
}

//Multiplication
public static double multiplication(double a, double b) {
return a * b;
}

//Division
public static double division(double a, double b) {
if (b == 0) {
throw new ArithmeticException("Can't divide by 0");
} else {
return a / b;
}
}

//Degrees
public static double degrees(double num) {
return (num * Math.PI) / 180;
}

//Radians
public static double radians(double num) {
return (num * 180) / (Math.PI);
}

//Log
public static double log(double num) {
return Math.log(num);

}

//Inverse Log
public static double log10(double num) {
return Math.log10(num);
}

//Natural logarithm
public static double log1p(double num) {
return Math.log1p(num);
}
//Inverse Natural Log
public static double inverseNL(double num) {
return (Math.exp(Math.log(num)));
}

//Store memory
public static double storeMemory(double a){
return a;
}
//reset memory
public static double resetMemory(double a){
return a = 0;
}
//recall memory
public static double recallMemory(double a){
return a;
}

}


Loading