Karen Lorena Herrera Infante Sindy Paola Contreras Garzon Christian German Alonso segura
RESUMEN Un cajero automático consta de un
sensor que reconoce las diferentes realizar boceto de máquina de estado en denominaciones o documentos que papel maneja la máquina. realizar la debida programación de la Existen cajeros que funcionan máquina de estado de un cajero automático únicamente como dispensadores de dinero y otros de funciones completas
INTRODUCCION MAQUINA DE ESTADO CAJERO
Realiza una máquina de estado donde se AUTOMATICO evidencie los procesos que realiza un un cajero automático debe controlar las cajero automático en cada transacción, transacciones para poder mantener la también se genera la debida programación seguridad y consistencia de dicha de la máquina de estado de un cajero información, el cajero debe estar en automático. capacidad de corregir cualquier error generado, pudiendo restablecer la transacción al momento inicial o en • Objetivos caso contrario cancelarla la El objetivo es demostrar cuales son los transacción sin generar afectación en la estados que presenta un cajero cuenta o en el dinero. automático al realizar una transacción 3. Específicos PROBLEMATICA: Realizar máquina de estado con los procesos que realiza el cajero se evidencia que para que cada uno de los cajeros funcionen de manera Generar código en java para poder correcta deben cumplir con unos simular los estados por los que pasa el estados mínimos para que no se genere cajero automático ningún error. Justificación • CODIGO • package maquina_estado; • package maquina_estado; • import java.util.Scanner; • import java.util.function.Consumer; • public class Maquina_estado { • static Scanner scanner = new Scanner(System.in); • static int select = -1; • static int tarj = -1; • static int total = 200000, num2 = 0; • public static void main(String[] args) { • Scanner teclado= new Scanner(System.in); • int login=0; • int pass=0; • int intentos=1; • int maximo=3; • int tarjeta=0; • while(tarj != 0){ • try{ • System.out.println("Elige alguna opción:\n1. Insertar la tarjeta \n"); • select = Integer.parseInt(scanner.nextLine()); • switch(select){ • case 1: • System.out.println("Se inserto la tarjeta"); • select = 1; • while((pass!=1234)&&(intentos<maximo)){ • System.out.print("Introduzca su clave:"); • pass=teclado.nextInt(); • if(intentos==3){ • System.out.println("Acceso denegado.."); • intentos=intentos-maximo; • } • intentos++; • } • Maquina_estado estado=new Maquina_estado(); • estado.cambioEstado(); • break; • default: • System.out.println("Número no reconocido");break; • } • System.out.println("\n"); • • }catch(NumberFormatException e){ • System.out.println("Uoop! Error!"); • } • } • } • private enum estados{DETENIDO, CONSULTA, RETIRO, CANCELACION, FINALIZA}; • private estados estadoActual = estados.DETENIDO; • public void cambioEstado() { • if(estadoActual==estados.DETENIDO){ • Scanner sn = new Scanner(System.in); • boolean salir = false; • int opcion; • detenido1(); • while(select != 0){ • try{ • System.out.println("Elige alguna opción:\n1. Consultar" +"\n2. Retirar\n" +"3. Salir"); • select = Integer.parseInt(scanner.nextLine()); • switch(select){ • case 1: • pideNumeros(); • consulta1(); • System.out.println("Su Saldo es de $"+ total); • System.out.println • ("\n***************************** Finaliza Transacción *****************************"); • return; • case 2: • pideNumeros(); • retiro1(); • System.out.println("Su Saldo actual es de $"+ total+" - "+5000+" = "+(total-5000)); • System.out.println("Retiro exitoso"); • System.out.println • ("\n***************************** Finaliza Transacción *****************************"); • return; • case 3: • cancelacion1(); • return; • default: • System.out.println("Número no reconocido"); • System.out.println • ("\n***************************** Finaliza Transacción *****************************"); • break; • } • System.out.println("\n"); • • }catch(NumberFormatException e){ • System.out.println("Uoop! Error!"); • } • } • }else if(estadoActual==estados.CONSULTA){ • consulta1(); • } • } • public static void pideNumeros(){ • System.out.println("\n"); • } • protected void detenido1(){ • estadoActual = estados.DETENIDO; • System.out.print("El estado actual es:"+estadoActual+"\n"); • } • protected void consulta1(){ • estadoActual = estados.CONSULTA; • System.out.print("El estado actual es:"+estadoActual+"\n"); • } • protected void retiro1(){ • estadoActual = estados.RETIRO; • System.out.print("El estado actual es:"+estadoActual+"\n"); • } • protected void cancelacion1(){ • estadoActual = estados.CANCELACION; • System.out.print("El estado actual es:"+estadoActual+"\n"); • } •}
• ConclusioneS pasar en algún momento es mucho
más fácil para programadores, • La mayoría de las personas retiran su además para evitar errores al dinero en los cajeros automáticos momento de generar la transacción deben de tener seguridad para realizar todo el proceso, al tener el • Agradecimientos desarrollado todos los estados del cajero se puede garantizar más de • Agradecimientos a nuestro docente 70% de confiabilidad. por la enseñanza y dedicación que nos brinda cada clase para que • al tener claridad en los estados en mejoremos como personas y los cuales el cajero automático debe profesionales. •