Advertisement
Guest User

Untitled

a guest
Jan 18th, 2020
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.73 KB | None | 0 0
  1. package banco;
  2.  
  3. import java.util.List;
  4. import java.time.LocalDateTime;
  5.  
  6.  
  7. /**
  8.  * @author zelda
  9.  */
  10. public class Banco {
  11.  
  12.     public class Cliente {
  13.         private String NIF;
  14.         private String nombre;
  15.         private String apellidos;
  16.         private List<String> telefonos;
  17.         private List<String> direcciones;
  18.        
  19.         public Cliente(String nif, String nombre, String apellidos){
  20.             this.NIF = nif;
  21.             this.nombre = nombre;
  22.             this.apellidos = apellidos;
  23.         }
  24.        
  25.         public String getNIF(){
  26.             return this.NIF;
  27.         }
  28.        
  29.         public void setNIF(String nif){
  30.             if (nif.trim().length() == 9)
  31.                 this.NIF = nif;
  32.         }
  33.        
  34.         public String getNombre(){
  35.             return this.nombre;
  36.         }
  37.        
  38.         public void setNombre(String nombre){
  39.             if (nombre.trim().length() > 0)
  40.                 this.nombre = nombre.trim();
  41.         }
  42.        
  43.         public String getApellidos(){
  44.             return this.apellidos;
  45.         }
  46.        
  47.         public void setApellidos(String apellidos){
  48.             if (apellidos.trim().length() > 0)
  49.                 this.apellidos = apellidos.trim();
  50.         }
  51.        
  52.         public void añadirTelefono(String telefono){
  53.             if (telefono.trim().matches("\\d{9}"))
  54.                 telefonos.add(telefono.trim());
  55.         }
  56.        
  57.         public void mostrarTelefonos(){
  58.             int longitud = telefonos.size();
  59.             System.out.println("============= Teléfonos del cliente =============");
  60.             if (longitud > 0){
  61.                 for (String numero : telefonos)
  62.                     System.out.println(numero);
  63.             } else
  64.                 System.out.println("No hay números registrados.");
  65.             System.out.println("=================================================");
  66.         }
  67.        
  68.         public void añadirDireccion(String direccion){
  69.             if (direccion.trim().length() > 0)
  70.                 direcciones.add(direccion.trim());
  71.         }
  72.        
  73.         public void mostrarDirecciones(){
  74.             int longitud = direcciones.size();
  75.             System.out.println("============= Direcciones registradas =============");
  76.             if (longitud > 0){
  77.                 for (String direccion : direcciones)
  78.                     System.out.println(direccion);
  79.             } else
  80.                 System.out.println("No hay direcciones registradas.");
  81.             System.out.println("===================================================");
  82.         }
  83.     }
  84.    
  85.     public class Movimiento {
  86.         private CuentaCorriente cuenta_titular;
  87.         private CuentaCorriente cuenta_destinataria;
  88.         private double cuantia;
  89.         private String concepto;
  90.         private LocalDateTime fecha = null;
  91.        
  92.         public Movimiento(CuentaCorriente cuenta, double cantidad){
  93.             this.cuenta_titular = null;
  94.             this.cuenta_destinataria = cuenta;
  95.             this.cuantia = cantidad;
  96.             this.concepto = "Operacion desde el cajero.";
  97.         }
  98.        
  99.         public Movimiento(CuentaCorriente cuentat, CuentaCorriente cuentad, double cantidad, String cooncepto){
  100.            this.cuenta_titular = cuentat;
  101.            this.cuenta_destinataria = cuentad;
  102.            this.cuantia = cantidad;
  103.            this.concepto = concepto;
  104.         }
  105.        
  106.         public CuentaCorriente getCuentaTitular(){
  107.             return this.cuenta_titular;
  108.         }
  109.        
  110.         public CuentaCorriente getCuentaDestinataria(){
  111.             return this.cuenta_destinataria;
  112.         }
  113.        
  114.         public double getCuantia() {
  115.             return this.cuantia;
  116.         }
  117.        
  118.         public String getConcepto(){
  119.             return this.concepto;
  120.         }
  121.        
  122.         public void setConcepto(String concepto){
  123.             this.concepto = concepto;
  124.         }
  125.        
  126.         public LocalDateTime getFecha(){
  127.             return this.fecha;
  128.         }
  129.        
  130.         // Faltaría implementar una transacción en el proceso.
  131.         public void realizar(){
  132.             if (cuenta_titular != null)
  133.                 cuenta_titular.retirar(cuantia);
  134.             cuenta_destinataria.ingresar(cuantia);
  135.             fecha = LocalDateTime.now();
  136.         }
  137.        
  138.         public void cancelar(){
  139.             this.cuenta_titular = null;
  140.             this.cuenta_destinataria = null;
  141.             this.cuantia = 0;
  142.             this.concepto = null;
  143.             this.fecha = null;
  144.         }
  145.     }
  146.        
  147.     public class CuentaCorriente {
  148.         private int ID;
  149.         private Cliente cliente;
  150.         private double saldo;
  151.         private List<Movimiento> historial;
  152.         private String estado = "activa";
  153.        
  154.         public CuentaCorriente(int id, Cliente cliente){
  155.             this.ID = id;
  156.             this.cliente = cliente;
  157.             this.saldo = 0;
  158.         }
  159.        
  160.         public CuentaCorriente(int id, Cliente cliente, double saldo){
  161.             this.ID = id;
  162.             this.cliente = cliente;
  163.             this.saldo = saldo;
  164.         }
  165.        
  166.         public int getID(){
  167.             return this.ID;
  168.         }
  169.        
  170.         public Cliente getCliente(){
  171.             return this.cliente;
  172.         }
  173.        
  174.         public double consultar(){
  175.             return this.saldo;
  176.         }
  177.        
  178.         public String getEstado(){
  179.             return this.estado;
  180.         }
  181.        
  182.         public void ingresar(double cantidad){
  183.             if (cantidad > 0){
  184.                 Movimiento ingreso = new Movimiento(this, cantidad);
  185.                 historial.add(ingreso);
  186.                 this.saldo += cantidad;
  187.             }
  188.         }
  189.        
  190.         public void retirar(double cantidad){
  191.             if (cantidad > 0){
  192.                 if (cantidad > saldo){
  193.                     Movimiento retiro = new Movimiento(this, cantidad);
  194.                     historial.add(retiro);
  195.                     this.saldo -= cantidad;
  196.                 } else
  197.                     System.out.println("Saldo insuficiente.");
  198.             }
  199.         }
  200.        
  201.         public void ultimoMovimientos(){
  202.             int longitud = historial.size();
  203.             System.out.println("============= Últimos movimientos =============");
  204.             if (longitud > 0){
  205.                 int muestras;
  206.                 if (longitud > 10)
  207.                     muestras = 10;
  208.                 else
  209.                     muestras = longitud;
  210.                 List<Movimiento> ultimos = historial.subList(longitud - muestras, longitud);
  211.                 for (Movimiento movimiento : ultimos)
  212.                     System.out.printf("  %-25.25s%-25.25s%-75.75s%-8d%-30s\n",
  213.                                       movimiento.cuenta_titular.cliente.nombre + "" +
  214.                                       movimiento.cuenta_titular.cliente.apellidos,
  215.                                       movimiento.cuenta_destinataria.cliente.nombre + "" +
  216.                                       movimiento.cuenta_destinataria.cliente.apellidos,
  217.                                       movimiento.concepto,
  218.                                       movimiento.cuantia,
  219.                                       movimiento.fecha);
  220.             } else
  221.                 System.out.println("No hay movimientos en la cuenta.");
  222.             System.out.println("===============================================");
  223.         }
  224.        
  225.         public void suspender(){
  226.            this.retirar(saldo);
  227.            this.estado = "inactiva";
  228.         }
  229.     }
  230.      
  231.     /**
  232.      * @param args the command line arguments
  233.      */
  234.     public static void main(String[] args) {
  235.         // TODO code application logic here
  236.     }  
  237. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement