Lab3-oop-t1
0leksa
java
5 months ago
4.6 kB
2
Indexable
class StandardCalc{ 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; } public void setNumber1(double number1){ number1 = input.nextDouble(); } public void setNumber2(double number2){ number2 = input.nextDouble(); } public void getSum(double number1, double number2){ result = number1 + number2; System.out.println(number1 + " + " + number2 + " = " + result); } public void getDifference(double number1, double number2){ result = number1 - number2; System.out.println(number1 + " - " + number2 + " = " + result); } public void getProduct(double number1, double number2){ result = number1 * number2; System.out.println(number1 + " * " + number2 + " = " + result); } public void getQuotient(double number1, double number2){ result = number1 / number2; System.out.println(number1 + " / " + number2 + " = " + result); } } class ExtendedCalc extends StandardCalc{ public ExtendedCalc(double number1) { super(number1, number2); } public void getTan(double number1){ result = Math.tan(StandardCalc.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(){ System.out.println("Enter desired operation(addition, subtraction, multiplication, division, tan): "); if(count != 0){ String inputFlush = input.nextLine(); } String operation = input.nextLine(); count++; if(operation.equals("tan")){ try { calculateTan(); } catch(Exception e){ System.out.println("Invalid value, please try again"); } finally { getInstruction(); } } 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(); } } else { System.out.println("Invalid operation"); getInstruction(); } } 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(); } 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(); } 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(); } }
Editor is loading...
Leave a Comment