Lab3-oop-t1
0leksa
java
a year ago
4.6 kB
3
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