Advertisement
MatiasDicro

Guia Nº2 Machine d'argent

Apr 3rd, 2020
550
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.30 KB | None | 0 0
  1. //Clase Main
  2. package maipackete;
  3.  
  4. import java.io.IOException;
  5.  
  6. public class Tp2 {
  7.  
  8.     public static void main(String[] args) throws IOException {
  9.         Maquina original = new Maquina();
  10.         while (true) {
  11.             original.iniciarMaquina();
  12.         }
  13.  
  14.     }
  15.  
  16. }
  17. // Clase Cuenta
  18. /*Aunque no lo pedían, agregue un sistema de ID de cuenta y un sistema de claves. Aunque el sistema de ID debería implementarse pensando en el total de cuentas y no crearse a partir de un numero random*/
  19.  
  20. package maipackete;
  21. import java.lang.Math;
  22. public class Cuenta {
  23.    
  24.    
  25.     private double saldo;
  26.     private int idCuenta;
  27.     private int clave;
  28.     public boolean esIgualClave(int numero) {
  29.         if (clave == numero) {
  30.             return true;
  31.         }
  32.         return false;
  33.     }
  34.     public Cuenta(int saldoInic) {
  35.         saldo = saldoInic;
  36.         idCuenta = (int)Math.floor(Math.random()*1000000);
  37.         System.out.println("Su numero de cuenta es: "+idCuenta);
  38.         obtenerClave();
  39.     }
  40.    
  41.     public Cuenta() {
  42.         idCuenta = (int)Math.floor(Math.random()*1000000);
  43.         System.out.println("Su numero de cuenta es: "+idCuenta);
  44.         saldo = 0;
  45.         obtenerClave();
  46.     }
  47.     private void obtenerClave() {
  48.         System.out.println("Ingrese una clave de 4 dígitos");
  49.         clave = Maquina.entrada.nextInt();
  50.     }
  51.     public boolean esIgual(int numero) {
  52.         if (idCuenta == numero) {
  53.             return true;
  54.         }
  55.         else
  56.         {
  57.             return false;
  58.         }
  59.     }
  60.     public void ingresare(float c) {
  61.         saldo += c;
  62.     }
  63.     public void extraere(float c) {
  64.         if (c > saldo) {
  65.             Maquina.error(1);
  66.         }
  67.         else {
  68.             saldo -= c;
  69.         }
  70.     }
  71.     public float getSaldo() {
  72.         return (float) saldo;
  73.     }
  74. }
  75.  
  76.  
  77. /*Clase Maquina, aqui están todas las cuentas guardadas en un ArrayList que se maneja de forma estatica (osea, que existe en todas las maquinas ) */
  78.  
  79.  
  80. package maipackete;
  81. import java.io.IOException;
  82. import java.util.Scanner;
  83. import java.util.ArrayList;
  84. public class Maquina {
  85.     public static Scanner entrada = new Scanner (System.in);
  86.     public static ArrayList<Cuenta> cuentas = new ArrayList<Cuenta>();
  87.    
  88.     public static void error(int i) {
  89.         switch (i) {
  90.         case 1:
  91.             System.out.println("Error, saldo insuficiente");
  92.             break;
  93.         case 2:
  94.             System.out.println("Error, numero de cuenta no existente");
  95.             break;
  96.         case 3:
  97.             System.out.println("Error, clave ingresada no es correcta");
  98.             break;
  99.         }  
  100.     }
  101.     public void iniciarMaquina() throws IOException {
  102.         System.out.println("Presiona una tecla para iniciar");
  103.         if (System.in.read() != -1) {
  104.             Maquina.menu();
  105.             Maquina.seleccionarOpcion();
  106.         }
  107.     }
  108.     private static void menu () {
  109.         System.out.println("Seleccione una opcion con los numeros y luego presione ENTER");
  110.         System.out.println("1. Crear cuenta vacia");
  111.         System.out.println("2. Crear cuenta saldo inicial");
  112.         System.out.println("3. Ingresar diner");
  113.         System.out.println("4. Sacar dinero");
  114.         System.out.println("5. Ver saldo");
  115.         System.out.println("6. Salir");
  116.     }
  117.     private static int buscarCuenta (int NdeCuenta) {
  118.         for (int i = 0; i<cuentas.size();i++) {
  119.             if (cuentas.get(i).esIgual(NdeCuenta)) {
  120.                 return i;
  121.             }
  122.         }
  123.         return -1;
  124.     }
  125.     public static void seleccionarOpcion () {
  126.         int opc = entrada.nextInt();
  127.        
  128.         switch (opc) {
  129.         case 1:
  130.             Maquina.cuentas.add(new Cuenta());
  131.             break;
  132.         case 2:
  133.             System.out.println("Ingrese el saldo inicial");
  134.             Maquina.cuentas.add(new Cuenta(entrada.nextInt()));
  135.             break;
  136.         case 3:
  137.             System.out.println("Ingrese su cuenta");
  138.             int aux = buscarCuenta(entrada.nextInt());
  139.             System.out.println("Ingrese su clave");
  140.             cuentas.get(aux).esIgualClave(entrada.nextInt());
  141.             System.out.println("Ingrese su saldo inicial");
  142.             cuentas.get(aux).ingresare(entrada.nextFloat());
  143.             break;
  144.         case 4:
  145.             System.out.println("Ingrese su cuenta");
  146.             int aux1 = buscarCuenta(entrada.nextInt());
  147.             System.out.println("Ingrese su clave");
  148.             cuentas.get(aux1).esIgualClave(entrada.nextInt());
  149.             System.out.println("Ingrese saldo a retirar");
  150.             cuentas.get(aux1).extraere(entrada.nextFloat());
  151.             break;
  152.         case 5:
  153.             System.out.println("Ingrese su cuenta");
  154.             int aux11 = buscarCuenta(entrada.nextInt());
  155.             System.out.println("Ingrese su clave");
  156.             cuentas.get(aux11).esIgualClave(entrada.nextInt());
  157.             System.out.println("Ingrese su saldo inicial");
  158.             System.out.println("Saldo " +cuentas.get(aux11).getSaldo());
  159.             break;
  160.         default:
  161.            
  162.             break;
  163.         }
  164.     }
  165.    
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement