oop-lab3-t2
0leksa
java
5 months ago
5.0 kB
3
Indexable
// Standard calculator constructor abstract class CalcConstr{ abstract public void getSum(double number1, double number2); abstract public void getDifference(double number1, double number2); abstract public void getProduct(double number1, double number2); abstract public void getQuotient(double number1, double number2); } //Standard calculator class class StandardCalc extends CalcConstr{ java.util.Scanner input = new java.util.Scanner(System.in); public static double number1, number2, result; public StandardCalc(double number1, double number2){ this.number1 = number1; this.number2 = number2; } @Override public void getSum(double number1, double number2) { result = number1 + number2; System.out.println(result); } @Override public void getDifference(double number1, double number2) { result = number1 - number2; System.out.println(result); } @Override public void getProduct(double number1, double number2) { result = number1 * number2; System.out.println(result); } @Override public void getQuotient(double number1, double number2) { result = number1 / number2; System.out.println(result); } } // Extended calculator constructor interface ExtCalcConstr { public void getTan(double number1); } // Extended calculator class class ExtendedCalc implements ExtCalcConstr{ public double number1; public ExtendedCalc(double number1){ this.number1 = number1; } @Override public void getTan(double number1){ if(number1 == 90.0 || (number1/90.0) % 3 == 0.0){ System.out.println("tan of " + number1 + " is undefined"); } else { double result = Math.tan(number1); System.out.println("tan" + "(" + number1 + ")" + " = " + result); } } } public class Main { static java.util.Scanner input = new java.util.Scanner(System.in); static StandardCalc[] newCalc = new StandardCalc[2]; static int count = 0; public static void getInstruction(int count){ if (count == 0){ System.out.println("Enter desired operation(addition, subtraction, multiplication, division, tan): "); } String operation = input.nextLine(); if(operation.equals("tan")){ try { calculateTan(); } catch(Exception e){ System.out.println("Invalid value, please try again"); } finally { getInstruction(0); } } else if(operation.equals("addition") || operation.equals("subtraction") || operation.equals("multiplication") || operation.equals("division")){ try { calculate(operation); } catch(Exception e){ System.out.println("Invalid value, please try again"); } finally { getInstruction(0); } } else { getInstruction(1); } } public static void calculate(String operation){ System.out.println("Enter first number: "); int number1 = input.nextInt(); System.out.println("Enter second number: "); int number2 = input.nextInt(); if(operation.equals("division") & number2 == 0){ System.out.println("Division by 0 is not allowed"); getInstruction(0); } newCalc[0] = new StandardCalc(number1, number2); switch(operation){ case "addition": newCalc[0].getSum(number1, number2); break; case "subtraction": newCalc[0].getDifference(number1, number2); break; case "multiplication": newCalc[0].getProduct(number1, number2); break; case "division": newCalc[0].getQuotient(number1, number2); break; } getAnswer(); } public static void calculateTan(){ System.out.println("Enter the number: "); double number1 = input.nextDouble(); ExtendedCalc newExCalc = new ExtendedCalc(number1); newExCalc.getTan(number1); getAnswer(); } public static void getAnswer(){ System.out.println("Perform another operation?(y/n): "); char answer = input.next().charAt(0); if(answer == 'y' || answer == 'Y'){ getInstruction(0); } else if(answer == 'n' || answer == 'N'){ System.out.println("Exiting program"); System.exit(0); } else{ System.out.println("Invalid answer"); getAnswer(); } } public static void main(String[] args) { getInstruction(0); } }
Editor is loading...
Leave a Comment