Aprenda a usar ArrayList para esta sencilla y práctica aplicación.

Un sistema de estacionamiento es un método conveniente, seguro y ambientalmente sostenible que resuelve una gran parte del problema de la gestión del tráfico. Un sistema de estacionamiento bien diseñado puede reducir el flujo de tráfico, utilizar el espacio de manera efectiva, generar ingresos y brindar una experiencia de usuario mejorada.

Aprenda cómo puede usar Java para construir un sistema de estacionamiento simple que luego puede diseñar e integrar con una base de datos, agregar validaciones y desarrollar una interfaz gráfica de usuario para usar en la vida real.

Cómo construir un sistema de estacionamiento usando Java

Puede encontrar el código fuente para construir un sistema de estacionamiento de vehículos usando Java en este repositorio GitHub.

Para este proyecto, utilizará ArrayList, que es una matriz redimensionable de propósito general. Puede acceder a los elementos mediante un índice, realizar operaciones CRUD y más.

instagram viewer
Para usar ArrayList, debe importar la clase ArrayList de la biblioteca estándar de Java. Del mismo modo, para operaciones de entrada-salida, importar la clase Scanner. Definir una clase pública, VehículoEstacionamientoSistema, para servir como la clase principal.

Defina tres variables estáticas: ranuras totales, ranuras disponibles, y autos estacionados. totalSlots representa el número total de espacios de estacionamiento, mientras que availableSlots realiza un seguimiento de cuántos quedan libres. parkedCars es una ArrayList que almacena los números de placa de los autos estacionados actualmente.

Definir el principal() y crea un objeto de la clase Scanner. Solicite al usuario que ingrese el número total de espacios de estacionamiento y guárdelo en totalSlots. Inicialmente, las ranuras disponibles equivalen a las ranuras totales, así que inicialice las ranuras disponibles con el mismo valor que las ranuras totales.

importar java.util. Lista de arreglo;
importar java.util. Escáner;

públicoclaseVehículoEstacionamientoSistema{

estáticoEn t ranuras totales, ranuras disponibles;
estático Lista de arreglo autos estacionados = nuevo Lista de arreglo();

públicoestáticovacíoprincipal(Cadena[] argumentos){

Escáner sc = nuevo Escáner (System.in);
Sistema.fuera.println("Ingrese el número total de espacios de estacionamiento en la instalación:");
ranurastotales = sc.nextInt();
ranuras disponibles = ranuras totales;

Usar un ciclo while que corre indefinidamente. Pregúntele al usuario si quiere estacionar un automóvil, retirarlo, ver los automóviles estacionados o salir del programa. Dependiendo de la elección, llame al método correspondiente. Si el usuario desea finalizar el programa, utilice Sistema.salir (0) para terminar inmediatamente.

mientras (verdadero) {
Sistema.fuera.println("\n ¿Qué te gustaría hacer?");
Sistema.fuera.println("1. Aparcar un coche");
Sistema.fuera.println("2. Quitar un coche");
Sistema.fuera.println("3. Ver autos estacionados");
Sistema.fuera.println("4. Salida");
En t elección = sc.nextInt();

cambiar (elección) {
caso1:
aparcamiento();
romper;
caso2:
quitarCoche();
romper;
caso3:
verCochesEstacionados();
romper;
caso4:
Sistema.salir(0);
por defecto:
Sistema.fuera.println("Elección no válida. Inténtalo de nuevo.");
}
}
}

Definir un método estático público, aparcamiento(), sin tipo de retorno. Si no hay espacios disponibles, informe al usuario y regrese. De lo contrario, solicite al usuario que ingrese el número de placa de su automóvil y use el agregar() método para insertarlo en el ArrayList. Disminuya el número de espacios disponibles en uno y muestre que el programa estacionó el automóvil junto con el número actual de espacios disponibles.

públicoestáticovacíoaparcamiento(){
si (ranuras disponibles == 0) {
Sistema.fuera.println("Lo siento, no hay plazas de aparcamiento disponibles".);
devolver;
}

Escáner sc = nuevo Escáner (System.in);
Sistema.fuera.println("Ingrese el número de placa del automóvil:");
String placa de licencia = sc.nextLine();
autosestacionados.add (matrícula);
ranuras disponibles--;
Sistema.fuera.println("El coche se ha aparcado correctamente. Los espacios disponibles actualmente son: " + Slots disponibles);
}

Definir un método, removeCar(). Si coinciden los valores de plazas disponibles y total, mostrar que no hay coches aparcados y volver. De lo contrario, solicite al usuario el número de placa de su automóvil. Verifique si el número de matrícula ingresado por el usuario está presente en ArrayList usando contiene().

Si tiene éxito, use el eliminar() para sacarlo de ArrayList e incrementar las ranuras disponibles en uno. Muestra el mensaje de que el programa ha eliminado el coche junto con el número actual de plazas disponibles. En caso de que no encuentre el número de placa, indique que no hay tal automóvil estacionado en las instalaciones.

públicoestáticovacíoeliminarCoche(){
si (ranuras disponibles == ranuras totales) {
Sistema.fuera.println("No hay autos estacionados".);
devolver;
}

Escáner sc = nuevo Escáner (System.in);
Sistema.fuera.println("Ingrese el número de placa del automóvil que desea retirar:");
String placa de licencia = sc.nextLine();

si (autosestacionados.contiene (matrícula)) {
coches aparcados.remove (matrícula);
ranuras disponibles++;
Sistema.fuera.println("Coche eliminado con éxito. Los espacios disponibles actualmente son: " + Slots disponibles);
} demás {
Sistema.fuera.println("El coche no está aparcado aquí".);
}
}

Definir un método, verCochesEstacionados(). Similar a lo anterior, verifique si no hay autos estacionados. De lo contrario, muestre los números de matrícula de los automóviles estacionados. Para hacer esto, use un bucle for-each para iterar sobre los elementos en ArrayList y mostrarlos uno por uno.

públicoestáticovacíoverEstacionadoCoches(){
si (ranuras disponibles == ranuras totales) {
Sistema.fuera.println("No hay autos estacionados".);
devolver;
}

Sistema.fuera.println("Autos estacionados:");

para (String Matrícula: autos estacionados) {
System.out.println (matrícula);
}
}
}

Póngalo todo junto y su sistema de estacionamiento está listo para usar.

Ejemplo de salida del programa de estacionamiento

Al ejecutar el código anterior, el programa solicita ingresar el número total de espacios de estacionamiento de la instalación. Al ingresar 5 da la opción de estacionar un auto, retirarlo, ver todos los autos estacionados y salir del programa. Al elegir la opción 1, pide introducir la matrícula del coche y disminuye una plaza disponible aparcando.

Al elegir la opción 3, puede visualizar la matrícula del coche que acaba de aparcar. Al elegir la opción 2 e introducir la matrícula, el programa elimina el coche y las plazas disponibles aumentan en una.

Otros sistemas de gestión que puede construir

Al crear sistemas de administración en Java, adquiere experiencia en varios aspectos del desarrollo de software, la administración de bases de datos, la seguridad y la integración de sistemas. Algunos de los proyectos que puede explorar son el sistema de gestión de inventario que lo ayuda a comprender el modelado de datos, las operaciones CRUD, el seguimiento de existencias y el cumplimiento de pedidos.

Puede crear un sistema de administración de bibliotecas para aprender la organización de datos y la autenticación de usuarios. Los sistemas de administración de empleados o estudiantes son muy parecidos y pueden ayudarlo a aprender el control de acceso basado en roles y el seguimiento de la asistencia.