Se tiene un parqueo “Don Miguelito”, que posee espacio para 15 vehículos.
El costo por cada
media hora es de Bs.- 2.50. EL parqueo atiende de 6:00 de la mañana a 22:00 horas, por tanto,
los vehículos no pueden ingresar después de las 20:00. El parqueo sólo atiende durante el día
y ningún vehículo pasa la noche, por tanto la recaudación se contabiliza cada día y al llegar
las 22:00, todos los vehículos abandonan el parqueo.
Se tiene la Clase Time, controla un valor entero (dato), que debe ser mayor igual a c ero y menor al límite.
Límite es una variable de tipo entero.
La Clase Hora, hace uso de la clase Time para definir sus atributos hr y min, que corresponde a horas y
minutos; además de tener un atributo hora de tipo String para la visualización de la hora , ej: 10:20.
La Clase Espacio, maneja la placa del vehículo, si está libre el espacio y la hora de ingreso del vehículo al
parqueo.
La Clase Parqueo, tiene el nombre del parqueo, el costo por cada media hora, el total acumulado del día,
un conjunto de espacios y una hora límite de ingreso de vehículos (limiteIn) para no permitir más ingreso
de vehículos a partir de esa hora.
Class Time (10Ptos)
public class Time
{ int dato,limite; // dato es la información que almacena, el límite es el valor que controla que dato sea
menor a él
Time(int lim) // Constructor de la clase que inicializa el dato en cero y el límite con el valor recibido como
parámetro
{}
int getDato()
{ } // Devuelve el valor del dato almacenado
int getLimite() // Devuelve el valor del límite almacenado
{}
boolean setDato(int valor) //Recibe un valor a ser guardado en dato, siempre que este sea mayor igual a
cero y menor al límite
{ } // Devuelve verdad si pudo asignar el valor, caso contrario falso
String getStringTime() //Devuelve como cadena el valor de dato, manteniendo el formado de 2 dígitos; por
ejemplo, si dato=2
{ } // devuelve "02", si dato =14, devuelve "14"
}
Class Hora (15 Ptos)
public class Hora
{ Time hr , min; //Atributos hr y min de tipo Time para manejar la hora
String hora; //Atributo hora tipo String para manejar la hora como cadena, ejemplo: "12:23"
Hora( ) //Constructor de la clase que inicializa el Objeto hr con un límite de 24, y el objeto min con un
límite de 60
{ } // además actualiza el atributo hora el formato cadena ( String).
void updateHora()// actualiza el atributo hora en su formato cadena con los datos de hr y min
{}
int aMinutos()// devuelve en minutos la información de hr y min
{}
boolean menor(Hora out)// recibe como parámetro un objeto tipo Hora (out), y devuelve verdad si el
parámetro recibido
{ }// es mayor a la hora de ingreso del vehículo, caso contrario devuelve falso
int getDiferencia(Hora out) // devuelve la diferencia en minutos entre la hora de salida del vehículo (out) y
la hora de entrada
{}
boolean setHora(int h,int m) // registra la hora de entrada del vehículo con los parámetros recibidos h
para la hora y m para
{ }// los minutos, si pudo registrar correctamente, devuelve verdad, caso contrario falso, además actualiza
el atributo String
//hora
String getHora( ) // Devuelve el atributo hora
{}
Class Espacio (20 Ptos)
public class Espacio
{ Hora in; //Atributo que maneja la hora de ingreso del vehículo
boolean libre;//Atributo que indica si el espacio está libre u ocupado
String placa; // Atributo que guarda la placa del vehículo
Espacio( )// Constructor de la clase que inicializa la placa, el atributo libre y la hora de entrada (in) como
nulo.
{}
boolean verificaHora(Hora out)// recibe un objeto hora de salida, compara con la hora de entrada del
vehículo, si la hora
{ } // de entrada es menor, devuelve verdad, caso contrario falso
void setEspacio(String pl,Hora limiteIn)//Registra la placa del vehículo recibido como parámetro, recibe la
hora límite de ingreso
{ } //peribntido al parqueo, para ser comparada con la hora de ingreso del vehículo, obliga a que la hora de
ingreso sea menor
//a la hora límite
// una vez registrado el vehículo, imprime que el vehículo ingresó
void libera()//Método que libera el espacio, inicializa la placa, el atributo libre y la hora de entrada (in)
como nulo.
{}
void printIn()// Método que imprime la placa y la hora de entrada del vehículo
{ } //Placa: 123yyy
//Hora de ingreso: "12:00"
boolean getLibre()// Devuelve verdad si el espacio está libre, caso contrario falso
{}
String getPlaca() // Devuelve la placa del vehículo
{}
int getDiferencia(Hora out)// Devuelve la diferencia en minutos entre la hora de salida del vehículo (out) y
la hora de entrada
{}
}
Class Parqueo (35 Ptos)
public class Parqueo
{ String nombre; //Nombre del parqueo "Don Miguelito"
Espacio e[]; //Espacios del parqueo, 15
Hora limiteIn; //Hora límite permitida de ingreso de un vehículo (20:00)
double total, costo; // total recaudado en el día y el costo de parqueo por cada media hora (Bs.-2,50)
Parqueo()//Constructor que inicializa todos los atributos de la clase
{}
void print( )//Imprime el nombre del parqueo, la hora de atención y la hora a partir de la cual no ingresan
vehículos
{ }// de la forma "Parque: DOn MIguelito"
// "Atención de 6:00 a 22:00"
// "Hora limite de ingreso, antes de las: 20:00"
void ingresar()// Busca el primer espacio disponible, una vez que lo encuentra, ingresa la placa
{ } // y envía la placa y la hora límite a setEspacio.
void salida() //Se ingresa una placa y la hora de salida, para la hora de salida usa un objeto hora como
{ } //variable auxiliar, una vez que encuentra el vehículo, ingresa la hora de salida, validando que sea
menor ala de entrada
//obligando a que sea menor; luego realiza el cálculo del monto a pagar contemplando 5 minutos de
tolerancia
// acumula el monto en el total del día y muestra los datos del vehículo, placa y hora de ingreso, y muestra
el monto
// a pagar. En caso de que no encuentre la placa, muestra un mensaje de placa no encontrada.
double getTotal()// Devuelve el total acumulado hasta el momento
{}
void salenTodos()// saca a todos los vehículos del parqueo, con hora de salida 22:00, calculando el monto
a pagar y
//mostrando el dato; además, acumula el moto a pagar de cada vehículo