Challenge

Project

// Main Class

import java.util.Scanner;

import OperationMethods.ArithmeticOperators.*;
import OperationMethods.OperationsHistory.*;
import OperationMethods.OtherFunctions.*;
import OperationMethods.TrignometricFunctions.*;

public class ScientificCalculator {
	// Using Array of Operations To display the operation Methods serially
	// It will help the program for correct readability
	public static void ListOfOperations() {
		System.out.println("#\tWelcome To The Scientific Calculator\n");
		String Operation[] = {"Addition(+)", "Subtraction(-)", "Multipliaction(*)", "Division(/)", "Power", "Square Root", "nth Root", "log", "logn", "sin", "isin", "cos", "icos",
				"tan", "itan", "d2b", "b2d", "SIP", "Store", "Stored Operation", "Recall" , "Delete","Exit"};
		System.out.println("#\tOperations Methods\n");
		for (int i = 1; i < Operation.length + 1; i++) {
			System.out.println("[" + i + "]" + ". " + Operation[i - 1]);
		}
	}
	public static void main(String[] args) {
		ListOfOperations();
		Scanner sc = new Scanner(System.in);
		String stor = null;
		while (true) {
			System.out.print("\nWhat would you like to do? :  ");
			int choice = sc.nextInt();
			// For User Choice Switch Case is Used Because gives more comfort to understnd the program
			// The program is design in such a way that calculator has choices ranging from 1 to 23 To operations on the scientific Calcua;tor
			// The program will take user input unless an untill user exit from  the calculator.
			// If user choice wrong choice then the default case is been set to inform the user about it.
			switch (choice) {
			case 1:
				Addition.CalcAddition();
				continue;
			case 2:
				Subtraction.CalcSubtraction();
				continue;
			case 3:
				Multiplication.CalcMultiplication();
				continue;
			case 4:
				Division.CalcDivision();
				continue;
			case 5:
				Power.CalcPower();
				continue;
			case 6:
				SquareRoot.CalcSquareRoot();
				continue;
			case 7:
				nthRoot.CalcnthRoot();
				continue;
			case 8:
				log10.CalcLogarithmicValue();
				continue;
			case 9:
				logn.CalcNaturalLog();
				continue;
			case 10:
				sin.CalcSin();
				continue;
			case 11:
				isin.CalcInverseSin();
				continue;
			case 12:
				cos.CalcCos();
				continue;
			case 13:
				icos.CalcInverseCos();
				continue;
			case 14:
				tan.CalcTan();
				continue;
			case 15:
				itan.CalcInverseTan();
				continue;
			case 16:
				d2b.CalcDecimalToBinary();
				continue;
			case 17:
				b2d.CalcBinaryToDecimal();
				continue;
			case 18:
				SIP.CalcSIP();
				continue;
			case 19:
				System.out.print("Entre The Value :  ");
				sc.nextLine();
				stor = sc.nextLine();
				continue;
			case 20:
				System.out.print("Stored Operation No. :  " + stor + "\n");
				continue;
			case 21:
				RecallHistory.RecallData();
				continue;
			case 22:
				DeleteHistory.DeleteAllData();
				continue;
			case 23:
				break;
			default:
				System.out.println("Invalid Choice !!");
			}
		}
	}
}
// Addition Class

package OperationMethods.ArithmeticOperators;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class Addition {
	public static void CalcAddition() {
		System.out.println("#\tAddition");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The First Number :  ");
			double num1 = sc.nextDouble();
			System.out.print("Enter The Second Number :  ");
			double num2 = sc.nextDouble();
			String Ans = ("\nAddition = " + num1 + " + " + num2 + " = " + (num1 + num2));
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// Division Class

package OperationMethods.ArithmeticOperators;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class Division {
	public static void CalcDivision() {
		System.out.println("#\tDivision");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The First Number :  ");
			double num1 = sc.nextDouble();
			System.out.print("Enter The Second Number :  ");
			double num2 = sc.nextDouble();
			try {
				String Ans = ("\nDivision = " + num1 + " / " + num2 + " = " + (num1 / num2));
				System.out.println(Ans);
				StoreHistory.StoreData(Ans);
			} catch (Exception e) {
				e.getLocalizedMessage();
			}
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// Multiplication Class

package OperationMethods.ArithmeticOperators;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class Multiplication {
	public static void CalcMultiplication() {
		System.out.println("#\tMultiplication");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The First Number :  ");
			double num1 = sc.nextDouble();
			System.out.print("Enter The Second Number :  ");
			double num2 = sc.nextDouble();
			String Ans = ("\nMultiplication = " + num1 + " x " + num2 + " = " + (num1 * num2));
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// Subtraction Class

package OperationMethods.ArithmeticOperators;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class Subtraction {
	public static void CalcSubtraction() {
		System.out.println("#\tSubtraction");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The First Number :  ");
			double num1 = sc.nextDouble();
			System.out.print("Enter The Second Number :  ");
			double num2 = sc.nextDouble();
			String Ans = ("\nSubtraction = " + num1 + " - " + num2 + " = " + (num1 - num2));
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// Cos Class

package OperationMethods.TrignometricFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class cos {
	public static void CalcCos() {
		System.out.println("#\tCos( )");
		try {
			Scanner sc = new Scanner(System.in);
			System.out.print("Enter The Angle :  ");
			double num1 = sc.nextDouble();
			String Ans = ("\ncos " + num1 + " = " + Math.cos(Math.toRadians(num1)) + " degree");
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// Cos Inverse Class

package OperationMethods.TrignometricFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class icos {
	public static void CalcInverseCos() {
		System.out.println("#\tCos Inverse( )");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The Angle :  ");
			double num1 = sc.nextDouble();
			String Ans = ("\nicos " + num1 + " = " + Math.toDegrees(Math.acos(num1)) + " degree");
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// Sin Inverse Class

package OperationMethods.TrignometricFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class isin {
	public static void CalcInverseSin() {
		System.out.println("#\tSin Inverse( )");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The Angle :");
			double ang = sc.nextDouble();
			String Ans = ("\nisin " + ang + " = " + Math.toDegrees(Math.asin(ang)) + " degree");
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// Tan Inverse Class

package OperationMethods.TrignometricFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class itan {
	public static void CalcInverseTan() {
		System.out.println("#\tTan Inverse( ) ");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The Angle :  ");
			double num1 = sc.nextDouble();
			String Ans = ("\nitan " + num1 + " = " + Math.toDegrees(Math.atan(num1)) + " degree");
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// Sin Class

package OperationMethods.TrignometricFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class sin {
	public static void CalcSin() {
		System.out.println("#\tSin( )");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The Angle :  ");
			double ang = sc.nextDouble();
			String Ans = ("\nsin " + ang + " = " + Math.sin(Math.toRadians(ang)) + " degree");
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// Tan Class

package OperationMethods.TrignometricFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class tan {
	public static void CalcTan() {
		System.out.println("#\tTan( )");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The Angle :  ");
			double ang = sc.nextDouble();
			String Ans = ("\ntan " + ang + " = " + Math.tan(Math.toRadians(ang)) + " degree");
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// b2d Class

package OperationMethods.OtherFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class b2d {
	public static void CalcBinaryToDecimal() {
		System.out.println("#\tsBinary To Decimal");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.println("Enter The Binary Number :");
			String num1 = sc.nextLine();
			int decimal = Integer.parseInt(num1, 2);
			String Ans = ("(Binary) " + num1 + " b2d = " + decimal);
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// d2b Class

package OperationMethods.OtherFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class d2b {
	public static void CalcDecimalToBinary() {
		System.out.println("#\tDecimal To Binary");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.println("Enter The Decimal Number :");
			int num1 = sc.nextInt();
			String Binary = Integer.toBinaryString(num1);
			String Ans = ("(Decimal) " + num1 + " d2b = " + Binary);
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// log10 Class

package OperationMethods.OtherFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class log10 {
	public static void CalcLogarithmicValue() {
		System.out.println("#\tLogarithmicValue");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The Number :  ");
			double num1 = sc.nextDouble();
			String Ans = ("\nlog (base 10) " + num1 + " = " + Math.log10(num1));
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// logn Class

package OperationMethods.OtherFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class logn {
	public static void CalcNaturalLog() {
		System.out.println("#\tNatural Log");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The Number :  ");
			double num1 = sc.nextDouble();
			String Ans = ("\nln" + num1 + " = " + Math.log(num1));
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// nth Root Class

package OperationMethods.OtherFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class nthRoot {
	public static void CalcnthRoot() {
		System.out.println("#\tnth Root");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The Number :  ");
			double num1 = sc.nextDouble();
			System.out.print("Enter Value Of n :  ");
			double num2 = sc.nextDouble();
			String Ans = ("\nThe nth root = " + num1 + "^(1/" + num2 + ")" + " = " + Math.pow(num1, (1 / num2)));
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// Power Class

package OperationMethods.OtherFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class Power {
	public static void CalcPower() {
		System.out.println("#\tRaise To The Power");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The Base Number :  ");
			double Base = sc.nextDouble();
			System.out.print("Enter The Exponent Number :  ");
			double Power = sc.nextDouble();
			String Ans = ("\nPower = " + Base + "^" + Power + " = " + Math.pow(Base, Power));
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// SIP Class

package OperationMethods.OtherFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class SIP {
	public static void CalcSIP() {
		System.out.println("#\tSIP");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter Amount Invested :  ");
			double amt = sc.nextInt();
			System.out.print("Enter The Interest Rate :  ");
			double rate = sc.nextInt();
			System.out.print("Enter Number Of Installments :  ");
			double ins = sc.nextInt();
			double x = rate + 1;
			double total = (amt * ((Math.pow(x, ins) - 1)) / rate * x);
			String Ans = ("\nSIP = " + total + "\n");
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// Square Root Class

package OperationMethods.OtherFunctions;

import java.util.Scanner;

import OperationMethods.OperationsHistory.StoreHistory;

public class SquareRoot {
	public static void CalcSquareRoot() {
		System.out.println("#\tSquare Root");
		Scanner sc = new Scanner(System.in);
		try {
			System.out.print("Enter The Base Number :  ");
			double num1 = sc.nextDouble();
			String Ans = ("\nSquare Root of = " + num1 + "^(0.5)" + " = " + Math.pow(num1, 0.5));
			System.out.println(Ans);
			StoreHistory.StoreData(Ans);
		} catch (Exception e) {
			System.out.println("Invalid Input !!");
			e.getMessage();
		}
	}
}
// Store History Class

package OperationMethods.OperationsHistory;

import java.io.*;
	
	// Store History will Store The Data Which User Want To Store
    // It will be store under the file which use has made in StoreData Class
public class StoreHistory {
	public static void StoreData(String CalculatorHistory) {
		try {
			BufferedWriter bw = new BufferedWriter(
					new FileWriter("C:\\Users\\ScientificCalculator\\CalculatorHistory\\CalculatorHistory.txt", true));
			bw.write(CalculatorHistory);
			bw.close();
		} catch (IOException e) {
			System.out.println("Error !!");
			e.printStackTrace();
		}
	}
}
// Recall History Class

package OperationMethods.OperationsHistory;

import java.io.*;

	// If user want to see the calculator which he needs afterwards he can access through RecallData Method
	// Recall will read the file and display it to the user
public class RecallHistory {
	public static void RecallData() {
		try {
			BufferedReader br = new BufferedReader(
					new FileReader("C:\\Users\\ScientificCalculator\\CalculatorHistory\\CalculatorHistory.txt"));
			String History;
			while ((History = br.readLine()) != null) {
				System.out.println(History);
			}
		} catch (IOException e) {
			System.out.println("Error !!!");
			e.printStackTrace();
		}
	}
}
// Delete History Class

package OperationMethods.OperationsHistory;

import java.io.File;
  
	// To delete the data into the calculator history
	// DeleteAllData Method Can be used because by storing values it will lots of junk.
public class DeleteHistory {
	public static void DeleteAllData() {
		File CalculatorHistory =new File("C:\\Users\\ScientificCalculator\\CalculatorHistory\\CalculatorHistory.txt");
		if (CalculatorHistory.delete() == true) {
			System.out.println("Calculator History Deleted Successfully");
		} else {
			System.out.println("Error Ocurred While Deleting Try Again !!");
		}
	}
}
Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.