Ir al contenido principal

Calculadora con listas y pilas en Java

Holas¡¡¡ espero que todo bien. En esta ocasión les comparto un proyecto que realice para la universidad. Se trata de una calculadora hecha en la estructura de listas con apoyo de pilas. El funcionamiento es simple: se introduce los datos y finalizado el ingreso de datos retorna un resultado, espero les sirva :).

La calculadora a ser implementada debe ser de expresiones aritméticas que evalué suma, resta, multiplicación y división de la forma:
4+5-(8+65-23)+90
Al ser un dato compuesto se llegó a la conclusión de que los datos deben ser tratados como datos tipo String. De esta forma los datos pueden ser tratados de la misma manera. Para realizar las siguientes comparaciones.
  •           Es necesario componer los números como unidades, decenas, centenas
  •           Es necesario comparar si son llaves o signos aritméticos de evaluación
  •           Es necesario comparar si son operaciones secundarias (dentro de los parentesis) o primarias
  •           Es necesario completar números en caso de punto inicial, signo negativo inicial o luego de la apertura de un paréntesis.
  • -          Es necesario verificar que no exista espacios vacíos entre los números y/o operaciones.

Para realizar las operaciones lo primero que se hizo fue concatenar los números para su tratamiento como datos tipo float.
La segunda etapa se da en la resolución de las operaciones dentro de los paréntesis
La tercera etapa fue insertar en una pila los resultados de las operaciones realizadas dentro de los paréntesis
Finalmente se realiza las operaciones ya sin paréntesis en la lista.
Ingreso de datos:
34+(5+9)-99
Se convierte en cadena el dato, verificando la presencia de datos vacíos, 0 y puntos iniciales

3
4
+
(5
+
9
)
-
9
9

Luego se concatena los datos y se los agrega a la lista

34
+
(5
+
9
)
-
99

Se almacena en una pila las operaciones dentro del paréntesis

5
+
9

En una variable se almacena el resultado de la operación dentro la pila

14

Se agrega este resultado a la lista

34
+
14
-
99

Si no existe más paréntesis se hace la operación final

34
+
14
-
99

Resultado: 147

Las operaciones admitidas son suma resta multiplicación y división.

Para la Interfaz gráfica se capturo el dato jtextField introducido por la ventana de la interfaz posteriormente este dato es convertido en cadena. La cadena, luego de ser oprimido el botón “=” es enviada a la lista y esta realiza la operación previamente validada mediante el método valida existente en la clase lista.
 Enlace de descarga: https://mega.nz/#!8IlG1bJT

Código de cifrado: !Wx03vLoqnJX_YkuPFZwaWSs-SeFuqndTSvTh3g2qUT4

Comentarios

Publicar un comentario