Entregable 2: Sistema de Vehículos para una App de Transporte
En este entregable, se pide implementar un sistema de vehículos para una app de transporte en Java utilizando clases abstractas e interfaces. El sistema debe ser capaz de gestionar los siguientes tipos de vehículos:
Automóvil
Motocicleta
Scooter
Camioneta
Para ello, se deben seguir los siguientes pasos:
Crear una clase abstracta
Vehicleque contenga los siguientes métodos abstractos:calculateTripCost(double distance): Este método debe calcular y devolver la tarifa del vehículo.printTicket(): Este método debe devolver una cadena de texto con los datos del vehículo y la tarifa calculada. Es tu decisión si es concrete o abstracto.displayVehicleInfo(): Este método debe mostrar en consola la información del vehículo.Así como los siguientes atributos:
brand: Marca del vehículo.model: Modelo del vehículo.year: Año de fabricación del vehículo.licensePlate: Placa del vehículo.rentalPrice: Precio de renta del vehículo por día.pricePerKm: Precio por kilómetro del vehículo.
Crear una interfaz
Rentablecon el siguiente método:rentVehicle(int days): Este método debe calcular y devolver el costo de renta del vehículo por los días especificados.
Crear una clase concreta para cada uno de los tipos de vehículos mencionados anteriormente que herede de la clase
Vehiclee implemente los métodoscalculateTripCost,printTicketydisplayVehicleInfosegún corresponda.La clase
Automobiledebe tener un atributo adicionalfuelConsumptionque indique el consumo de combustible del automóvil en kilómetros por litro. Así como una función adicionalcalculateFuelCost(double distance)que calcule el costo de combustible para un viaje de la distancia especificada.La clase
Motorcycledebe tener un atributo adicionalengineDisplacementque indique la cilindrada del motor de la motocicleta en centímetros cúbicos. Así como una función adicionalcalculateInsuranceCost()que calcule el costo del seguro de la motocicleta.La clase
Scooterdebe tener un atributo adicionalmaxSpeedque indique la velocidad máxima de la scooter en kilómetros por hora. Así como una función adicionalcalculateHelmetCost(int helmets)que calcule el costo de los cascos para el número especificado.La clase
Vandebe tener un atributo adicionalmaxLoadque indique la carga máxima que puede transportar la camioneta en kilogramos. Así como una función adicionalcalculateLoadCost(double load)que calcule el costo de la carga para el peso especificado.
Implementar la interfaz
Rentableen las clasesAutomobile,Motorcycle,ScooteryVan.Crear una clase
TransportAppque contenga un arreglo dinámico de vehículos.Define las funciones que cubrán los siguientes requerimientos:
Agregar un vehículo al arreglo.
Mostrar la información de todos los vehículos.
Calcular la tarifa de un viaje para un vehículo específico.
Calcular el costo de renta de un vehículo por los días especificados.
Calcular el costo de combustible de un automóvil para un viaje de la distancia especificada.
Calcular el costo del seguro de una motocicleta.
Calcular el costo de los cascos para una scooter.
Calcular el costo de la carga para una camioneta.
Mostrar el ticket con los datos del vehículo y la tarifa calculada.
Realizar pruebas unitarias para verificar el correcto funcionamiento de las clases implementadas.
Documentar el código y explicar el funcionamiento de las clases y métodos implementados.
Requisitos
Utilizar clases abstractas para definir la clase
Vehicley las clases concretas de los vehículos.Utilizar interfaces para definir la interfaz
Rentable.Utilizar arreglos dinámicos para almacenar los vehículos en la clase
TransportApp.Realizar pruebas unitarias para verificar el correcto funcionamiento de las clases implementadas.
Documentar el código y explicar el funcionamiento de las clases y métodos implementados.
Comprimir y subir el proyecto a la plataforma de acuerdo a las indicaciones del profesor.
Criterios de evaluación
Criterio | Descripción | Puntaje |
|---|---|---|
Portada | Contiene los datos del equipo. | 5% |
Documentación | Contiene la documentación de las clases y tipos enumerados implementados. | 5% |
Funcionalidad | El sistema de vehículos realiza los cálculos de tarifa y renta de forma correcta. | 40% |
Interfaz | El sistema de vehículos permite agregar vehículos, mostrar información y calcular tarifas y rentas. | 20% |
Pruebas | Se realizan pruebas unitarias para verificar el correcto funcionamiento de las clases implementadas. | 30% |
Total | 100% |
Fecha de entrega
Viernes 28 de marzo de 2025 a las 23:59 hrs.