language from codeThu, 28 Nov 2024

Una empresa de estacionamientos desarrollará un Sistema de Gestión de Vehículos (SGV) en Java, empleando principios de Programación Orientada a Objetos (POO) para optimizar la asignación de espacios y el control de ingresos/salidas. El SGV gestionará vehículos de diferentes tipos, espacios de estacionamiento y tarifas, permitiendo registrar ingresos, asignar espacios, calcular costos y generar reportes. Entidades Principales Vehículo: Clase base con atributos como placa, marca y hora de entrada. Subclases como Automóvil, Motocicleta y Camión especializan tamaño y tarifas. EspacioEstacionamiento: Representa un espacio físico con ID, disponibilidad y tipo (pequeño, mediano, grande). Estacionamiento: Clase principal que administra los espacios, registra vehículos y calcula tarifas con base en el tiempo de estadía y el tipo de vehículo. Características del Sistema Se implementará encapsulamiento mediante métodos get y set para controlar el acceso a atributos. La relación entre Vehículo y EspacioEstacionamiento será de agregación, permitiendo que un espacio sea asignado a diferentes vehículos en distintos momentos. Además, la relación entre Estacionamiento y las listas de vehículos y espacios será de composición. Para mejorar la reutilización de código, se desarrollará una interfaz Gestionable, definiendo métodos clave como registrarIngreso, registrarSalida y asignarEspacio. Una clase abstracta Tarifa calculará los costos según el tipo de vehículo y el tiempo transcurrido. El sistema aplicará polimorfismo para operaciones como el cálculo de tarifas diferenciado por vehículo, y los métodos emplearán pre y postcondiciones, asegurando que un espacio esté disponible antes de asignarlo. Manejo de Excepciones El sistema incluirá manejo de errores, con excepciones específicas como: EspacioOcupadoException: Si un espacio ya está asignado. PlacaDuplicadaException: Si se intenta registrar un vehículo con una placa existente sin haber registrado su salida. Los desarrolladores usarán asserts para validar reglas, como tiempos positivos de estadía o compatibilidad entre vehículo y espacio asignado. Requisitos y Restricciones El SGV soportará hasta 100 espacios clasificados por tamaño, asegurando que los tipos de espacio sean compatibles con los vehículos (e.g., pequeños para motocicletas). Las tarifas mínimas serán de $10 MXN/h para automóviles, $5 MXN/h para motocicletas y $20 MXN/h para camiones. Los horarios de entrada y salida deberán estar en formato de 24 horas y ser validados. Pruebas y Resultados El sistema se probará con cinco escenarios representativos, como registrar ingresos, salidas, calcular tarifas y manejar excepciones. Los reportes generarán información sobre vehículos estacionados, espacios disponibles y estadísticas de ingresos diarios. Ejemplos de interacción incluyen: Registrar un automóvil (placa “ABC123”) en un espacio disponible y calcular su tarifa al salir. Manejar excepciones al intentar asignar un espacio ocupado o duplicar una placa. Generar reportes precisos de ocupación y ganancias. En resumen, el SGV optimizará la gestión de estacionamientos mediante un diseño robusto y seguro, promoviendo la reutilización de código y garantizando operaciones eficientes y precisas.

Please keep input under 1000 characters

Questions about programming?Chat with your personal AI assistant