Lab3-oop-t1

 avatar
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