Professional Documents
Culture Documents
DA2 M03B2 EAC4 Enunciat 2324S2-1
DA2 M03B2 EAC4 Enunciat 2324S2-1
Nom i cognoms
Taula de continguts
Presentació i resultats d'aprenentatge...............................................................................................1
Criteris d’avaluació de l'EAC..............................................................................................................1
Forma i dates de lliurament................................................................................................................2
Enunciat EAC 4..................................................................................................................................2
Desenvolupament dels mètodes........................................................................................................4
getAspirantByDocument................................................................................................................4
getGrade........................................................................................................................................5
setGradeTestAspirant....................................................................................................................5
askForString...................................................................................................................................6
askForInteger.................................................................................................................................6
askForFloat....................................................................................................................................7
Creació de la funció principal.............................................................................................................8
Lliurament.........................................................................................................................................11
Criteris de correcció i ponderació.....................................................................................................11
Correctesa (60%).........................................................................................................................11
Llegibilitat (20%)..........................................................................................................................12
Modularitat (20%)........................................................................................................................13
Aquest exercici d’avaluació continuada (EAC) es correspon amb els continguts treballats a la
quarta unitat U4 “Programació modular”.
Els resultats d'aprenentatge que es plantegen són:
• Analitza els conceptes relacionats amb la programació modular.
• Analitza els avantatges i la necessitat de la programació modular.
• Aplica el concepte d'anàlisi descendent en l'elaboració de programes.
• Modularitza correctament els programes realitzats.
• Realitza correctament les crides a funcions i la seva parametrització.
• Té en compte l'àmbit de les variables en les crides a les funcions.
Lliurament límit:
Versió: 03 DA2M03B2_EAC4_Enunciat_2324S2
19/03
Formació professional
Nom i cognoms
Un cop finalitzat l’exercici d’avaluació continuada s’ha d’enviar la solució a la bústia de “M03B2
Lliurament EAC4” de l'aula, dins del termini establert. Tingueu en compte que el sistema no
permetrà fer lliuraments després de la data i hora indicades.
Donada la importància d'aquests lliuraments, us demanem que empaqueteu tots els arxius del
projecte en un fitxer de format zip o 7z. Les respostes, que contemplen codi JAVA, hauran de
lliurar-se amb els mateixos fitxers de codi compilables, creats amb l'IDE Netbeans que s’adjunten,
comprimits tots en el format abans indicat.
El nom del fitxer que contingui la solució serà el següent: DA2M3B2_EAC4_Cognom1_Inicial del
cognom2. Els cognoms s’escriuran sense accents. Per exemple, l’estudiant Joan García Santos
posaria el següent nom al seu fitxer: DA2M3B2_EAC4_Garcia_S.
Substituïu Nom i cognoms de la capçalera per les vostres dades personals.
El termini de lliurament de l’EAC4 finalitzarà a les 23:55 h del dia 19/03/2024. La proposta de
solució és publicarà el dia 20/03/2024. Les qualificacions es mostraran el dia 04/04/2024.
Enunciat EAC 4
Esteu treballant en una empresa que gestiona la logística d’un concurs oposició, i us informen que
necessiten un software per a la gestió dels aspirants, els exàmens i les seves notes. Es voldrà
emmagatzemar:
• La llista de participants, amb nom, cognoms i document identificatiu amb lletra (DNI, NIE...)
• Les notes de cadascun dels exàmens que realitzaran (en principi seran 5 proves, però ha
de preparar-se l’aplicació per a qualsevol altre valor).
La nova aplicació permetrà carregar una llista de participants, enregistrar la nota d’un candidat en
els seus exàmens, i consultar-les. Totes aquestes dades seran emmagatzemades en dos arrays,
un de participants (array de tipus String) i l’altre de qualificacions (array de tipus float).
El programa, en entrar, ens mostrarà un menù amb les següents opcions:
1) Enregistrar nota.
2) Mostrar notes aspirant.
0) Sortir.
Lliurament límit:
Versió: 03 DA2M03B2_EAC4_Enunciat_2324S2
19/03
Formació professional
Nom i cognoms
L’opció enregistrar notes permetrà a l’usuari seleccionar un dels candidats pel seu document
d’identitat, i a continuació, introduir la nota d’una de les proves, o de totes les proves del concurs.
L’opció mostrar notes aspirant mostrarà el nom, el document identificatiu i totes les notes d’un
dels candidats, identificat pel seu document.
L’opció sortir tancarà l’execució de l’aplicació.
Es tracta només de fer un prototip sense haver d’emmagatzemar les dades al disc. Si s’aprova per
part del client, hi haurà el vistiplau per a fer futures modificacions. De moment es decideix
emmagatzemar les dades dels aspirants en una matriu de cadenes de caràcters i les
qualificacions en una matriu de float. L’estructura d’aquestes matrius és la següent:
Matriu d’aspirants (String[][])
Nom de l’aspirant Cognom de l’aspirant Document
A la reunió de les diferents parts, es decideix que en aquesta primera iteracció es generaran les
funcions següents:
• Funcions sobre l’estructura de dades:
◦ Cerca de la posició que ocupa un aspirant donat el seu document.
◦ Cerca de la nota d’un aspirant.
◦ Posada de notes d’un examen a un candidat.
• Funcions d’interacció amb els usuaris:
◦ Demanda d’un String a l’usuari.
◦ Demanda d’un enter a un usuari.
◦ Demanda d’un float a un usuari.
Lliurament límit:
Versió: 03 DA2M03B2_EAC4_Enunciat_2324S2
19/03
Formació professional
Nom i cognoms
Nota: degut a l’existència dels diferents tests, el nom de la funció ha de ser idèntic al nom descrit
a continuació. Altrament, els tests donaran error i no podran corregir-se adequadament.
Nota2: els mètodes que es demanen són obligatoris, però poden desenvolupar-se tots els
submètodes que considereu convenient, atès que l’objectiu és un desenvolupament modular.
Nota3: per a donar exemples en els mètodes que es presenten a continuació, es faran servir les
dades següents:
aspirants: {{"Reinwald", "Keppy", "11111111A"},
{"Alfonse", "Nijssen", "22222222B"},
{"Devon", "Clowes", "84284710N"}}
grades: {{9,7,5,7,8},
{0,0,0,0,0},
{0,0,0,0,0}}
A continuació es presenta la signatura dels diferents mètodes que han de generar-se de manera
obligatòria. Tots aquests mètodes es trobaran al projecte adjunt sense desenvolupar.
getAspirantByDocument
Lliurament límit:
Versió: 03 DA2M03B2_EAC4_Enunciat_2324S2
19/03
Formació professional
Nom i cognoms
• Si s’ha recorregut tota la matriu, voldrà dir que no hi ha cap coincidència. Per tant, retorneu
el valor -1.
getGrade
setGradeTestAspirant
Signatura: int setGradeTestAspirant(int aspirantId, int testId, float grade, float[][] grades)
La funció rep la matriu de qualificacions (array bidimensional de nombres en coma flotant),
l’identificador de l’aspirant (nombre enter) i l’id de la prova de la qual es vol avaluar (nombre enter
del 0 al 4), i escriurà en la matriu de qualificacions la nota de l’aspirant, en cas que no estigui ja
posada (en cas de tenir el valor zero). Si el procés ha estat correcte, escriurà el valor de la nota en
la matriu de qualificacions i tornarà l’id de l’aspirant. En cas contrari, retornarà -1. Si algun dels
valors introduïts no és correcte, tornarà el valor -2.
Exemples:
• la crida setGradeTestAspirant(1,1,5.5,grades), tornarà el valor 1 i deixarà la segona filera
de la matriu de qualificacions així: {0,5.5,0,0,0}.
• si repetim la crida setGradeTestAspirant(1,1,8,grades) tornarà el valor -1, ja que la nota ja
existia prèviament. La filera continua sent {0,5.5,0,0,0}.
• la crida setGradeTestAspirant(-1,2,5,grades) tornarà el valor -2.
• la crida setGradeTestAspirant(4,2,5,grades) tornarà el valor -2.
• la crida setGradeTestAspirant(1,-1,5,grades) tornarà el valor -2.
• la crida setGradeTestAspirant(1,-5,5,grades) tornarà el valor -2.
Lliurament límit:
Versió: 03 DA2M03B2_EAC4_Enunciat_2324S2
19/03
Formació professional
Nom i cognoms
askForString
askForInteger
Lliurament límit:
Versió: 03 DA2M03B2_EAC4_Enunciat_2324S2
19/03
Formació professional
Nom i cognoms
Exemples:
• la crida askForInteger("Introdueixi la seva edat", "El valor introduït no és un nombre
sencer") mostra a l’usuari el missatge "Introdueixi la seva edat", i espera que es pitgi la
tecla enter. Si l’usuari escriu "Pompeu" i pitja enter, mostrarà "El valor introduït no és un
nombre sencer", i tornarà a mostrar "Introdueixi la seva edat". Si l’usuari escriu "18" i pitja
enter, el mètode tornarà l’enter 18.
Consells pel desenvolupament:
• Primer de tot, inicialitzeu l’escàner (haureu d’importar el paquet). A continuació mostreu el
missatge a l’usuari, i espereu que envii un valor.
• Comproveu que el valor introduït pot convertir-se a enter (podeu fer servir hasNextInt()). En
cas negatiu, torneu a començar. Haureu de planificar un bucle.
• En cas positiu, retorneu el valor de l’enter recollit.
askForFloat
Lliurament límit:
Versió: 03 DA2M03B2_EAC4_Enunciat_2324S2
19/03
Formació professional
Nom i cognoms
La segona part consistirà a implementar tot el que falti per a tenir el programa complet de gestió
de qualificacions. S’ha d’implementar la funció principal, i tots els mètodes que es consideri oportú,
per tal d’aconseguir un codi modular i llegible, amb disseny descendent.
A continuació es detalla el funcionament que haurà de tenir el programa:
1. Una vegada iniciat, mostrarà el menú:
Lliurament límit:
Versió: 03 DA2M03B2_EAC4_Enunciat_2324S2
19/03
Formació professional
Nom i cognoms
Ha d’incloure’s un control d’errors per evitar a l’usuari introduir valor incorrectes. Després
de l’error es continuarà l’execució del programa, tornant al menú principal.
Figura 5: Avís per DNI incorrecte Figura 6: Avís per prova incorrecta
Lliurament límit:
Versió: 03 DA2M03B2_EAC4_Enunciat_2324S2
19/03
Formació professional
Nom i cognoms
Lliurament límit:
Versió: 03 DA2M03B2_EAC4_Enunciat_2324S2
19/03
Formació professional
Nom i cognoms
• Crideu les funcions que heu generat a l’apartat anterior les vegades necessàries, cada
funció no necessàriament s’ha de fer servir una sola vegada.
• Tots els texts o valors constants, han de generar-se com a constants a la part superior del
programa, per a garantir la llegibilitat del mateix.
Lliurament
Adjunt a aquest enunciat hi ha un projecte amb el nom AppEAC4 que haureu de descarregar, i
sobre el que haureu de programar la vostra proposta de solució. No s’avaluarà una solució
que vingui en un altre format.
Es lliurarà el mateix projecte, incorporant tot el vostre codi, i comprimit en un arxiu .zip o 7z.
Envieu aquest arxiu comprimit a la bústia del lliurament de l’EAC4 abans de les 23:55 de la data
límit.
Correctesa (60%)
El criteri de correctesa comporta que el programa faci la feina descrita a les especificacions de
manera correcta. Un programa que dona errors de compilació automàticament incompleix
aquest criteri, i serà puntuat amb un 0 en aquesta part.
Una vegada que es comprova que el codi compila correctament, els criteris d’avaluació són:
Lliurament límit:
Versió: 03 DA2M03B2_EAC4_Enunciat_2324S2
19/03
Formació professional
Nom i cognoms
Correctesa (6
Criteris de verificació 100% 60% 30% 0%
punts)
Comprovar el correcte
Tots els Més de 2
funcionament i validació 2 mètodes
Desenvolupament mètodes 1 mètode té mètodes
dels 6 mètodes. Els noms tenen
dels mètodes (3) funcionen errors. tenen
dels mètodes coincideixen errors
correctament errors
amb els demanats
Hi ha més
Hi ha dos
de dos
El funcionament del Hi ha un error errors en
Creació de la El funcionament errors en
programa és similar al en el el
funció principal (3) és similar. el
descrit. funcionament. funcionam
funcionam
ent.
ent.
Llegibilitat (20%)
Aquest criteri comporta l’aplicació dels criteris de llegibilitat bàsics apresos al bloc 1 i bloc 2 del
mòdul 3. Els criteris d’avaluació són:
Llegibilitat (2 Criteris
punts) 100% 50% 0%
Si no es compleixen 2 o més
criteris de la casella 50%
o
1) Es fan servir constants de Si no es compleixen algun
forma habitual en lloc de d'aquests criteris:
Si no es compleixen algun
valors literals.
d'aquests criteris:
2) Els noms de les classes, 1) Es fan servir poques
dels mètodes i les variables constants.
1)Mai o quasi bé mai, es fan
són descriptius de manera 2) Costa deduir la utilització
servir constants.
que és molt intuïtiu saber per de mètodes i variables a
Llegibilitat 2) Costa deduir la utilització
a què es fan servir. partir dels seus noms.
del codi (2) de mètodes i variables a
3) El codi està ben indentat. 3) El codi no està sempre ben
partir dels seus noms degut a
4) Cada línia correspon a una indentat.
que són noms massa curts o
única instrucció, 4) Es posen diverses
no signifiquen res.
5) Es fan servir els criteris de instruccions en una única
3) Sovint el codi està mal
llegibilitat d'acord amb línia
indentat
l'explicat en els materials del 5) manca algun criteri menor
4) En diverses línies no es
mòdul. de llegibilitat a l'aplicació.
compleix el criteri 4
5) manca algun criteri
important de llegibilitat a
l'aplicació.
Lliurament límit:
Versió: 03 DA2M03B2_EAC4_Enunciat_2324S2
19/03
Formació professional
Nom i cognoms
Modularitat (20%)
Aquest criteri comporta l’aplicació dels criteris de modularitat explicats en aquest bloc per tal de
d’evitar aplicacions monolítiques. Els criteris d’avaluació són:
Llegibilitat (2 Criteris
punts) 100% 50% 0%
1) El codi es troba distribuït en
mètodes seguint un disseny
descendent correcte.
2) El codi no es concentra en
pocs mètodes sinó que es troba
ben distribuït i segmentat en No es compleixen un o dos dels No es compleixen més de dos
Modularitat
nivells de profunditat raonables criteris de modularitat (casella criteris de modularitat (casella
del codi (2) per la mida de l'aplicació. 100%). 100%).
3) La divisió facilita la llegibilitat.
4) La divisió aconsegueix evitar
errors a l’hora d’escriure el codi.
5) La divisió facilitat la
localització dels errors.
Lliurament límit:
Versió: 03 DA2M03B2_EAC4_Enunciat_2324S2
19/03