rsvaco

prg pract 4 clase banco no terminada

Apr 28th, 2017
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.77 KB | None | 0 0
  1. import java.util.Locale;
  2. import java.util.InputMismatchException;
  3. import java.util.Scanner;
  4. /**
  5.  * Clase Banco para representar un conjunto de cuentas.
  6.  * @author PRG
  7.  * @version Curso 2016/17
  8.  */
  9. public class Banco {    
  10.     /** Número máximo de cuentas. */
  11.     public static final int MAX_CUENTAS = 100;
  12.     /** Array de objetos Cuenta. */
  13.     private Cuenta[] cuentas;
  14.     /** Número actual de cuentas
  15.      * y primer índice disponible en el array cuentas. */
  16.     private int numCuentas;
  17.  
  18.     /**
  19.      * Crea un banco sin cuentas
  20.      * (puede tener un máximo de MAX_CUENTAS cuentas).
  21.      */
  22.     public Banco() {
  23.         this.cuentas = new Cuenta[MAX_CUENTAS];
  24.         this.numCuentas = 0;
  25.     }
  26.  
  27.     /**
  28.      * Devuelve el número actual de cuentas.
  29.      * @return int, número actual de cuentas.
  30.      */
  31.     public int getNumCuentas() { return numCuentas; }
  32.    
  33.     /**
  34.      * Permite añadir o insertar la Cuenta c al banco.
  35.      * Si el banco está completo,
  36.      * duplica el número de cuentas que pueden haber en el banco.
  37.      * @param c Cuenta a añadir.
  38.      */
  39.     public void insertar(Cuenta c) {
  40.         if (numCuentas >= cuentas.length) { duplica(); }
  41.         cuentas[numCuentas++] = c;
  42.     }
  43.    
  44.     /**
  45.      * Duplica el tamaño del array cuentas.
  46.      */
  47.     private void duplica() {
  48.         Cuenta[] aux = new Cuenta[2 * cuentas.length];
  49.         for (int i = 0; i < cuentas.length; i++) { aux[i] = cuentas[i]; }
  50.         cuentas = aux;
  51.     }
  52.  
  53.     /**
  54.      * Devuelve la cuenta con número de cuenta n.
  55.      * Si tal cuenta no existe, devuelve null.
  56.      * @param n int que indica el número de cuenta.
  57.      * @return Cuenta, la cuenta resultado.
  58.      */
  59.     public Cuenta getCuenta(int n) {
  60.         int i = 0;
  61.         while (i < numCuentas && cuentas[i].getNumCuenta() != n) { i++; }
  62.         if (i < numCuentas) { return cuentas[i]; }
  63.         else { return null; }
  64.     }
  65.  
  66.     /**
  67.      * Devuelve una String con toda la información del banco.
  68.      * El formato es una cuenta por línea.
  69.      * @return String.
  70.      */
  71.     public String toString() {
  72.         if (numCuentas == 0) { return "No hay cuentas en el banco"; }
  73.         else {
  74.             String res = "";
  75.             for (int i = 0; i < numCuentas; i++) { res += cuentas[i] + "\n"; }
  76.             return res;
  77.         }        
  78.     }
  79.    
  80.     public void cargarFormatoTexto(Scanner f) {
  81.         while(f.hasNext()) {
  82.             try{
  83.                 int numCuenta = f.nextInt();
  84.                 double saldo = f.nextDouble();
  85.                 Cuenta c1 = new Cuenta(numCuenta, saldo);
  86.                 if (this.getCuenta(numCuenta) == null) { this.insertar(c1); }
  87.             }
  88.             catch (InputMismatchException e1) { f.nextLine(); }
  89.         }
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment