forked from Racinex08/actividad-8
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMain.java
117 lines (98 loc) · 3.77 KB
/
Main.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import java.util.Scanner;
import java.util.InputMismatchException;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
abstract class OperacionMatematica {
protected final double operando1;
protected final double operando2;
public OperacionMatematica(double operando1, double operando2) {
this.operando1 = operando1;
this.operando2 = operando2;
}
public abstract String ejecutar();
}
class Suma extends OperacionMatematica {
public Suma(double operando1, double operando2) {
super(operando1, operando2);
}
public String ejecutar() {
return "Suma: " + (operando1 + operando2);
}
}
class Resta extends OperacionMatematica {
public Resta(double operando1, double operando2) {
super(operando1, operando2);
}
public String ejecutar() {
return "Resta: " + (operando1 - operando2);
}
}
class Multiplicacion extends OperacionMatematica {
public Multiplicacion(double operando1, double operando2) {
super(operando1, operando2);
}
public String ejecutar() {
return "Multiplicación: " + (operando1 * operando2);
}
}
class Division extends OperacionMatematica {
public Division(double operando1, double operando2) {
super(operando1, operando2);
}
public String ejecutar() {
if (operando2 == 0) {
return "Error: división por cero";
} else {
return "División: " + (operando1 / operando2);
}
}
}
while (true) {
System.out.println("Calculadora de operaciones matemáticas");
System.out.println("1. Suma");
System.out.println("2. Resta");
System.out.println("3. Multiplicación");
System.out.println("4. División");
System.out.println("0. Salir");
System.out.print("Seleccione la operación (0-4): ");
int opcion;
try {
opcion = scanner.nextInt();
scanner.nextLine(); // Consume el salto de línea
} catch (InputMismatchException e) {
System.out.println("Entrada no válida. Por favor, ingrese un número válido.");
scanner.nextLine(); // Consume la entrada incorrecta
continue;
}
if (opcion == 0) {
break;
} else if (opcion < 0 || opcion > 4) {
System.out.println("Opción no válida.");
continue;
}
System.out.print("Ingrese el primer operando: ");
double operando1 = scanner.nextDouble();
System.out.print("Ingrese el segundo operando: ");
double operando2 = scanner.nextDouble();
OperacionMatematica operacion = null;
switch (opcion) {
case 1:
operacion = new Suma(operando1, operando2);
break;
case 2:
operacion = new Resta(operando1, operando2);
break;
case 3:
operacion = new Multiplicacion(operando1, operando2);
break;
case 4:
operacion = new Division(operando1, operando2);
break;
default:
break;
}
System.out.println(operacion.ejecutar());
}
}
}