Simulació aparcament amb Java¶
Enunciat¶
Heu de crear una classe parking que anomenareu PRU04E05Parking_nom_llinatge.java
Aquesta classe ha de simular el funcionament d’un programa de gestió de parking, tal i com se va explicar a classe.
Com a mínim ha de tenir un constructor tal i com es veu a la imatge.
Mètodes públics que ha de tenir la vostra classe parking (han de ser literalment aquests per què després se puguin intercanviar les classes):
Si considereu necessari crear altres mètodes, aquests han de ser privats.
La classe haurà “d’avisar” quan detecti ocupacions de més del 85% a cada tipus de parking.
Igualment haurà d’avisar quan les places s'exhaureixin i no podran entrar més cotxes, excepte en el cas de que les places exhaurides siguin de discapacitats. Aleshores el cotxe de discapacitat ocuparà una plaça de parking per no discapacitats i a partir d’aquí serà considerat com a no discapacitat.
Per comprovar el seu funcionament haureu de crear una classe de prova anomenada PRU04E05ParkingTest_nom_llinatge.java
Aquesta segona classe ha de poder rebre un paràmetre que sigui el path complet d’un fitxer. Si és el cas, el primer que haurà de fer serà omplir el parking amb les matrícules contingudes al fitxer*. S’ha d’implementar menú amb les següents opcions:
- Omplir parking a partir de fitxer*
- Entrar Cotxe
- Entrar Cotxe Discapacitat
- Surtir Cotxe
- Surtir Cotxe Discapacitat
- Guardar llistat de matricules en fitxer*
- Sortir
* El fitxer es guardarà / llegirà com a fitxer de text pla i tindrà una sola matrícula per línia. Si el fitxer quan es va a llegir no té format correcte, el programa donarà advertència i no continuarà amb l’operació de lectura.
CONSIDERACIONS FINALS
Si un discapacitat troba tots els llocs específics per ell ocupats, ocuparà plaça de no discapacitats i serà tractat com a no discapacitat.
Heu de comprovar que les matrícules segueixen el patró [0-9]{4}[A-Z]{3} Si no el compleix haurà de donar una excepció.
En cap cas el programa de prova ha d’acabar, excepte si l’opció escollida és acabar.
TipusPlacesParking ha de ser un enum amb valors Discapacitat i No_Discapacitat.
Missatges d’excepció que han de botar quan pertoqui (els textos han de ser literalment aquests):
El cotxe ja està al parking. No pot entrar. ALERTA =====> Garrulo detected!!! Ha aparcat a la plaça: \<num_plaça> ALERTA =====> Parking per discapacitats ple. Ha ocupat plaça normal num: \<num_plaça> ALERTA =====> Parking per no discapacitats ple. ALERTA =====> Ocupació de places per no discapacitats supera el 85%. ALERTA =====> Parking per discapacitats ple. ALERTA =====> Ocupació de places per discapacitats supera el 85%. El cotxe no és al parking. ALERTA =====> Matrícula incorrecte. ALERTA =====> Fitxer incorrecte o inexistent. |
---|
Per simular els llocs ocupats al parking pels cotxes, heu de fer servir necessàriament HashMap. Reviseu la documentació a https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html i exemples a: https://beginnersbook.com/2013/12/hashmap-in-java-with-example/