y una imagen de clases que utilize:
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 :)
0 Comments