Project
package Scientificcalculator;
import java.util.Scanner;
public class ScientificCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double num1, num2;
System.out.println("Welcome to Scientific Calculator!");
System.out.println("Select an operation:");
System.out.println("+. Addition");
System.out.println("-. Subtraction");
System.out.println("*. Multiplication");
System.out.println("/. Division");
System.out.println("^. Power");
System.out.println("sqrt. Square Root");
System.out.println("nrt. Nth Root");
System.out.println("log. Logarithm");
System.out.println("logn. Natural Logarithm");
System.out.println("sin. Sine");
System.out.println("isin. Inverse Sine");
System.out.println("cos. Cosine");
System.out.println("icos. Inverse Cosine");
System.out.println("tan. Tangent");
System.out.println("itan. Inverse Tangent");
System.out.println("stor. Store to memory");
System.out.println("recall. Recall from memory");
System.out.println("d2b. Decimal to Binary");
System.out.println("b2d. Binary to Decimal");
System.out.println("sip. SIP Calculation");
String operation = scanner.nextLine().toLowerCase();
switch (operation) {
case "+":
System.out.print("Enter the first number: ");
num1 = scanner.nextDouble();
System.out.print("Enter the second number: ");
num2 = scanner.nextDouble();
System.out.println("Result: " + (num1 + num2));
break;
case "-":
System.out.print("Enter the first number: ");
num1 = scanner.nextDouble();
System.out.print("Enter the second number: ");
num2 = scanner.nextDouble();
System.out.println("Result: " + (num1 - num2));
break;
case "*":
System.out.print("Enter the first number: ");
num1 = scanner.nextDouble();
System.out.print("Enter the second number: ");
num2 = scanner.nextDouble();
System.out.println("Result: " + (num1 * num2));
break;
case "/":
System.out.print("Enter the first number: ");
num1 = scanner.nextDouble();
System.out.print("Enter the second number: ");
num2 = scanner.nextDouble();
if (num2 == 0) {
System.out.println("Cannot divide by zero.");
} else {
System.out.println("Result: " + (num1 / num2));
}
break;
case "^":
System.out.print("Enter the base number: ");
num1 = scanner.nextDouble();
System.out.print("Enter the exponent: ");
num2 = scanner.nextDouble();
System.out.println("Result: " + Math.pow(num1, num2));
break;
case "sqrt":
System.out.print("Enter the number: ");
num1 = scanner.nextDouble();
if (num1 < 0) {
System.out.println("Cannot take square root of negative number.");
} else {
System.out.println("Result: " + Math.sqrt(num1));
}
break;
case "nrt":
System.out.print("Enter the number: ");
num1 = scanner.nextDouble();
System.out.print("Enter the root: ");
num2 = scanner.nextDouble();
if (num1 < 0 && num2 % 2 == 0) {
System.out.println("Cannot take even root of negative number.");
}
case "log":
System.out.print("Enter the number: ");
num1 = scanner.nextDouble();
System.out.print("Enter the base: ");
num2 = scanner.nextDouble();
if (num1 <= 0 || num2 <= 0) {
System.out.println("Both the number and base must be greater than zero.");
} else {
System.out.println("Result: " + (Math.log(num1) / Math.log(num2)));
}
break;
case "logn":
System.out.print("Enter the number: ");
num1 = scanner.nextDouble();
if (num1 <= 0) {
System.out.println("Number must be greater than zero.");
} else {
System.out.println("Result: " + Math.log(num1));
}
break;
case "sin":
System.out.print("Enter the angle in degrees: ");
num1 = scanner.nextDouble();
System.out.println("Result: " + Math.sin(Math.toRadians(num1)));
break;
case "isin":
System.out.print("Enter the value of sine: ");
num1 = scanner.nextDouble();
if (num1 > 1 || num1 < -1) {
System.out.println("Value must be between -1 and 1.");
} else {
System.out.println("Result: " + Math.toDegrees(Math.asin(num1)));
}
break;
case "cos":
System.out.print("Enter the angle in degrees: ");
num1 = scanner.nextDouble();
System.out.println("Result: " + Math.cos(Math.toRadians(num1)));
break;
case "icos":
System.out.print("Enter the value of cosine: ");
num1 = scanner.nextDouble();
if (num1 > 1 || num1 < -1) {
System.out.println("Value must be between -1 and 1.");
} else {
System.out.println("Result: " + Math.toDegrees(Math.acos(num1)));
}
break;
case "tan":
System.out.print("Enter the angle in degrees: ");
num1 = scanner.nextDouble();
System.out.println("Result: " + Math.tan(Math.toRadians(num1)));
break;
case "itan":
System.out.print("Enter the value of tangent: ");
num1 = scanner.nextDouble();
System.out.println("Result: " + Math.toDegrees(Math.atan(num1)));
break;
case "stor":
System.out.print("Enter the number to store: ");
double memory = scanner.nextDouble();
System.out.println("Number " + memory + " has been stored.");
break;
case "d2b":
System.out.print("Enter the decimal number: ");
int decimal = scanner.nextInt();
System.out.println("Binary: " + Integer.toBinaryString(decimal));
break;
case "b2d":
System.out.print("Enter the binary number: ");
String binary = scanner.nextLine();
System.out.println("Decimal: " + Integer.parseInt(binary, 2));
break;
case "sip":
System.out.print("Enter the initial amount: ");
double initial = scanner.nextDouble();
System.out.print("Enter the interest rate (as a decimal): ");
double rate = scanner.nextDouble();
System.out.print("Enter the number of years: ");
double years = scanner.nextDouble();
double finalAmount = initial * Math.pow(1 + rate, years);
System.out.println("Final amount: " + finalAmount);
break;
default:
System.out.println("Invalid operation.");
break;
}}}