You are on page 1of 6

MAQUINA DE ESTADO CAJERO AUTOMATICO

Leidy Johanna Fonseca Bernal


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.

You might also like