Parqueadero de carros codigo fuente con vectores

Technology

Parqueadero de carros codigo fuente con vectores

sistema de parqueadero desarrollado en java utilizando vectores en la cual se utiliza un menu, puede parquear un carro,buscar un carro,sacar un carro y salir del menu se registraran las placas del auto , el modelo y marca . Imagen de la interfaz:

parqueadero desarrollado en java

y una imagen de clases que utilize:

parqueadero desarrollado en java codigo y clases

primero creamos la clase Carro donde pondremos el siguiente codigo:







public class Carro 
{
    private String placa;
    private String marca;
    private int modelo;
    
    /**
     *  Constructor de objetos Carro
     * @param   placa   placa que identifica cada carro
     * @param   marca   la marca del carro, ej: Renault Symbol, Mazda 2, etc.
     * @param   modelo  el modelo o año del carro, por ejemplo: 1998, 2011, etc.
     */
    public Carro(String placa, String marca, int modelo) 
    {
        this.placa = placa;
        this.marca = marca;
        this.modelo = modelo;
    }
    
    /**
     * Método para consultar la placa
     * @return  la placa del carro
     */
    public String getPlaca() 
    {
        return placa;
    }
    /**
     * Método para consultar la marca
     * @return  la marca del carro
     */
    public String getMarca() 
    {
        return marca;
    }

     /**
     * Método para consultar el modelo
     * @return  el modelo (año) del carro
     */
    public int getModelo() 
    {
        return modelo;
    }   

}  


luego seguimos con la clase Parqueadero donde pondremos el siguiente codigo:



/**
 * Clase en Java para que representa un parqueadero de carros.
*http://javayotros.blogspot.com/
 * Se pueden adicionar y retirar carros del Parqueadero,
 * y se puede consultar si está un carro (por la placa) y cuántos puestos
 * hay disponibles.
 * @author Sandra V. Hurtado
 * @version 16-abr-2012
 */
public class Parqueadero 
{
 
 private Carro[] carros = new Carro[20];

 /**
  * Método para parquear un carro.
  * Se busca una posición disponible y si se encuentra se guarda 
  * el carro y se retorna true, indicando que se pudo parquear. 
  * Si no se encuentra ninguna posición disponible se retorna false,
  * indicado que no se pudo parquear el carro.
  * @param carro el carro que se desea parquear
  * @return  true si se pudo parquear o false en caso contrario
  */
 public boolean parquearCarro(Carro carro) 
 {
  for (int i = 0; i < carros.length; i++) 
  {
   if (carros[i] == null)
   {
    carros[i] = carro;
    return true;
   }
  }
  return false;
 }
 

 /**http://javayotros.blogspot.com/
  * Método para sacar un carro del parqueadero, dada su placa.
  * Si se encuentra el carro se retira del parqueadero y 
  * se retorna true, indicando que si se pudo sacar el carro.
  * Si  no se encuentra el carro, se retorna false.
  * @param placa la placa del carro que se desea sacar del paqueadero
  * @return  true si se pudo sacar el carro o false en caso contrario
  */
 public boolean sacarCarro(String placa)
 {
  for (int i = 0; i < carros.length; i++) 
  {
   if (carros[i] != null)
   {
    if (carros[i].getPlaca().equals(placa))
    {
     carros[i] = null;
     return true;
    }
   }
  }
  return false;
 }
 
 
 /**
  * Método para buscar un carro en el parqueadero, dada la placa.
  * @param placa la placa del carro que se desea buscar
  * @return  el carro (si se encuentra) o null si no se encuentra
  */
 public Carro buscarCarro(String placa)
 {
  for (int i = 0; i < carros.length; i++) 
  {
   if (carros[i] != null)
   {
    if (carros[i].getPlaca().equals(placa))
    {
     return carros[i];
    }
   }
  }
  return null;
 }

} 





luego creamos una nueva clase llamada ControlParqueadero donde se encargara del control de todo

import javax.swing.*;
/**
 * Clase para hacer la gestión de un parqueadero a través de un menú básico de opciones
 * @author Sandra V. Hurtado
 * @version 8-nov-2012
 */
public class ControlParqueadero 
{
    
    Parqueadero parquea = new Parqueadero();

    /**
     * Método para parquear un carro:
     * Primero se verifica que existan puestos disponibles. Si hay puestos 
     * se piden los datos del carro y se parquea.
     * En caso de no tener puestos disponibles se muestra un mensaje indicando esto.
     */
    public void parquearCarro() 
    {
            String placa = JOptionPane.showInputDialog("Placa del carro:");
            // Verifica que el carro ya no esté parqueadao
            if (parquea.buscarCarro(placa) == null) 
            {
                String marca = JOptionPane.showInputDialog("Marca del carro:");
                String modeloCadena = JOptionPane.showInputDialog("Modelo del carro:");
                int modelo = Integer.parseInt(modeloCadena);
                Carro nuevo = new Carro(placa, marca, modelo);
                boolean pudoParquear = parquea.parquearCarro(nuevo);
                if (pudoParquear) 
                {
                   JOptionPane.showMessageDialog(null,"El carro fue parqueado exitosamente.");
                }
                else 
                {
                    JOptionPane.showMessageDialog(null,"No fue posible parquear el carro. Intente más tarde");
                }
            }
            else 
            {
                JOptionPane.showMessageDialog(null,"Ya hay un carro parqueado con esa placa.");
            }
    }
    
    /**
     * Método que permite buscar un carro en el parqueadero y mostrar sus datos.
     * Para buscar el carro es necesario solicitar al usuario la placa.
     * Si el carro no se encuentra se debe mostrar un mensaje indicando esto.
     */
    public void buscarCarro() {
        String placa = JOptionPane.showInputDialog("Placa del carro:");
        Carro carro = parquea.buscarCarro(placa);
        if (carro == null) 
        {
            JOptionPane.showMessageDialog(null,"No se encuentra parqueado un carro con esa placa");
        }
        else
        {
             JOptionPane.showMessageDialog(null,"Los datos del carro son:  \n" +
                                    "Placa: "+ carro.getPlaca() + "\n"+
                                    "Marca: "+ carro.getMarca());
        }
    }

    /**
     * Método que permite sacar un carro del parqueadero.
     * Para sacar el carro se debe pedir la placa y luego se debe mostrar un mensaje
     * indicando si fue posible sacar el carro o si no se encontraba en el parqueadero. 
     */
    public void sacarCarro() {
        String placa = JOptionPane.showInputDialog("Placa del carro:");
        boolean pudoSacar = parquea.sacarCarro(placa);
        if (pudoSacar) 
        {
            JOptionPane.showMessageDialog(null,"El carro se retiró del parqueadero exitosamente");
        }
        else 
        {
            JOptionPane.showMessageDialog(null,"No se encuentra parqueado un carro con esa placa");
        }
    }

    /**
     * Método que muestra el menú del parqueadero al usuario, para que seleccione
     * lo que desea realizar: parquear un carro, buscar un carro o sacar un carro.
     */
    public void menu() {
        
        int opcion=-1;
        do {
            // Menú con las opciones disponibles
            String valorSeleccionado = 
            JOptionPane.showInputDialog(" ---- MENU PARQUEADERO ---  \n" +
                        "1.Parquear un carro    \n" +
                        "2.Buscar un carro  \n" +
                        "3.Sacar un carro   \n" +
                        "0.Terminar     \n\n" +
                        "Opción seleccionada: ");
            try 
            {
                opcion = Integer.parseInt(valorSeleccionado);
                switch (opcion){
                    // Opcion 1: Parquear un carro
                    case 1: parquearCarro();
                            break;
                    
                    // Opcion 2: Buscar un carro y mostrar sus datos 
                    case 2: buscarCarro();
                            break;
                    
                    // Opcion 3: Sacar un carro del parqueadero
                    case 3: sacarCarro();
                            break;
    
                    case 0: break;
                    
                    default: JOptionPane.showMessageDialog(null,"Opción no disponible");    
                }
            }
            catch (NumberFormatException errorIngreso)
            {
                JOptionPane.showMessageDialog(null,"Dato ingresado incorrecto. Debe ser numérico");   
            }
        }
        while (opcion != 0);
        JOptionPane.showMessageDialog(null," - Terminación exitosa -");

    }

}  //Fin de la clase ControlParqueadero


por ultimo creamos la clase principal donde va a tener el main para llamar a ControlParqueadero esta clase yo la llame Taller alli pondremos el siguiente codigo:





/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


/**
 *
 * @author andres8822
 */
public class Taller {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        ControlParqueadero c= new ControlParqueadero ();
        c.menu();
    }
}



finalmente parquear y sacar nuestros carros :)

Post a Comment

0 Comments