Examenes Programacion Orientada A Objetos

July 6, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Examenes Programacion Orientada A Objetos...

Description

 

UNIVERSDA ACOAL DE DCACIÓN A STACA- SCEA ÉNCA PERIO DE NGENIEA NFORMÁTICA 71901022 OGAMACIÓ AA A BJOS AO  GA 719010 G A NOMÁA/ lCOAS  LA OCÓ)    O  O A- L lI�L lü �    EST [2 5 PUNTOS]:  Sólo n d ls sps spss s s vld v ld.. s spusts ts s pua pu an n on  on +0 its qu ls spdds   aea ncorreta e ptuará con -025 as no contestadas o tendrá tendr á ilueia n positiva i egativa en la oa egunta 1 ob s obts s p di (ídi l spst a sa )

 a Los Lo s objeos so especifiados por las lases b Los objos rpsa isanas d as lass  . os bjts s ouian  ls lss n  n métos.  d Ua lase las e pede pede aneja objeos regunta 2 Dado ee frageo de digo, cál cá l sería el resltado e coplar/ejeutar el digo?

Número de Línea 4

 5

Código

pui i voi mnSing[ ag ) { t valor = 5; cambiarVar valo cambiarVar valor; r; Systemu.printn(var);

6 7 8 9

pbic stati voi cabiarValor(i valor {  private it va var r = var * 2

10   a 5 b    rror en la líea 10  d Ero    la lía 6

regunta 3 Dado e siguete cgo, uál será su saida?

Número de Línea 4 5 6

7 8 9

10  12

Código

 Cn { pl i Sig n ) {  "; } } pbic ass Teor extends atae { pi i i ( ) { un 1 fa1; pli i i vi i Sin] rg) Tenor t = ew Te); Cn  =  no) Sste.ot.pr Sste .ot.pritln itln(tcata (tcatar r ) + 1 1 + s.cantar)

 . f  b fa la   a la  d. l f regunta 4: ¿Cl d ls sigins ndiionals ompilí sn ros?

i[] r = n  [] [] ;  EL Ó D IG O IRÍA AQUÍ r[j] = ;  a for b    for  d. 

(it =O ; y. C . X = = y. d.x> >> > 2 ) ; producirá un resultado mayor que 10. b. S y s t e m . o u t . p r i n t l n ( - 1 > > >> > 2 ) ; producirá un resultado mayor que cero (positiv (positivo). o).  S y ys s te te m . o u t . p r ri i nt n t l n ( 2 > > 2 ) ; p rro o d u ccii r á e l r eess ul u l ta ta ddo o O. d . S y s t e m . o u t . p r i n t l n ( 1 < < < 2 ) ; producirá un resultado 4. regunta

7:

¿Qué se mostrará mostrará por pantalla cu ando se intenta compila r y ejecuta ejecutarr el siguie nte código?

i mp mp o rt rt j a v va a . aw t . * ; p ub ub l i c c l a s s B u t t e x t e en n d s F r a me me { pub l i c s t a t i c v o i d ma i n ( S t r i n g a r rg gv [ ] ) { B u tt tt M My yB u t = =n ne ew w Butt ( ) ;

Butt ( ) { B ut ut t to o n H e l l oB oB u ut t= =n ne ew w Bu ut tt to on ( "Hola" ) ; B u tt tt o n B By y eB eB ut ut = =n ne ew w B ut u t t on o n ( " A di di o s " ) ; add ( H e l l o oB But ) ; add ( B By yeBut ) ; s et et S i ze ( 3 0 0 , 3 0 0 ) ; s e tV tV i s ib ib l e ( t r ru ue) ;

a. Dos botones botones juntos ocupan do todo eell frame. Ho la en la izq uier da y Adios en la de recha. b. U n bo botón tón ocupando todo el fr frame ame d iciendo Hola. c. Un bot botón ón ocupando todo el fr frame ame d iciendo Adios. d. Dos bo botones tones en la parte superior del fr frame ame diciendo uno H ola y el otro Adios. regunta 8 Dado el sig uiente fr fragmento, agmento, ¿podemos i nstanciar un objet objeto o de esta clase?

Nú mero de Línea Línea 4 5

Código public abstract class ClaseAbstracta { a b s t r a c t vo vo i d Me Me t o do do Ab s t r a c t o ( i n t a ) ;

6 a. Sí, creando un a n ueva clase que ext extienda ienda a C l a s e A b s t r a c t a  b. Sí, Sí, creando u na nu eva clase que extienda a C l a s e A b s t r a c t a e imple mente el método Metod oAb s tracto c. Si, las clases abstractas se pueden instanciar como cualquier otra clase si necesidad de extenderlas si se redefina el método Metod oAb s tracto d. Ni nguna respuesta anterio anteriorr es co correc rrecta. ta. regunta 9 Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmaciones es

correcta: a. Un encaps ulam iento apr apropiado opiado en las clases reduce eell acoplam iento. b. El términ o ac acopla opla miento describe cuá nto se ajust ajustaa una un idad de código a una tarea lógi lógica ca o a una e ntidad . c. El acopl amie nto describe la conec conectividad tividad de los propios ob objetos jetos de u na clase. d. Un sistema débilmente acoplado se caracteriza por la imposibilidad de modificar una de sus clases sin tener que realizar cambios en ni nguna otra.

 

ejecuta el siguiente código, ¿qué se im prime por pantalla?   regunta 10: Si se ejecuta Nú mero de Líne Línea a 4 5 6 7

Código

S t r i n g s = n e w S t r i n g (  B i c y cl cl e  ) ; i n t iB iB e g i n = 1 ; c h ar ar i E n d = 3 ; S ys y s te t e m . o u t . p ri r i nt n t ln l n ( s . s ub ub s t tr r i ng n g ( i Be B e gi gi n , i En En d ) ) ;

a. Bic. b. ic. c. icy. d. e rror: no method mat matching ching substring(int, char). resultado sultado de la siguiente oper operación: ación: System . out . prin tln regunta 11: ¿Cuál es el re a. b. c. d.

(4

 3) ; ?

6. O. . 7.

regunta 12: Necesita crear una clase que almacene como elemento base de la misma objetos únicos. No se necesita

qu e guarden orde n alguno, pero sí qu e no se repitan. ¿Qué interfa interfazz ser sería ía la m ás apropiada p ara es este te ffin? in? a. Set b. L i s t . c. Map d. Vect o r ocurriría iría al l lamar al método e j e mp mp lo lo ( )  regunta 13: Dado el siguiente código, indiq ue qu é ocurr Nú mero de Líne Línea a Código cl a s s E x a men { 4 private int i; 5 p ub l i c vo vo i d e j e mp mp l o ( ) 6 for ( int i= ; i 1 ) Sy ys st te e m . o ut ut . p r i n nt t ln ln ( i ) ; i f ( a r gs gs . l e n ng g th th > 0 ) Sy s tem . o ut . p r ri intln ( i - 1 ) ; else Sy s tem . o ut . p r ri intln ( i - 2 ) ;

a . test b . test-1 c. 1 d. 2 regunta 2  Dado el siguiente fragmento de código, indique cuál de los siguientes resultados es el resultado de su ejecución: public class test { p ub ub l i c s t a t i c v o i id d ma ai in ( Strin ng g ar rg gs [ ] ) { i nt nt i , j = 1 ; i = (j>1 ) ?2 : 1; sw wi it tc ch (i ) { case 0 : S y ys st te e m . o u t . p ri ri n nt t ( ) ; bre ea ak; c as a s e 1 : S ys y s te t e m . o u t . p ri r i nt nt ( 1 ) ; ca as se 2 : ca as se 3 :

Sys st t em em . o u t . p ri ri n nt t (2 ) ; b br rea ak k; Syst te e m . o u t . p ri ri n nt t (3 ) ; br re eak k;;

a. 01 b. 12 c. 13 d. 23 regunta 3  Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmaciones es interfaces aces gráficas de de us ua rio en Java : incorrct sobre las bi bli otecas para la construcción de interf a. AWT AWT util iza clas es de Swing. b. Swing util iza clases de AWT. AWT. c. Hay clases equ ivale ntes en AWT AWT y Swing.

d.

Se identifican identifican la s clases clases de Swing Swing con la letra J como pref prefijo. ijo.

 

Pregunta 4 : Según el texto de la bibliografía básica de la asignatura, indique cuales de las siguientes expresiones resultan verdaderas: . 2o 3o 4o 

( 4 1 > 3 > 3 > 33

> 2 3 3 '=

5 ) )  )  )  33

   )

( ( 3 -- 3 ) & & ( 2 < 1 ) ) ( 3 -- 3 ) & & ( 1 < 2 ) ! ( ( 3 -- 3 ) & & ( 1 > o ) ) & & ! false

c.

Las expresione s 3 y 4. Las expresione s 2 y 4. Las expresione s 3 y .

d.

Las expresiones 1 y 3.

a

b.

Pregunta 5 : Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmaciones es incorrct a. Las clases definen tipos. b. c.

d.

Las diagramas de clases muestran las clases de u na apl icación y la relación relación e ntre ntre ellos. Las clases son objetos. Las clases definen métodos.

Pregunta 6: Dado el siguiente fragmento de código, indique cuál de las siguientes afirmaciones es el resultado de su ejecución: 1. class Uno{ 2. protect pro tected ed U no yoMi yoMi smo(){ return this;} 3.

4. . 6.

class Dos ext extend end s U no{ public Dos yoM ismo(){ return super.yoMismo();

7. 8. a

b. c.

d.

No hay errores en el código. El resu ltad o ser sería ía una re referenci ferenci a a un objeto del tipo U no No hay errores errores en el código . El resultado sería una re referencia ferencia a un objeto objeto del tipo Dos Incompatibilidad de tipos línea 6. El método yoMismo yoMismo de la clase U no no es visible visible en línea 6.

Pregunta 7 : Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmaciones es correcta: a. El encapsulam encapsulam iento apropiado en las clases reduce su acoplamiento. acoplamiento. b. El acoplam iento describe el encapsu lam iento de la lass clases. c. El encapsu lam iento apropiad o en las clases reduce su cohesión. d. La cohesi ón de una unidad d e código refleja refleja su acopla miento. Pregunta 8 Dado el siguiente fragmento de código, indique cuál de las siguientes afirmaciones es el resultado de su ejecución:

pub lic class TestSet TestSet { static void a dd (Set set) { set.add("Hola"); set.add(); System.out.println(set.size()); public static void void m ain (String[] a rgs) rgs) { Set set = new H ashSet(); ashSet(); add(set);

 

a.  b. 1 c. 2 d. NuPointerException siguientes es un pala bra reservada reservada en Java?: regunta 9 : ¿Cuál de l as siguientes a. b. c. d.

NULL new instanceOf wend

afirmacione s es correct correctaa sobre la clase Math en Java?: regunta 10: ¿Cuál de las sigui entes afirmacione a. b. c. d.

public class MyC MyCalc alc ex extends tends Math Math.max(10); Math.round(9.99,1); Ninguna de las anterio anteriores. res.

siguiente fragment fragmento o de có código, digo, ind ique cuál d e la s siguientes siguientes afirmaciones afirmaciones es el resultado de su regunta 11: Dado el siguiente ejecución: public class test { p ub ub l i c s t a t i c v o i id d mai in n ( Strin ng g a ar rgs [ ] ) i nt nt i =  , j =  ; try i++; j -- ; i f ( i == == j ) i++; catch (Arithm me eti cExce ep ption e) S ys y s te t e m . o u t . p ri r i nt nt (  ) ;

{

{

catch (ArrayndexO Ou utOfBo ou undsE Ex xception e ) S ys y s te t e m . o u t . p ri r i nt nt (  ) ;

{

catch (Exceptio on n e) { S ys y s te t e m . o u t . p ri r i nt nt ( 2 ) ; finally { S ys y s te t e m . o u t . p ri r i nt nt ( 3 ) ; S ys y s te te m . o u t . p r ri i nt nt ( " , 4  ) ;

a. b. c. d.

0,4 1,4 2,4 3,4

regunta 12: Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes definiciones de un

método m, que lanza IOException, IOException, y que devuelve void, es correc correcta: ta: a. b. c. d.

void void void voi voidd

m() throw throwss IOException IOException {} m( ) throw IO Exception {} m(void) throws throws IOException IOException {} m( ) {} throws throws IOExc IOException eption

 

  regunta 13: . 2. 3. 4 5 6. 7. 8. 9

Dado el siguiente fragment fragmentoo de código, código, indiq ue cuál es el resultado de su compilación:

class Parent { D o u b l e g et et ( ) r et et u ur rn 1 . 0 ;

cl as s C h i l d ex ten d s P aren t { I n te te g e er r g et et ( ) return 2;

10 .

a. b. c. d.

Éxito. get() en Child no pued e extend extend er get() get() en Pa rent, rent, tipos de l retorno retorno son incompatibles . get() en Child no pued e extender extender get() get() en Parent, Parent, no son clases públicas. get() en Child ya definido en Parent.

regunta 14:

Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmaciones es

correcta: a. Si una clase tiene algún método abstrac abstracto hay que decl ararla como como abstrac abstracta. ta. b. Todos los métodos métodos en un a clase abstracta abstracta tiene n que ser decl arad os como abstractos. abstractos. c. Una clase que hereda de una clase clase abstracta abstracta no tiene tiene que impl ementar todos los métodos métodos abstractos abstractos para no ser abstracta. d. Una clase abstrac abstracta ta no puede implementar ninguna interf interface. ace. 15:

regunta Dado siguiente frnagmento de código, código, in diq ue cuál . S tri n g el n om b re = fragmento ull; 2. Fi il le fi il l e = n e w F il il e ( " / f o ol l de d e r " , n om omb r re e) ; 3. S y s t e m . o u t . p r i n t ( f il il e . e x xi ist s ( ) ) ;

a. b. c. d.

es la sa lid a de su compilac ión/ejecución: ión/ejecución:

true false Nu  PointerException PointerException en línea 2. Nu PointerExcep PointerException tion en línea 3.

PARTE PRÁCTICA [6 5 PUNTOS]: La práctica práctica del presente curso curso ha s ido un a versión del juego "R-Type. "R-Type. A continu continu ación se presentan las reglas de l juego tal y como se solicitaba para la práctica del curso: 1. El juego juegoNOR comenzará comenzará con una pantalla deBLE) bienvenida a partir de la cua l se podrá podrá seleccionar el modo de juego juego (FACIL, MAL, COM PLICADO, IM POSI y comenzar a jugar. 2. El juego juego const constará ará de u n úni co nivel nivel donde el jugador deberá acabar con una horda de naves alie nígenas. nígenas. El número de al ienígenas ienígenas con los que acabar dependerá del modo de juego juego seleccionado. seleccionado. Fácil= 10, Normal= 15, Complicado=20, lmposible=30. 3. El jugado r controla controla rá la nave al iada y disp ondrá de 1 sola vid vid a. 4. Las naves naves alie nígenas nígenas serán serán controladas controladas por el ordenador. 5. Las naves naves alie nígenas nígenas no disparan. 6 . No hay que implementar relieve. Es decir, no hay que most mostrar rar ningún tipo de suelo o techo techo como en el juego juego original. 7. La nave aliad a podrá moverse moverse arriba (Tecla (Tecla Q), Q), abajo (Tecla (Tecla A), izqui erda (Tecla (Tecla O) y derecha (Tecla P). Así mismo podrá di sparar su laser utiliza ndo la tecla tecla ESPACIO. 8. El área de movimi movimi ento permitido para la nave será toda la pantalla , au nqu e habrá que comproba comproba r que la nave nave no salga de estos lím ites. 9. El disparo que real real iza la nave nave al iada es continuo, es decir, no es necesario esperar a que el misi l disparado abandone la pantal la para que la nave aliad a pued a volver volver a disparar. 10. La nave aliad a sólo puede realizar un tipo de disparo que se desplazará horizontalme horizontalme nte nte hacia la d erecha de la pantalla , sin var iar su trayectoria trayectoria y a velocidad constante. constante. 11 . Las naves naves alie nígena nígena s se mueven a velocidad constante y podrán ser de dos tipos:

 

a.

12. 13. 14.

15.

a)

b) e)

a)

Nave Alienígena Tipo A. Aparecen por la parte derecha de la pantalla y se mueven horizontalmente hacia la izq ui erda a velocida d constante sin variar su traye trayectoria, ctoria, es decir, decir, su coordena da "y "y no varia en todo el desplazamiento. b . Nave alienígena Tipo B. Aparecen por la parte derecha de la pantalla y se mueven horizontalmente hacia la izquierda a velocidad constante. La principal diferencia con las Naves de Tipo A es que éstas pued en variar su trayec trayectoria, toria, es decir, en su desp lazam iento horizontal pu ede n variar variar su coordenad a "y "y de manera aleatoria. aleatoria. La velocidad velocidad a la que s e mueven las naves alienígenas alienígenas depend erá del modo d e juego juego seleccionado. seleccionado. Todas Todas las naves se mueven a la misma velocida d. Cuando las naves alien ígenas alcancen la part partee izqu ierda de la pantalla volv volverán erán a aparecer por la pa rt rtee derecha de ésta. ésta. Se deberán de d etectar etectar dos tipos de colisio colisio nes. a. Las colisiones entre entre la nave nave al iada y las nav naves es al ienígenas, lo qu e supo ndrá el fina fina l del juego. b. Las colisiones entre entre los misil es di sparados por la nave aliad a y las naves ali enígenas, lo que supon drá la destrucción destrucc ión de la nave ali enígena contra contra la que ha chocado el misi l. Si el jugador fin fin aliza e l nivel d el juego deberá apa recer un mensaje de fel fel icitación y se volver volvería ía a mostrar el me n ú in icial. icial. [1,5 puntos] Diseñar utilizando un paradigma orientado a objetos, los elementos necesarios para la aplicación explicada de la práctica durante el cu rso. Es necesario identificar la estr estruc uctura tura y las relaciones de he rencia y de uso de las clases necesari as para al macen ar y gestionar esta información. información. Debe hacerse uso de los meca nismos de herencia siempre que sea posible. Se valorará un buen diseño que favorezca la reutilización de código y facil ite su su ma ntenimi ento. [1,5 puntos] Implementa la clase N a v e A l i a d a . Especifica sus atributos y métodos y justifica las decisiones de implementación q ue creas creas importantes importantes.. [1,5 puntos] Implementa la siguiente regla del juego: "Las naves alienígenas Tipo A aparecen por la parte derecha de la pantalla y se mueven horizontalmente hacia la izquierda a velocidad constante sin variar su trayec trayectoria, toria, es decir, su coo coorden rden ada "y "y no varia en todo el despl azam iento. Especifica Especifica sus atributos y métodos métodos y justifica justifica las decisio nes de im plem entación qu e creas importantes. importantes. [2 puntos] Indique los cambios que serían necesarios en el diseño y programa para permitir que cada nave alienígena se moviera según una trayectoria independiente del resto de naves alienígenas pudiendo moverse libremente en las cuatro coordenadas (arriba, abajo, izquierda y derecha). Las naves alienígenas no podrían ocupar el mis mo espacio de coorden coorden ada s, por tanto deberían chocar y cambiar su di rección.

 

 NIVERSIDAD NIVERSIDAD ACONAL ACONAL DE DUCACIÓN A ISANCI ISANCI - SCUELA TÉCNICA TÉCNICA PERIOR DE NGNIERÍA NG NIERÍA NFORMÁICA NFORMÁICA 71 90 72 - ROGRAMACI ROGRAMACIÓN ÓN RNAA RNAA A BJOS BJOS (RAO (RAO N NGNRÍA  NGNRÍA NORMÁICA / CNOOGÍAS CNOOGÍAS D LA LA NFORMC  NFORMCÓN) ÓN) OA A NI 21 3 - OD ODO O A - No S PERMITIDO EL USO DE A O

PUNTOS]: PART PA RTEE EÓRICA - ES EST T [2 5 PUNTOS]: Sólo una de las respuestas es válida. Las respuestas correctas se puntuarán con +.O, +. O, mientras mientras que las respondidas respondidas de manera i ncorrec ncorrecta ta se puntuar án con -0. 25. Las no contes contestadas tadas no tendrán influencia ni positiva ni n eg egati ativa va en l a nota. Según gún e l texto texto de la bibl iograf iografía ía básica d e la asignatu ra, ra, e l alcance d e una variab le  regunta 1 : Se a. b. c. d.

Define Define la forma en la q ue la variable puede ser accedida. accedida. Define el conju conju nto de métodos que pue de acceder a la variabl e. Define la sección sección de código en la qu e la variable pu ede ser accedida. accedida. Ni nguna de las anteriores. anteriores.

Según gún el texto texto de l a bibl iograf iografía ía bás ica de l a asignatura, u n prototipo prototipo es  regunta 2 : Se a. b. c. d.

Una versión de la apl icación en la qu e se simu la una parte de el la, en vías vías a experimentar experimentar con las restante restantess partes. Una versión de l a apl icación en la que se sim ulan varias partes, partes, en vías a experimentar con una de sus partes. Una versión de la ap licación en la q ue se s imul an varias partes, partes, en vías vías a experimentar con las re restante stantess partes. Ninguna de l as anteriores anteriores

regunta 3 : Respecto a la s excepciones en Java, po demos afirma r 

a . Todas las subclases de la clase estándar de Java Ru n T imeE x cept io n son excepciones comprobadas. estándar de Java Java E x c e p t i o n son excepciones comprobadas. b. Todas las subclases de la clase estándar c. E r r o r es una su bclase directa directa de Throwable, mientras que E x c e p t i o n es una subclase directa de E r r o r  directas de T h ro wa ble d. Tanto E r r o r como E x c e p t i o n son su bclases directas Java para imp lementar herencia múlti ple? regunta 4 : ¿Qué mecanismo usa Java a. b. c.

En Jav Javaa no se permite la herencia m últip le de clases, clases, ni tam poco poco la i mple mentación múl tiple de i nterfac nterfaces. es. En Java Java no se permite la herencia m últip le de clases, clases, pero sí la impl ementación mú ltiple de interfa interfaces. ces. En Java Java se permite la herencia mú ltiple de clases, pero no la im pleme ntación múlti ple de interfaces. interfaces.

d.

En Java Java se permite la herencia mú ltiple de clases, y también la im pleme ntación múlti ple de interfaces. interfaces.

ejecutar la siguie nte línea de código? regunta 5 : ¿Cuá l es el valor de la variab le d despué s de ejecutar do u ble d

=

Ma t h . r o u n d

( 2 . 5 + Ma t h . r a n do m ( ) ) ;

a. 2 b. 3 c. 4 d. 2.5 regunta 6 : Sea el siguiente código: switch (x) { d e f au au l t : S ys ys t te em . o u ut t .prin nt tl ln n ( " H ol ol a  ) ;

¿Qué dos posi bl es tipos son aceptable s para x? x? 1 : byte byte 1 y 3. 2 y 4. 3 y 5. d. 4 y 6 . a. b. c.

2: long

3: char

4: float

5: Sho rt

6: Long

 

interfaz proporciona la capacidad d e al macenar ob objetos jetos usando un valor l lave?   regunta7 : ¿Qué interfaz a. Java.uti.Map. b. Java.uti.Set. c. Java.uti.List. d. Java.uti.Collection. corre rrectas? ctas? regunta 8 : ¿Cuá l d e las siguie ntes sentencias son co    i n t w  byt te e x (3) l o n g y (4) byte z

=

=

=

( i nt ) 8 8 8 . 8 ; (b by yte )  O O O L ; (by yt te) 1 00 ; (byte) 1 OO L;

a .  y  b.  y 3. c. 3 y 4. d. Todas son cor correc rectas. tas. legalm alm ente, cons construye truye e in icializa u n arra array? y? regunta 9  ¿Cuá l de las siguie ntes sentencias decla ra leg a. b. c. d.

int int int int

[ J miLista [ J miLista miLis ta [ J miLis ta [ J

{ "1" , "2" , " 3 " } ; 5 8 , 2) ; [J {4,9,7,0}; {4, 3, 7} ;

=

=

=

=

stass contiene sólo pala bras clave de Ja Java? va? regunta 10: ¿Cuál de las siguientes li sta a . c l a s s s  i f f  vo i d d l o n ng g I n t t c o n nt tin nu ue e b. g ot ot o o i n s t a n nc ceof f n at at i iv ve e f i n a l l y y d e f a u ul lt t t h hr row wss  c. t r y y v i r t tu ua al l th hr ro ow w f i n a al l volatile e t r a n s i e en nt d . b yt yt e e b r e a ak k a s s e r t  s w wi itc ch h i n c l u ud de e ell sigu iente pro programa? grama? regunta 11: ¿Cuál es la salid a que produ ce e public class Test { p ub ub l i c s ta t a t i c v o id i d l e f t s h if if t ( i n t i , { i < 1 ) { S y st st em em . ou t . p r ri i nt nt l n ( a u x ) ; } } } =

=

=

¿Cuá l es eell resultado qu e pro produce? duce? a. b. c. d.

Se pro produ du ce un error de compilació n. Se pro produ du ce un er error ror de eje ejecución. cución. No p produce roduce ningún error pero no muestra nada por pantall a. No se pro prodd uce ningún err error or y muestra po r pantalla el valor 5.

Pregunta 7 : ¿Cuál de las siguie nte ntess sentencias se eejecuta jecuta de ma nera corr correct ecta? a? ri n ng g ma t r ri iz [ ] = { "Coc ch h e " , " Av Av i ió ón", "Tr re en" } ; a . S t ri

b. c. d.

S tr i in n g ma t tr r i z = { " Co c ch he " , " A Av vi ió ó n" , " T r re en n"" } ; S t r i n g ma t r i z [ ] n ew ew S t r i n g { " C o c h he e " " Av Av i ó ón n" S t r i n g ma t r i z

[]

= {

" C o c he he " " Av Av i ó ón n"

"Tren" } ;

"Tren" } ;

Pregunta 8  Dado que un element elemento o B u t t o n puede propiciar propiciar el lanzam ient iento o de u n Act io n E ven t  ¿qué

tipo de l ist istener ener habría qu e impl ementar en la cla se que q ui era g gestionar estionar eeste ste eevento vento?? a. b. c. d.

WindowListener ActionListener ComponentListener PushListener

Pregunta 9  ¿En qué condiciones puede volverse a invocar un constructor de una clase para un objeto

después de qu e ese obj objeto eto hay hayaa sid o creado? a. b. c. d.

Cuan do queremos rrese esetear tear todos los ccam am pos del obje objeto to a sus val ores inici ales. Cuan do se ha ccreado reado un obj objeto eto abstra abstracto cto y se le qui ere dar valores iniciales a sus atributos. Cua ndo se imp leme nta uuna na interf interfaz az para el objet objeto o en cuestión . Nunca.

Pregunta 10: Sea el siguie nte código modificado de la clase M u s i c O r g a n i z e r mostrada en el libro base:

1 2

i mp mp o r t j a v a . u t i l . * ; pu ub b l i c c l a s s Mu s i c O r g a n i z e r

 

3 4 5 6 7 8 9 10 11

p u b l i c s t a t i c v o i d ma i n ( S t r i n g a r g s [ ] ) { A rrayLi s t a = new A rrayLi s t ( 5 ) ; for ( int i=O ; i > can can cio nes nes = n ne ew Arr Arr ay ay L is t t< < Str in ing> g> ( ) ; pub l i c s t a ti ti c vo vo id id m ai ai n ( S t r ri ing[ ] arg gss ) { Organizado Orga nizadorM rMusic usic a mo = new Orga Organizado nizadorM rMusic usic a ( ) ; mo . c a n nc c io i o ne ne s . a dd dd ( " A l ama ne ne ce ce r " ) ; S y s te t em . o u t . p r ri in nt t l n ( " ¿ E x is is t e l la a can nc ció ón n? : + am a n e c e r " ) ) ; } pu public blic boolean boolean existe ( String cancion ) { XXX i f ( t it it ul ul o . e q qu u a l s ( c an an c ci io on n) ) r e t u r n ( t ru ru e ) ; } re et t ur ur n ( f a l s e ) ; }

mo . e xi mo xi s t te e ( " Al Al

 

}

¿Qué habrá que poner en vez de los "Existe "Exis te la canción? : true? a. b. c. d.

XXX

para que al ejecutar main el programa produzca el resultado

while (S (String tring tit titulo: ulo: canciones) { for (String titulo in canciones) { fo forr (String titul o: canci ones ) { for (int i=O; i < canciones. length; i++) { String String ti titulo tulo = canciones.get(i);

regunta 14: En las diferentes versiones de un proyecto del juego zuul se pueden plantear diferentes

versiones ver siones del método get getExi ExitStri tString; ng; por eejemp jemp lo: public String g et et Ex Ex it i t St S t ri ri ng ng ( ) { String returnString   E x i t s :  ; if ( nor northEx thExit it !  null ) returnString +  "north " . if ( east tE Exi it t !  null ) returnString +  " e a s t " . if (wes tE x it !  null ) returnString +  "west " . if ( s ou ou th thE E x it it !  n u ll ) returnString +  " south south " . return returnString returnString ; }

public String g et et Ex Ex it it S t tr r in in g ( ) { S t ri ri n g r et et ur ur nS nS t r ri i n g   Ex Ex i t s :  ; Set key keyss  e x i t s . k ey S e t ( ) ; f or or ( S t r ri i n g exit : ke keys ys ) { retu returnString rnString +    + ex it; } return return returnString ; }

Versión A

Versión B

,

,

,

,

¿Cuá l de las dos versiones muestr muestraa más acoplam iento? a. A b. B c. Son iguales d . No muestran muestran acoplamiento ninguno visor or de imágenes se usa boto botones nes para que el usuario pueda camb iar el tamaño de la regunta 15: En un vis imagen; por ejemplo: smallerButton  ne w J B Bu u t t o n (  S ma ma l l le er ) ; smallerButt smallerButton on . addA addActionListener( ctionListener( XXX { p ub ub lic vo i id d act actio io n Per Per for formed ( Actio n nE E ven vent t e ) { makeS makeSmaller maller ( ) ; } }); t oo oo l lb ba ar r . a dd dd ( s m ma a l l er er Bu Bu t tt to on n) ;

¿Qué tipo de Listener habrá que usar (donde están los usuario ha hec ho clic en el botón? a. b. c. d.

XXX

en el código anterior) para detectar que el

new Ev Eventistener() entistener() new Buttonist Buttonistener ener () new Ac Actionistener() tionistener() new Ac ActionPe tionPe rformedistener()

PARTE P RÁCTICA RÁCTICA [6 5 PUNTOS]: La práctica del presente curso ha sido una versión del legendario arcade "Pac-Man. A contin uaci ón se muestra la propuesta del juego tal y como se solicita ba pa ra la p ráctica ráctica del cu rso. rso. 1-

El juego consta consta rá de de u n solo nivel don de el jugador debe rá com com er todos todos los puntos de de l a

 

pantalla. 2- El jugador contr controla ola rá a Pac-Ma n y dispon drá de 1 vida. 3  Lo Loss fa fa ntasmas serán controlados por el o rdenado r teni teni endo en cuenta e l comportamie nto diferente dif erente de cada u no. 4  Pac-Man podrá moverse (Utilizando las flechas del teclado) arriba (Tecla Up), abajo (Tecla Down), izqu ie rda (T (Tecla ecla Lef Left) t) y derecha (Tecla Right) . Así mismo po drá pausa r el juego pulsando la tecla "P. - El área de movimiento permitido para Pac-Man y los fantasmas será el mapa del único 6

7-

8

nivel disponible. nivel Será necesario comprobar que tanto Pac-Man como los fantasmas no superen los límites del mapa. Los caminos del mapa solo permiten el paso de un individuo al mismo tiempo, por tanto hab rá que tener eenn cuenta las ccolisiones. olisiones. Loss fantasma Lo fantasma s deben im plem entar com por portamie tamie nto ntoss dif diferentes: erentes: a. Bli nky nky,, el ffaa ntasma rroojo, bus buscará cará colisiona r con PacPac-Ma Ma n. P ara acerc acercarse arse a Pac-Ma n calculará la distancia (por ejemplo medido en filas y columnas) e intentará primero acercarse verticalmente y luego horizontalmente. b. Pinky. Buscará colisionar con Pac-Man. Para acercarse a Pac-Man calculará la

distancia (por ejemplo medido en filas y columnas) e intentará primero acercarse horizontalmente y luego verticalmente. c. Clyde. Él no persi persigue gue a Pac-Man, si nnoo que deam bul a sin una ruta espec especifi ifica. ca. 9 Se deberá n de detec detectar tar dos tipos de colisione s. a. Las colisio nes entre Pac-Ma n y los fa ntasma s, lo q ue sup ond rá la pér pérdida dida de una vida o el fifi na l del juego en caso de no dispon er ddee m ás vidas. b. Las ccolisiones olisiones entre los fantasma s, que supond rá un cam bio de di recc ección ión en los fantasma s i nvol nvol ucr ucrados. ados. 10 - Ha brá cuatro puntos más grandes grandes de lo n ormal situados cerc cercaa de la s es esqu qu inas del laberi nto y proporcionarán a Pac-Man la habilidad temporal ( segundos) de comerse a los fantasmas (todos ellos se vuelven azules mientras Pac-Man tiene esa habilidad). Después de ha ber si sido do tragad tragados os,, los ffaa ntasmas ssee reg regene ene ran cada u na en una esqu ina del la berinto.

1 1 - Será necesario implementar un contador con los puntos obtenidos en cada momento,

teniendo en cuenta los objetos comidos. Un punto pequeño supone 10 puntos puntos.. Comer u n fantasma 100 puntos. 12 - Si el jugador finaliza el nivel del juego deberá aparecer un mensaje de felicitación y se volvería a mostrar la página inicial. a ) [ puntos puntos]] Diseña r utilizando un paradigma orie ntado a ob objet jetos, os, los eleme nto ntoss neces necesaa rios rios para la aplicación explicada de la práctica durante el curso. Es necesario identificar la estructura y las relaciones de herencia (mediante el uso de un diagrama de clases) y de uso de las clases nec necesarias esarias para a lm acena r y gges estiona tiona r esta inf información ormación . Debe hacerse uso de los mecanismos de herencia siempre que sea posible. Se valorará un buen diseño que la reutilización suP imantenimiento. b) favorezca [,5 puntos] Implementade la código clase Fya nfacilite tasma n k y . Especif Especifica ica sus at ributos y m étodos y justifica las decisiones de implementación que creas importantes. Recuerda que este

 

fantasma buscará colisionar con Pac-Man. Para acercarse a Pac-Man calculará la distancia (por ejem ejem plo, medido en filas y colu mna s) e intenta rá p rime ro acer acercarse carse horizonta horizonta lm ente y lu ego verti vertical cal me nte. e [1,5 puntos] Implementa un método que gestione las dos tipos de colisiones que puede haber entre Pac-Man y los fantasmas, lo que supondrá la pérdida de una vida o el final del juego en caso de no disponer de más vidas, y las colisiones entre los fantasmas, que supondrán un cam bio de di recc rección ión e n los ffantasmas antasmas involucrad involucrados. os. d) [1,5 puntos] Indique los cambios que serían necesarios en el diseño y la implementación para permitir que haya diferentes niveles y que en cada uno de éstos se añada un nuevo tipo de fantasma (además de los que ya existen).

 

UNIVERIDAD ACIONAL ACIONAL DE DCACIÓN A ITA ITANCIA NCIA - CELA ÉCNI ÉCNICA CA SPERIOR DE NGEN N GEN IERÍ IERÍA A NFORMÁ N FORMÁTICA TICA ROGRAMACIÓN ACIÓN RIENTADA R IENTADA A BJETO (RADO EN  NGE NGENIE NIERÍA RÍA N FORMÁTICA / ECNOLOGÍA DE LLA A 71901 07 072 2 - ROGRAM NFORM

 

IÓN

PART PA RTEE EÓ EÓRICA RICA - E EST ST [2 5 PUNTOS]: Solo una de las respuestas es válida. Las respuestas correctas se puntuarán con +1.0, mientras que las respondidas de manera incorrecta se puntuarán con -0.25. Las no contestadas no tendrán influencia ni positiva ni negativa en la nota. regunta 1: Ind ica cual de las siguientes declaraciones es válida para el métod método o mai n: a. b. c. d.

p ub ub l i ic c s t a ti ti c p ub ub l i ic c p ub li li c

st st a t ic ic p ub ub li li c s t at at i c s st ta at ti ic c

v o id id m ai ai n ( S t r in in g a r rg gs [ ] ) ; v o id id m ai ai n ( S t r in in g ) ; v o id id m ai ai n ( S t r in in g ) ; i nt nt ma i n ( S t r i in n g a rg rg s [ ] ) ;

afirmaciones maciones es correc correcta: ta: regunta 2: Ind ica cual de las siguientes afir a. b. c.

Los Los mé métodos todos de modificación no ccamb amb ian el es estado tado de un ob objet jeto. o. Las ssentencias entencias de asignación almace nan el v valo alo r repre representado sentado por el lad o dere derecho cho de la sen sentencia tencia en una variable nombrada nombrada a la izquierda. El alcance de un unaa v vari ari able def define ine la sec sección ción de uunn método en la que la v vari ari able puede ser accedida.

d.

Los Los mé métodos todos de acces acceso o devuelv devuelven en inf información ormación sobr sobree el eestado stado de una instancia.

afirmaciones maciones es correc correcta: ta: regunta 3: Ind ica cual de las siguientes afir a. b. c. d.

Un depu rador es una herr herramie amie nt ntaa de so soft ftware ware qu e ayuda a eexamina xamina r cómo compila una ap licación. Una llamad a a mét método odo interno consist consistee en que los métod métodos os pueden ll amar a ot otros ros méto métodos dos de la misma clase como parte parte de su impl ementación. Una lla mada a método ex externo terno consist consistee en que los métod métodos os pueden lla mar a mé métodos todos de otr otras as clasess abstracta clase abstractass usan do la notación de pu nto nto.. Los objet objetos os pued en cr crear ear o otros tros objetos usa ndo el operad or ""instan instan ceo ceof. f.

regunta 4: Supongamos que queremos implementar una Agenda, ¿cuál sería la salida del siguiente

código? public class Agenda { p ub l i c s t ta ati ic c vo oi i d m ai ai n ( S t r ri i n g a rg rg v [ ] ) { A ge ge nd nd a a ge ge nd nd a = ne ne w A g ge e nd nd a ( ) ; } pr ro ot te ec ct t ed e d A g en en d a ( ) { fo or r ( i nt nt i = =OO ; i <  O ; i + ++ +) { Sy yss t te em .    . p r i in nt l n ( i ) ; } } }

a. b. c.

Error de Compilación ya que los cons construct tructore oress no pueden ser decla rados ccomo omo "p "prot rotect ected. ed. Error en tiempo de ejecución ya qu e los constr constructo uctores res no pueden ser declarados como "p "prot rotect ected. ed. Compilación corr correct ectaa y sali da de los díg dígitos itos de O a 10.

d.

Compilación corr correct ectaa y sali da de los dígit dígitos os de O a 9.

 

afirmaciones maciones es correc correcta: ta:   regunta 5: Ind ica cual de las siguientes afir a. b. c. d.

El le nguaj nguajee Java tiene tre tress tipos de ciclo: while, while-do y for for.. Un ciclo while es simila r en en su es estruct tructura ura y prop propósito ósito qu e el ciclo for for-each. -each. El tipo de la v vari ari able de ciclo no ttiene iene por porqué qué ser el mismo que el tipo del eleme nto decla rado para la colección que estamos recorriendo recorriendo con un ciclo. Un índice es un o obje bjeto to que proporciona funcional idad pa ra re recorr correr er todos lo s elementos de una colección.

regunta 6: Dado el siguiente fragmento de código, indique cuál de las siguientes afirmaciones es el

resultado de su ejecución:

i f ( " Pr o ob bl e em ma " . t r ri i m ( ) . t oL oL owe rC a sse e( ) S ys y s te t em . o u t . p r ri i n t ln ln ( " I g gu ua l " ) ; else Sy yss te t em . ou t . p ri r i nt nt l n ( " No N o IIg gu al al " ) ;

a. b. c. d.

El El El El

regunta

a. b. c. d.

" p ro ro b l e em ma " )

código prov provocar ocaráá un error de compilaci ón. códig código o pr provoc ovocará ará un err error or en tiempo de eejecución. jecución. código compil ará e imprim irá "Igua l. código compil ará e imprim irá "N o Igual . 7:

Ind ica cual de las siguientes afir afirmaciones maciones es correc correcta: ta:

La prueba es la actividad de descu brir ssii una pieza de có código digo produce eell comportamie nto pretendido. Una aserción es una expr expresión esión que eestablece stablece una condición que esperamos que resulte verdadera. Un seguim iento es la actividad de tr trabaj abaj ar a tr través avés de un segmento de código línea por línea, mientras se observan observan cambios d e estado y otros compor comportamientos tamientos de la apli cación. Todas las rrespuestas espuestas anterio res son correc correctas. tas.

correc ecta: ta: regunta 8 Ind ica cual de l as siguientes afirmaciones es corr a. b.

El acoplamie nto describe la cconec onectiv tividad idad de los prop propios ios o obje bjetos tos de una clase Un sistema débi lmente acoplado se carac caracteriza teriza p por or la imposib ili dad de modifica modificarr una de sus clases sin tener qu e realiza r cam cam bios en ninguna otra

c. d.

Un encapsul ami ento apropiado en la lass clases re redd uce el acoplami ento El ttérmino érmino acoplamiento describe cuánto se aajusta justa una u nidad d e ccódigo ódigo a una tarea ló lógica gica o a un a entidad

Datos os de CDs y DVDs vis visto to en la asignatura en e l capít capítul ul o 8, regunta 9 Basado en e l ejemplo de la Base de Dat ¿cuá l ser sería ía la sa lida de l siguiente ccódigo? ódigo?

public class BaseDeDatos { public public final voi void d meto metodo doAgr Agregar egarEleme Elemento nto ( ) { S y st st em em .     . pr ri i nt nt l n ( " Ag Ag re re ga ga r E l e em me nt nt o " ) ; } } public class BaseDeDatosDeMusica { pub l i c s t at at i c v o oi i d m ai ai n ( S t r ri ing ar rg gv[ ] ) { BaseDeDatos db n ew B a ass eD eD e eD Da at t os os ( ) ; =

 

db . meto metod d oAg oAgreg regar arElem Element ento o( ) ; } }

a.

Error en tiempo de compilación compilación indican do que una clase con con mét métodos odos finales deben se r declarada también como fina fina l. b. Error en tiempo de compilación indicando que no se puede heredar de una clase con métodos métodos finales.

c. d.

Error en la tiempo de ejecución Base De definid a como final . Éx Éxit itoo en compilación y salidaindica " Agre Agndo regar garque Elemento. Element o.Datos no ha sido definid

regunta 10:

Ind ica cual de las siguie ntes afirmaciones es correc correcta: ta:

a.

La decl aración de un campo o de un método como "protec "protected ted permite permite el acceso acceso di recto recto al mi smo desde l as subclases (solo directas). directas). b. Las llamada s a métodos en Java Java permite qu e la misma lla mada a u n método método en diferentes momentos pueda invocar diferentes métodos, dependiendo del tipo dinámico del parámetro de retorno ret orno a la hora de hacer la invocación. invocación. c. La llamad a a "super "super en un determin determin ado método método (que no sea un construc constructor) tor) tiene que ocurrir en su primera sentencia de ntro de dicho método. d. Ninguna de las anteriores. anteriores. regunta 11:

a. b. c. d.

Ind ica cual de las siguientes afirmaciones es correc correcta: ta:

Todos lo s métodos de un a interfa interfazz son abstractos. abstractos. Las interf interfaces aces no contienen ningú n constructor constructor.. En una interfaz interfaz sólo se permiten los campos constantes. constantes. Todas la s respuestas anteriores son correctas. correctas.

regunta 12:

Dado un visor de imágene s, ¿Cuál sería la salida del siguie nte código? im mp p ort j av a . awt . * ; public class Pulsador extends Frame{ p ub l i c s t a at tic vo oi i d m ai ai n ( S t r ri i n g a rg rg v [ ] ) { Pu ls ador ador MiP MiPu u ls ad o or= r=ne new w Pu ls ad ador( or( ) ; } Pu ul l sa s a do r ( ) { B ut ut to to n B o ot t on on H Ho o l a= a= ne ne w B Bu ut tt t on on ( " H o l a " ) ; Butt Button on Botos BotosA Ad ios = =ne new w Butt Button( on( " Adios Adios " ) ; a d d ( B ot ot on on H ol ol a ) ; a d d ( B ot ot os o s Ad i io os ) ; s e tS t S iz iz e ( 3 0 0 , 3 0 0 ) ; s e tV tV i s i ib b l e ( t ru ru e ) ; } }

a.

Dos bot botones ones uno al lad o del otro otro ocupando ocupando todo el marc marco, o, "Hola en la izquierda y ""Adios Adios en la derecha. b. Dos botones botones un o encima de l otro d iciend o, "Hola  arriba y "Adi "Adi os abajo. c. Un solo botón ocupa ndo el marco entero d iciend o "Hol a. d. Un solo botón ocupa ndo el marco entero di ciendo "Adios. "Adios.

regunta 1 3 :

Teniendo en cuenta el modelo en cascada presente en la construcción del software, indica cual de las siguie ntes fases NO pertenece al desa rrollo de sof software: tware:

 

a. b. c. d.

Análisis del pr problema. oblema. Prueba Unitaria. Prueba Sec Secuencial. uencial. Entr Entrega ega del sistema al cliente.

regunta 14: ¿Cuá l ser sería ía la sal ida del sigui ente código?

in t i=  ; wi ch0 : ( i ) { cs w a is tech S ys ys t e em m .    . p ri ri nt nt ( break; case 1: S ys ys t e em m .    . p ri ri n t ( case 2: S ys ys t e em m .    . p r i n t ( break; default : S ys ys t e em m .    . p ri ri nt nt ( }

a. b.

uno un o otro

c. d.

uno dos uno dos otro otro

"ce er ro " ) ;

"u un no " ) ; "do oss " ) ;

"o ot tro " ) ;

correc rrecta: ta: regunta 15: Ind ica cual de las siguientes afirmaciones es co a. b. c. d.

El proc proceso eso de autob autobox oxing ing se llev llevaa a cabo automát automáticamen icamente te cuando se us a un valor de un tipo no primitivo primitiv o en un con contex texto to que requie re un tipo objet objeto. o. Los objetos su btipo puede n usarse cada vez qu e se espera un su pertipo. Esto se conoc conocee como supertipación. Las clases que eestán stán vincula das media nte una relación de herencia for forman man un a jerarquía de herencia. Todas la s re respuestas spuestas anteriore anterioress son fals as.

PARTE P RÁCTICA RÁCTICA [6 5 PUNTOS]: La práctica del presente curso ha sido una versión del legendario arcade "Pac-Man. A continu ación se m uestr uestraa la propue st staa de l juego juego tal y como se solicitaba pa ra la práctica del c urs urso. o. 1-

El juego cons constará tará de u n solo n ivel donde e l jugador deberá comer todo todoss los p untos de la pantalla.

2-

El jugador controla controla rá a P ac-Ma n y dis pond rá de

3-

Los Los ffantasmas antasmas serán contr controlados olados po r el or ordenador denador tenie ndo en cuenta el comportami comportami ento

1

vida.

diferente de cada uno. 4

Pac-Man podrá moverse (Utilizando las flechas del teclado) arriba (Tecla Up), abajo (Tecla Down), izqui erda (T (Tecla ecla Lef Left) t) y derecha (Tecla (Tecla R ight). Así mismo podrá pau sar el juego

5-

pulsando la tecla "P. El área de movimiento permitido para Pac-Man y los fantasmas será el mapa del único nivel niv el disponible.

 

6

7-

8

Será necesario comprobar que tanto Pac-Man como los fantasmas no superen los límites del mapa. Los caminos del mapa solo permiten el paso de un individuo al mismo tiempo, por tanto hab rá que tener eenn cuenta las ccolisiones. olisiones. Loss fantasma Lo fantasma s deben im plem entar com por portamie tamie nto ntoss dif diferentes: erentes: a. Bli nky nky,, el ffaa ntasma rroojo, bus buscará cará colisiona r con PacPac-Ma Ma n. P ara acerc acercarse arse a Pac-Ma n calculará la distancia (por ejemplo medido en filas y columnas) e intentará primero

acercarse verticalmente y luego horizontalmente. b. Pinky. Buscará colisionar con Pac-Man. Para acercarse a Pac-Man calculará la distancia (por ejemplo medido en filas y columnas) e intentará primero acercarse horizontalmente y luego verticalmente. c. Clyde. Él no persi persigue gue a Pac-Man, si nnoo que deam bul a sin una ruta espec especifi ifica. ca. 9 Se deberá n de detec detectar tar dos tipos de colisione s. a. Las colisio nes entre Pac-Ma n y los fa ntasma s, lo q ue sup ond rá la pér pérdida dida de una vida o el fifi na l del juego en caso de no dispon er ddee m ás vidas. b. Las ccolisiones olisiones entre los fantasma s, que supond rá un cam bio de di recc ección ión en los fantasma s i nvol nvol ucr ucrados. ados. 10 - Ha brá cuatro puntos más grandes grandes de lo n ormal situados cerc cercaa de la s es esqu qu inas del laberi nto y proporcionarán a Pac-Man la habilidad temporal ( segundos) de comerse a los fantasmas (todos ellos se vuelven azules mientras Pac-Man tiene esa habilidad). Después de ha ber si sido do ttrag ragados ados,, los ffaa ntasmas ssee reg regene ene ran cada u na en una esqu ina del la berinto. 1 1 - Será necesario implementar un contador con los puntos obtenidos en cada momento, teniendo en cuenta los objetos comidos. Un punto pequeño supone 10 puntos puntos.. Comer u n fantasma 100 puntos. 12 - Si el jugador finaliza el nivel del juego deberá aparecer un mensaje de felicitación y se volvería a mostrar la página inicial. a ) [ puntos puntos]] Diseña r utilizando un paradigma orie ntado a ob objet jetos, os, los eleme nto ntoss neces necesaa rios rios para la aplicación explicada de la práctica durante el curso. Es necesario identificar la estructura y las relaciones de herencia (mediante el uso de un diagrama de clases) y de uso de las clases nec necesarias esarias para a lm acena r y gges estiona tiona r esta inf información ormación . Debe hacerse uso de los mecanismos de herencia siempre que sea posible. Se valorará un buen diseño que favorezca la reutilización de código y facilite su mantenimiento. b [,5 puntos] I mpleme nt ntaa la clase FantasmaMinky. Este fa fa ntasma buscará colision ar con Pac-Man. Para acercarse a Pac-Man rodeará los obstáculos al contrario de las manecillas del reloj y aumentará su velocidad después de que un cierto número de puntos sean comidos (por ejemplo cada 2 puntos aumentará su velocidad). Especifica sus atributos y métodos y justifica las decisiones de implementación que creas importantes así como los cam bios en la s clases que creas nec necesario. esario. e [,5 puntos] Implementa un método que permita la existencia de cuatros puntos más grandes de lo normal presentes en las esquinas del laberinto y que proporcionarían a PacMan la h abil idad temporal (10 segundos) de comerse a los fantasmas. Los fantasmas se volverían azules durante este periodo de tiempo y después, en caso de haber sido comidos aparecerían de nuevo cada uno por una esquina diferente. d) [,5 puntos] Indique los cambios que serían necesarios en el diseño y programa para permitir que hubiera un nuevo tipo de Fantasma denominado "lnvlnky que tuviera

 

velocidad constante, tuviera un movimiento errático sin la intención de colisionar con PacMa n y que adem ás tuviera tuviera dos tipos de colisiones: a. En caso de colisionar con los otros Fantasmas, tanto "lnvlnky como el otro fantasma involucrado, cambiarían de sentido alejándose uno del otro. caso de de PacM an, no habría colisión sino que pa ra PacMa n sería sería como un b. En e l caso objeto invisible que no le causa ningún tipo de daño ni cambio en su comportamiento.

 

TN N - ESCU CN ICA eR P GN G NiRf iRf  FMÁ FMÁ  VO NC IOAl PI DÓN A T

79012

-

GM

RIENTD A 0aES 0aES (G  I GENI RiA FOMÁC f TENOQi$ E l FÓ)

PB 4- DL   o ESTÁ PERMITIDO EL U SO DE MATERIAL ADICIONAL PART PA RTEE EÓRICA - E EST ST [2 5 PUNTOS]: Sólo una de las respuestas es válida. Las respuestas correctas se puntuarán con +1.0, mientras que las respondidas de manera incorrecta se puntuarán con -0.25. Las no contestadas no tendrán influencia ni positiva ni negativa en la nota. Pregunta 1: Un mét método odo de a cceso o selector:

a. b. c. d.

Ha bitual mente devuelve void. Devuelv Devuelvee siempre información información sobre el est estado ado de un obje objeto. to. Devuelve siem pre un objeto de la clase Object Object.. Permite acceder acceder al construct constructor or de la cl ase que lo define.

Pregunta Pregu nta 2: Un mét método odo de modificación o mutador:

a. b.

Ha bitual mente devuelv devuelvee void. Devuelv Devuelvee siempre información información sobre el es estado tado de un obj objeto eto..

c. d.

Permite acceder modific modificar aral elcons est estado ado única los lo campos Permite construct tructor or demente la clasedeque define.púb licos de la clase.

Pregunta Pregu nta 3: Dada la sigui ente definición de clase:

public class MusicOrganizer { private int valor; public public MusicOrganizer ( int n ) { valor=n; } p ub l i c i n nt t c a l c u l ar ar ( ) { int resultado=! resultad o=! ; ; int numero=valor num ero=valor i f ( v a lo l o r> r> = ! ) { w h i l e ( nume ro ro >= >=  ) { resul tado*=nu tado*=numer mero o; nu numero-mero-- ; } return retur n result ado; } else{ re et t ur ur n 1 ; } } p ub l i c s t at at i c v oi oi d m ai ai n ( S t r ri ing [ ] arg gss ) { Mu s icO r rga ganiz niz er t=new t=new M Mu u s icO r rgan ganiz iz er ( 4 ) ; i n t v= v= t . c al a l cu cu la lar ( ) ;

 

Sy yss t em em . ou t . p r i in ntl ln n (v ) ; } }

El resultad o de su eejecuci jecuci ón sería: a. b. c. d.

24 6

120 o

Pregunta 4: Cual de las sigui entes aafirmaciones firmaciones es ffalsa alsa :

a. b. c. d.

La documentación de la lib re rería ría de clases de Java muest muestra ra det detal al les ac acerca erca de ttodas odas las clases de la librería. La inter interfaz faz de u na clase describe lo que una clas e hace y cómo ssee puede util izar sin most mostrar rar su implementación. Los Los mo modificadores dificadores de acc acceso eso definen la visibili dad sólo de los campos. Las clas clases es pueden tener campos. Esto Estoss se conocen con el nombre de variables de clase o variables estáticas.

Pregunta 5: Indique cual de las siguientes afirmaciones no es correcta respecto al uso de la herencia en

JAVA: a. b. c. d.

Evi Evita ta el Evit Evitaa la Faci lita Facilit Facilitaa

ttener ener qu e declarar cons constructo tructores res du pli cación de código la reuti liza ción del código la ampli abilida d y mantenimient mantenimiento o del có código digo

Pregunta 6: Se ha visto visto en la asignatura u na clase MessagePos MessagePostt que hereda de otra Post. Si ambas clases

tuvieran tuvier an la sigui ente eestruc structura tura : c l a s s Post { pub l i c St St r i in n g me n s a j e = " E n P o s t " ; pub l i c vo vo i id d en en v vi i a rM rM en en s a j e ( ) { Sy yss t te em . o u t . p r ri in nt tln(m me en nss a j e ) ; } } public class MessagePost extends Post { pub l i c S t ri ri n g me n s a j e = " E n M e s s a g ge ePo oss t " ; pub l i c vo vo i id d en en v vi i a rM rM en en s a j e ( ) { Sy yss t te em . o u t . p r ri in nt tln(m me en nss a j e ) ; } pub l i c s t a ti ti c vo vo id id m ai ai n ( S t r ri ing ar rg gs [ ] ) { Me s s a g e P os os t p = n ne ew M e s s a g e P o oss t ( ) ; Post post=p; p os os t . e n v i ar arMe ns ns a j e ( ) ; } } Cual se rí ríaa el resultado de eejecutar jecutar el méto método do mai n:

a. b. c. d.

En En En En

Post MessageP ost En Post MessageP ost MessagePos MessagePostt En MessagePos MessagePostt

 

Pregunta

a. b. c. d.

7:

Las pruebas de regresión regresión se definen como:

La eejecución jecución de las prueb as pas pasada ada s prev previame iame nte para ase asegurarse gurarse de que la nueva versió versiónn aún las pasa. La eejecución jecución de pruebas automati automatizada zada s aleatorias sobre los distint distintos os valores que pu ede re recibir cibir la clase ev evaluada. aluada. La apl icación sist sistemátic emáticaa del con conju ju nt nto o de casos de prueba base que se definieron justo al ccomenza omenza r con el desarrollo de l a apl icación y que no varí varían an nunca a lo la rgo de ést éste. e. El con conju ju nt nto o de pruebas neg negativa ativass ne necesarias cesarias par paraa demostra demostrarr que la clase eev val uad a fal la.

Pregunta 8 : En u na simula ción de lo s zor zorros ros y los con coneejos se puede definir una clase abst abstra ract ctaa Animal . En

una versión modificada modificada d e la si mulac ión el código po podría dría ser: im imp po or r t j ava. u til . L is t ; abstract class Animal { S t ri r i n g no m b re = " A An n im im al al " ; abstract public public void meto metodo do ( Lis t ne newA wAni nimals mals ) ; } class Zorro extends Animal { S t ri ri n g nomb re = " Z o rr rr o " ; pub lic Str in g no no m mb br reA eAn n imal imal ( ) { re et t ur ur n ( nomb re ) ; } pu public blic void metod metodo o ( List newA newAni nimals mals ) { Sy yss t te e m . ou t . p r ri in t tl l n ( " An An i m a l " ) ; } } public class ZorrosConejos { pub l i c s t a ti ti c vo vo id id m ai ai n ( S t r ri ing[ ] arg gss ) { Anim Animal al z = new Z o r r ro o( ) ; S y st st e em m . ou t . p r ri i nt nt l n ( z . nomb r e A n i m a al l( ) ) ; } }

Cual a.sería el resultado de ejecutar el método main: Animal b. c. d.

Zorro Un error de compilació n Un erro errorr en tiempo de ejecución

Pregunta 9  Dado el código de la clase Musi cOr cOrganizer. ganizer. ¿Cuá l sería el resultado de la ejecución del métod método o

main? im impo port rt j av ava a . util . Arra rrayList yList ;

public class MusicOrganizer { private Array ArrayLis Lis t fi les ; pu ub b lic Mu s icO rgan rganiz iz er ( ) { f i l e s = n ew A r r ra ayL i s t t< ( ) ; }

 

public public void a add ddFile File ( String fi lena lenam me ) { f i l e s . a d d ( f i le l e na name ) ; } pu ub b lic in t getN getNu umb erO erO fFiles ( ) {r re eturn f i il l es e s . s i zze e( ) ; } public public vo void id list File ( int ind index ex ) { i f ( index > =  & & index < f i il l es e s . s i zze e( ) ) { S t ri ri n g f i l e en n am ame = f i l e s . g et et ( i n nd de ex x) ; Sy yss t em em . ou t . p r i in ntl ln n ( f i l en en a am me ) ; } } public public void rem remov oveFile eFile ( int index) { i f ( index > =  & & index < f i il l es e s . s i zze e( ) ) { f i le l e s . remove ( i nd nd e x ) ; } } } p u b lic clas s T es t { p ub l i c s t a ti ti c v oi oi d m ai ai n ( S t r i in ng[ ] arg gss ) { Mu s icO r rga gan n iz er mo mo =n =n e ew w Mu s icO r rgan gan iz izer er ( ) ; mo . a d d F i il le( "D Di i sc sc o 1 " ) ; mo . a d d F i il le( "D Di i sc sc o 2 " ) ; mo . a d d F i il le( "D Di i sc sc o 3 " ) ; mo . l is i s tF tF i il le (  ) ; mo . remov e F i il le (  ) ; mo . l is i s tF tF i il le (  ) ; } }

a. b. c. d.

Disc Disco o 2 nul l Error en tiempo de ejecución Di sco 1 Di sco 2 Disco 2 Disco 3

Pregunta 10: Dado el sigui ente fragmento d dee código, podemos afirmar qu e la sal ida de l prog program ram a:

im impo port rt j av ava a . util . Ra Rand ndom; om; p u b lic clas s T es t { p ub l i c s t a ti ti c v oi oi d m ai ai n ( S t r i in ng[ ] arg gss ) { Random generadorAleatorio s ; Random generad gene rador orAleato Aleatorios=n rios=new ew Ran Rando dom( m( ) ; f o r ( i n t n =  ; n< = =   ; n ++ ++ ) { Sy yss t em em . ou t . p r i in ntl ln n ( ge en ne er ra ad d o rA l e at at or or io io s . n ex ex t n nt( n+ ) ) ; } } }

a.

Generará v val al ores al eatorios entr entree O y n en cada vuelt vueltaa del bucle.

b. c. d.

Generará v val al ores al eatorios entr entree O y n+1 en cada vuelt vueltaa del bucle. Generará v val al ores al eatorios entr entree 1 y n en ccada ada vuelta del bucle . Generará v val al ores al eatorios entr entree 1 y n+1 en cada vuelt vueltaa del bucle.

 

Pregunta 11: Indique cual de las siguientes afirmaciones es falsa en relación al desarrollo de la práctica

obligatoria: a. El método ac actionPerf tionPerformed ormed es el encar encargado gado de act actual ual izar las posici posiciones ones y el es estado tado del juego en cada inter intervalo valo de tiempo. b. La vis vista ta del juego se imp leme nta sobre un JPa nel sobreesc sobreescribien ribien do su mé método todo paint (). c. Para detec detectar tar las pulsaciones de teclado en el juego podemos hacer uso de la clas e abs abstrac tracta ta KeyAdapter. d. El méto método do ac actionPerf tionPerformed ormed ha y que imp lementarlo en el modelo, nunca en el ccontr ontrolador. olador.

Pregunta 12: Dada la siguie nte jerarqu ía de clases:

Y la siguiente inicialización de objetos:

pu ub b lic sV tatic tat o oid id ma in( String Strin eh ehic i ic c ul uv lo v main( = =n ne w C Co o ch ch eg( [) ]; args ) { V e hi hi c ul ul o v v22 = n ne ew Veh hi ic cu ulo( ) ; B i ci ci c l et et a b b= =new B i ic c i c l et et a ( ) ; C oc oc he he c = =n ne w C o oc c he he ( ) ; }

¿Cuále s de las siguie ntes asignacione s son co corre rrectas? ctas? 1. c=(Coche)v1; 2. c=(Coche)v2;  . b=(Bicicleta) e; 4. b=v2; a. b.

1 1y4

c. d.

1 ,,22 y 4 4

Pregunta 13: Sea un a nu eva definición de l as clases Post y MessagePost:

p u b lic clas s Pos t { pu b l i c S t ri ri n g t o S St tri in ng( ) { return ret urn "Mensaj e 2 " } } public class MessagePost extends Post { p ub l i c S t ri ri n g t o S St tri in ng( ) { re et t ur ur n " Me Me ns n s a j e 1 " + s up up er er . t oS oS t tr r in in g ( ) ; }

 

} p u b lic clas s T es t { p ub l i c s t a ti ti c v oi oi d m ai ai n ( S t r i in ng a ar rgs [ ] ) { Post p n ew M Me e s s ag a g eP eP o oss t ( ) ; Sy yss t em em . ou t . p r i in ntl ln n (p ) ; } } =

¿Qué se mostrará por pantal la al ejecutar el método ma in de la clas e Test? a. Erro Errorr de Comp ilac ión b. Mensaje 2 Mensaje 1 c. Mensaje 1 Mensaje2 d. Me nsaje 2 Pregunta 14: En el código libreta de direcciones (address book) explicado en el libro de texto se hace uso de

las aserciones. pu public blic void rem remov oveD eDetail etail s ( String key) { if(key nu l l ) { key th thro row w new Il legalA legalArg rgum umentEx entExcepti ception on ( "Null re mov e D e t ai ai l s . " ) ; } i f ( ke y y n nU U s e ( ke y ) ) { ContactDetails details bo oo ok. ge et t ( ke y ) ; b o o k . remov e ( de ta t a i ls l s . g e tN tN ame ( ) ) ; b o o k . remov e ( de ta t a i ls l s . g et et Ph Ph o n e ( ) ) ; num numberOfEntries- - ; } a s s e rt rt ! k e y y n Us Us e ( k e y ) ; a s s e rt rt c o n s i sst ten nt tSize ( ) " I n co co n s i s t te e nt nt b o oo ok size " ; } ==

passed

to

=

Ind iqu e cual de l as siguientes aafirmaciones firmaciones es ciert cierta: a: a. Se muestr muestraa un error Asse AssertionError rtionError en el caso en el que el método keylnU se devuelva como resultado falso falso . b. Se muestr muestraa el me nsaje "lnconsistent book size en el cas caso o en el que e l método consistentS consistentSize ize devuelva como resultado falso. c. Se muestr muestraa el mensaje "lnconsistent book size en el caso en el que el método consis consistentSize tentSize d.

devuelva como resultado verdad verdad ero. Se lanza un a exc excepción epción deri deriv vada d e la clase Ex Excepti ception on en el caso en el qu e el método kkeylnUse eylnUse devuelva como resultado verdadero.

afirmaciones maciones relativas al uso de excepciones en Java Java es falsa falsa : Pregunta Pregun ta 1 5: Ind iqu e cual d e las sigui entes afir a. b. c. d.

Las exc excepciones epciones ccomprobada omprobada s están pensadas para aque llos ca casos sos en los que el cliente deb erí eríaa esperar esper ar que una opera operación ción pue da fallar. Las exc excepciones epciones no comprobada s están pensad as para aq uel los casos qu e nunca deberían falla r du rant rantee la operación normal. Las exc excepciones epciones no comprobada s hereda n de la cclase lase Er Error. ror. Las exc excepciones epciones comprobadas heredan de la clase Exc Exception. eption.

PARTE P RÁCTICA RÁCTICA [6 5 PUNTOS]: La práctica del presente curso ha sido una versión del legendario arcade "Pac-Man. A

 

contin uaci ón se muestra la propuesta del juego tal y como se solicita ba pa ra la p rác ráctica tica del cu rs rso: o: 1 . El juego constará de un solo nivel donde el jugador deberá comer todos los puntos de la

pantalla. 2 . El jugador contr controla ola rá a Pac-Ma n y dispon drá de 1 vida. 3  Lo Loss fa fa ntasmas serán controlados por el o rdenado r teni teni endo en cuenta e l comportamie nto diferente dif erente de cada u no. 4 Pac-Man podrá moverse (Utilizando las flechas del teclado) arriba (Tecla Up), abajo (Tecla Down), izquierda (Tecla Left) y derecha (Tecla Right). Así mismo podrá pausar el juego pulsando la tecla "P.  . El área de movimiento permitido para Pac-Man y los fantasmas será el mapa del único nivel niv el disponible. 6  Será necesario comprobar que tanto Pac-Man como los fantasmas no superen los límites del mapa. 7 . Los caminos del mapa solo permiten el paso de un individuo al mismo tiempo, por tanto hab rá que tener eenn cuenta las ccolisiones. olisiones. 8  Lo Loss fantasma fantasma s deben im plem entar comport comportam am ientos dif diferentes: erentes: a. Bli nky nky,, el ffaa ntasma rroojo, bus buscará cará colisiona r con Pac-Man . Para acer acercarse carse a Pac-Ma n calculará la distancia (por ejemplo medido en filas y columnas) e intentará primero acercarse verticalmente y luego horizontalmente. b. Pinky. Buscará colisionar con Pac-Man. Para acercarse a Pac-Man calculará la distancia (por ejemplo medido en filas y columnas) e intentará primero acercarse horizontalmente y luego verticalmente. c. Clyde. Él no persi persigue gue a Pac-Man, si nnoo que deam bul a sin una ruta espec especifi ifica. ca. 9  Se deberá n de dete detect ctaa r dos tipos de colisiones. a. Las colisio nes entre Pac-Ma n y los fa ntasma s, lo q ue sup ond rá la pér pérdida dida de una vida o el fifi na l del juego en caso de no dispon er ddee m ás vidas. b. Las ccolisiones olisiones entre los fantasma s, que supond rá un cam bio de di recc ección ión en los fantasma s i nvol nvol ucr ucrados. ados. 10. Ha brá cuatro puntos más grandes grandes de lo n ormal situados cerc cercaa de la s es esqu qu inas del laberi nto y proporcionarán a Pac-Man la habilidad temporal ( segundos) de comerse a los fantasmas (todos ellos se vuelven azules mientras Pac-Man tiene esa habilidad). Después de h aber sido tragad tragados os,, los ffaa ntasmas se reg regene ene ran e n  casa de ffantasmas antasmas . 11. Será necesario implementar un contador con los puntos obtenidos en cada momento, teniendo en cuenta los objetos comidos. Un punto pequeño supone 10 puntos. Comer un fantasma 100 puntos. 12. Si el jugador finaliza el nivel del juego deberá aparecer un mensaje de felicitación y se volvería a mostrar la página inicial. a ) [ puntos puntos]] Diseña r utilizando un paradigma orie ntado a ob objet jetos, os, los eleme nto ntoss neces necesaa rios rios para la aplicación explicada de la práctica durante el curso. Es necesario identificar la estructura y las relaciones de herencia y de uso de las clases necesarias para almacenar y gestionar esta información. Debe hacerse uso de los mecanismos de herencia siempre que sea posible. Se valorará un buen diseño que favorezca la reutilización de código y facilite su mantenimiento. b) [,5 puntos] Implementa la clase Fantas maCl yd e. Especifica sus atributos y métodos y justifica implementación importantes. Recuerda que este fantasma las deadecisiones mb ula s in undea ruta especí específi fica ca porque el lacreas berinto.

 

e [1,5 puntos] Implementa los métodos necesarios para gestionar el cambio de estado tanto en Pac-Man como en los fantasmas cuando éste pasa por encima de un punto grande. Es necesario indica r a qué clases per pertenece tenece ca cada da uno de los métodos métodos i m ple me ntados. d) [1,5 puntos] puntos] Indique los cambios que serían necesarios en el diseño y programa para permitir la existencia de "premios (e.g. cerezas, fresas, naranjas, manzanas, etc) en cada nivel del juego que permitan a Pac-Man aumentar su puntuación al pasar por encima de ellos.

 

UNIVERIDAD ACIONAL ACIONAL DE DCACIÓN A ITA ITANCIA NCIA - CELA ÉCNI ÉCNICA CA SPERIOR DE N NGEN GEN IERÍ IERÍA A NFORMÁTI NFORMÁTICA CA ROGRAMACIÓN CIÓN  RIEN RIENTAD TADA A A BJETO (RADO EN  NGE NGENIE NIERÍA RÍA N FORMÁTICA / ECNOLOGÍA DE LA 71901 07 072 2 - ROGRAMA NFORM

IÓN

 

PART PA RTEE EÓRICA EÓRICA - EST EST [2 5 PUNTOS]: Solo una de las respuestas es válida. Las respuestas correctas se puntuarán con +1.0, mientras que las respondidas de manera incorrecta se puntuarán con -0.25. Las no contestadas no tendrán influencia ni positiva ni negativa en la nota. regunta 1: Ind ica cual de las siguientes afirmaciones afirmaciones es correcta: correcta:

a. b. c. d.

Los Los mét métodos odos pueden devolver devolver información información de algún obje objeto to mediante un v valor alor de retorno. retorno. Los Los mét métodos odos siempre tienen parámetros parámetros con con los qu e obtener obtener la informa información ción necesaria. A par partir tir de una clase tan solo se puede crear crear un solo objeto objeto.. El estado estado de lo s objetos objetos se represent representaa media nt ntee los métodos métodos imple mentados. mentados.

regunta 2: Dado el sigu ie nte fragmento fragmento de código,

 n  e s tu di ate a te = 1     l   n [] ma m a t ri r i c u a a s =   w         [ 33]] ; l  n ap ap r obad ob ado o = ma matr tr i c u  as as  es es tudi tu di a te te  In dica cu al de la s sigui entes afirmaci ones es correcta correcta en rela rela ción a l v val al or ddee la varia ble aprobado. a. b. c. d.

aprobado tiene el val or O aprobado tiene el valor valor nul l aprobado tiene el val or false false Se produce una excepción excepción y aprobado no posee ningún valor

afirmaciones es correcta: correcta: regunta 3: Ind ica cual de las siguientes afirmaciones a. b.

Los Los ccam am pos también son conocidos como variables de estado. estado. El alcance de una varia varia ble define define la sección sección de código código desde donde la variable puede ser decla rada.

c. d.

Los Los cons construc tructore toress permiten permiten que cada objet objeto o sea preparado preparado adecuad ame nt ntee cuando es creado creado . El tiemp tiempo o de vida de una variable variable describe describe el número de ve veces ces que es utilizada en un método. método.

regunta 4 : Supongamos que queremos implementar una Agenda, ¿cuál sería la salida del siguiente

código? publc as Agenda {  si vid m a i n ( S t r ri in ng g ar rg gv [ ] ) { Ag e n nd da a ag gen nd d a = new A g e nd nd a ( ) ;

t A g e n d da a() { for (i i = O ; i <  O ; i + + ) { S ys y s te tem . o u  . p r i n nt t ln ln ( i ) ;

 

a. b. c. d.

Error de Compilación ya que los cons construct tructore oress no pueden ser decla rados como como "prote "proteccted. Error en tiempo de ejecución ya qu e los constructo constructores res no pueden ser declarados como "prot "protect ected. ed. Compilación corr correct ectaa y sali da de los dígitos dígitos de O a 10. Compi lac ión correcta correcta y sa lid a de los dígitos dígitos de O a 9.

regunta

a. b. c. d.

5:

Ind ica cual de las siguientes afirmaciones afirmaciones es correcta: correcta:

Los Los campos se definen definen de ntro ntro de los cons construc tructores tores y de lo s métodos. métodos. Los campos se usan para almace nar datos datos que nunca persisten persisten dura nt ntee la vida del objet objeto. o. Los Los cam cam pos tienen un tiempo de vida que perdura después de terminar el ob objet jeto. o. La accesibil accesibil idad de l os campos se extiende extiende a toda clase y por est estee motivo motivo pueden usarse dentro dentro de cual qu ier construc constructor tor o método de clase en la qu e estén estén definidos.

correcta: ta: regunta 6: Ind ica cual de l as siguientes afirmaciones es correc a. b. c. d.

El le nguaje Java tiene tres tres varia ntes del cicl o for for : for-each, for-each, for y frfr-do. do. Un ciclo while es simila r en su estructura estructura y propósito propósito que el ciclo ffor or-each. -each. El tip tipo o de la v varia aria ble de ciclo ciclo no tiene tiene porqué porqué ser el mismo que el tipo tipo del elemento decla rado para para la colección que estamos estamos recorriend recorriend o con un ciclo. Un índice es un objeto objeto que proporciona funcional idad pa ra recorr recorrer er todos lo s elementos de un a colección.

regunta

a. b. c. d.

7:

Ind ica cual de las siguientes afirmaciones afirmaciones es correcta: correcta:

La prueba es la actividad de descu brir si si una pieza de código código pr produ odu ce el compor comportami tami ento pretendido. Una aserción es una expr expresión esión que establece establece una condición que esperamos qu e rresulte esulte verdadera. Un seguim iento es la actividad de trabaj trabaj ar a tr través avés de un segmento de código línea por línea, mientras se observan observan cambios d e estado y otros comportamientos comportamientos de la apl icación. Todas las respuestas respuestas anteri ores son correctas. correctas.

correcta: ta: regunta 8  Ind ica cual de l as siguientes afirmaciones es correc a. b. c. d.

Un objet objeto o de tipo String String puede ser modificado modificado una vez que está creado, creado, por tanto tanto no es un ejemplo de objeto objeto in mutable La clase SString tring tiene un método de nomb re trim que permite modificar modificar carac caractere teress en cualq uier posición de una cadena Las cadenas de te text xto o de tipo String String solame nt ntee se pueden comparar comparar media nt ntee el operador operador "== Un obj objet eto o es inmutable si su contenido contenido o su est estado ado no puede ser cambiado una vez vez que se ha creado

 

Basado en e l ejemplo de l a Base d e Datos de CDs y DVDs visto visto en la a signatura en e l capítulo 8, ¿cuá l sería sería la salida de l siguiente código? código?   regunta9 regunta9 :

pbli cla BaseDeDatos { publi n void me t od od oAg oAgr regarE Ele le m me ento ( ) { S y s te te m .  u  . p r i in n t l n ( "  r  g g   E  em em   " 

publi la BaseDeDatosDeMsica {  t  ma i n ( S t r i n ng g ar rg gv [ ] ) { new B a se BaseDeDatos db se De De Da Da t o os s() ; db . me t o d o oA Ag r e g ga a r E le leme me n t o ( ) ; =

a.

Error en tiempo de compilación indicando que un a clase con con métodos métodos finales deben ser declarada también como final final . b. Error en tiempo de compilación indicando que no se puede heredar de una clase con méto métodos dos finales. c. Error en tiempo de ejecución ejecución ind icando qu e Base De Datos Datos no ha sido sido definida como fin fin al. d. Éxito Éxito en la compilació n y sali da " Agregar Agregar Elem ento.

regunta 10:

Ind ica cual de l as siguientes afirmaciones es correc correcta: ta:

a.

El término acoplamie nto describe cuánto se ajusta ajusta una un idad de código código a una tarea lógica o a una entidad b. El acoplamie nto describe la conectividad conectividad de los propios objetos objetos de una clase c. Un encapsulamiento apropiado en las clases red red uce el acoplamiento acoplamiento d. Un sistema sistema debilm ente acoplado se carac caracteriz terizaa por la imposibilid ad de modificar modificar una de sus clases sin tener tener que re realizar alizar cam bios en ninguna otra

regunta 11:

Dado el siguie nte fragmento fragmento de código que pretende mostrar mostrar un ej ejem em plo de sobrescritura:

  s s Examen {

privt floa p r re eg gu u t ta =  . Of ; precd  getNota ( ) {ru pre pregu guta; ta; } }

  s s Test xts Examen {

privt floa ta = 2 . 0 f ;

}

Ind iqu e cual de las siguientes opciones completaría completaría el código anterior para da r lugar a un ejemplo correct correctoo de so brescritura: brescritura: a. pub lic float getNota (f (float loat valor ) { return valor;} b. pub lic float getNota ( ) { return nota;} c. float getN ota ( ) { return nota;} d. float float dou ble getNo getNotta ( ) { return nota;}

 

correc rrecta: ta:   regunta 12: Ind ica cual de las siguientes afirmaciones es co

a. b. c. d.

Una I GU se cons constr truy uyee mediante mediante viso visores res que se ubican en la pantall pantall a. La distr distribució ibució n de los componentes componentes en la pantalla se lleva a cabo mediante gestore gestoress de disposición. Los compone ntes se ubica n en una venta venta na agregándo agregándo los a la barra de estado estado o al pane l agregador. Un objet objeto o puede escuchar los eventos eventos de los componentes componentes imple mentando un a i nterfa nterfazz interpretadora de eventos.

regunta 13: En el siguiente fragment fragmento o de código hemos definido l a ejecución de cinco blo ques. Estos Estos

bloqu es se ejecutarán ejecutarán dependi endo de l as excepciones excepciones que se produzcan en cada caso.

try{ } ca cah h ( A r i t h m e t i c E x c e p t i o n e )

{

} fin n  l l l {

Ind iqu e cua l de las siguie ntes afirmaciones es es correct correcta: a: a. b. c. d.

El Blo que4 no se ejecutará ejecutará si se produce produce una excepción excepción de tipo aritméti aritmético co en el Bl oque2 El Bloq ue4 se ejecutará antes de que la excepción excepción producida por un acceso acceso a un obje objeto to nulo (nu ll ) en el Bloque2 se propague propague hacia arriba El Bloqu e4 no se ejecutará si se produce produce un acceso acceso a un objet objeto o nulo (nu ll ) en el Bloqu e2 El Blo que4 se ejecutará ejecutará antes antes que el Bloque3 si se produce produce una excepción excepción de tipo aritm aritmétic ético o en el Bloque2

correct ctaa : regunta 14: Ind ica cual de la s siguientes afirmaciones es corre a. b. c.

Una superc superclase lase es una clase que es implementada implementada por ot otra. ra. Una subclase es una clase que impl ementa a otro otro objeto. objeto. La herencia nos permite heredar pero no rreut eut ili zar en un nu evo context contexto o cla ses qu e fueron escritas escritas

d.

previamente. Las clases qu e están están vincula das media nt ntee una relación de herencia forman forman una jerar jerarqu qu ía de herencia.

correc rrecta: ta: regunta 15: Ind ica cual de las siguientes afirmaciones es co a. b. c. d.

La inter interffaz de una clase describe lo qu e hace la clase y cómo puede usarse pud iendo mostr mostrar ar parte parte de su impl ementación. Un mapa es una colección que al macena entradas entradas de ternas de valores llave/ llave/valor valor/po /posición. sición. La documentación de una c lase debe ser suficientemente suficientemente detallad a como para que otros otros programadores pro gramadores puedan us ar la clase sin necesidad de leer su impleme ntación. Lo Loss modificadores de acceso definen las restricciones restricciones de uso de un objeto objeto para determinados métodos, constructores constructores o cam pos.

 

PARTE P RÁCTICA RÁCTICA [6 5 PUNTOS]: La práctica de l presente curso ha ha si do una termi na l pu nto de de venta (por sus siglas, TPV) que ha servido servido pa ra estudi ar y practicar los mecanismo s de de la Programaci ón Orientada a Objetos. Definición d e TPV y Características Características

Según la Wikip edia (www. (www.wiki wiki pedi a. org), un termina l pu nto de de venta venta (cuyo acrónimo es TPV hace ref referencia erencia al dispositiv dispositivo o y tecnolog tecnologías ías que ayudan en la tarea de gestión gestión de un establ establ ecimie nto nto comercial de vent ventaa al públ ico que puede contar contar con sistemas sistemas i nf nformáticos ormáticos especializa dos media nte una interfaz interfaz accesible accesible para los vendedores. Los TPV permiten permiten la creació n e impresión del tiq ue de venta venta med iante las referencias referencias de productos, real real izan diversas operaciones durante todo el proceso de venta, así como cambios en el inventario. También generan diversos reportes que ayudan en la gestión del negocio. Los TPV se componen de una parte hardware (dispositivos físicos) y otra software (sistema operativo y programa de gestión). En nuestro caso concreto, el hadware será un ordenador tipo PC o similar y nuestro software será una apl icación desarroll desarroll ada e n Java Java qu e se ejecut ejecutará ará sobre dicho equipo . Funcionalidades

Los TP TPV V permiten la i mpl ementaci ón desde l abores simpl es de gestión gestión de una venta, hasta hasta operacione s más complejas com o es la gestión de al macén o i nv nventario, entario, gestión gestión d e facturación facturación o gestión gestión de c lientes. En esta práctica, se propon propon drá diferentes diferentes func ion ali dad es para el sistema de gestión del TPV: Llevar un control de diferentes elementos que existen en nuestro establecimiento. Así, los productos product os habrán de estar identificados en el sistema por, al menos, los siguientes datos: código descriptivo (por ejemplo, el código de barras), descripción, precio unitario sin IVA, IVA aplicable, precio unitario con IVA, IVA, cantidad d isponib le en stock. stock. El sistema debe permitir dar de alta nuevos productos, dar de baja productos existentes así como modificar modific ar los datos del mis mo. Realizar la importación y/o exportación de los productos a/desde ficheros (u otro método similar que el a lumno considere considere en su lugar). Llevar un control de las diferentes ventas que se producen. Así, el sistema deberá llevar un control de tickets generados, de modo que cada ticket se considerará una venta. Cada ticket tiene que tener un código de identificador identificador ún ico. U na forma forma de generar un código único podría ser de la formaa AAAAMM form AAAAMM DDH H M M, donde AAAA AAAA es el año en cu rs rso, o, M M el mes en q ue se genera genera l a venta, venta, DD el día de la venta, venta, H H M M las horas y minutos en las qu e se inicia la venta. Asumiremos que sólo hay un TPV, TPV, por lo que no procede que haya dos ventas ventas simu ltáneas. La venta consistirá en la inclusión de varios productos en una lista, generándose una línea por cada producto vendido. Cada línea mostrará, al menos, el código del producto, la descripción del producto, product o, la cantidad d e unid ades vendida s, el precio unitario con IVA, IVA, el IV IVA A que se le apl ica y el importee total import total de la venta de ese produ produ ct cto o según el n úme ro de unida des vendidas. El proceso de venta implicará automáticamente un proceso de actualización del inventario. De este modo, si se introduce un código que n o pertenece pertenece a nin gún prod ucto, o si se introduce un prod ucto que no existe en stock (o más unidades de las existentes), el programa deberá mostrar los errores correspondientes. El sistema deberá permitir también introducir un producto a vender en el ticket haciendo una búsqueda por la descripción, descripción, además de con el código código que lo identifica. identifica. •

















Real izaor simil la i mportación y/o y/o no exportación expor tación de d iferentes tickets de de ventas a/desde ficheros (u otro métod método ar qu e el alum considere considere eenn los su lugar). Llevar un control de los diferentes clientes que trabajan con el establecimiento comercial. Así, los

 











clientes habrán de estar identificados en el sistema por, al menos, los siguientes datos: código identificativ identific ativo o del clie nte, nte, N I F o CIF, nom bre y apel lidos 1 razón razón social, do micil io, fecha fecha de al ta en el sistema. El sistema debe permitir dar de alta nuevos clientes, dar de baja clientes existentes así como modificar modific ar los datos de los mismos. Real iza r llaa i mportación y/o y/o expor exportación tación de lo s cli entes a/desde ficheros (u (u ot otro ro método sim il ar que el al umno considere en su lugar). Permitir generar facturas a partir de un conjunto de tickets. Puede generar facturas agrupando diferentes tickets siempre y cuando pertenezcan al mismo cliente y se han realizado dentro del mismo periodo fiscal (es decir, dentro del mismo año). La información que irá en cada factura deberá ser, al menos, la siguiente: número de la factura (identificador único), CIF del vendedor, razón social del vendedor, fecha de emisión de la factura, datos del cliente (los indicados con anterioridad, excepto la fecha de alta en el sistema), listado de los diferentes productos vendidos (especificando (especif icando p ara cada producto, producto, el ticket en el que se encuentra, su cantidad vendi da e im port portee total tot al ) así como como su ma de l ttotal otal de la venta (valor total total de la factura) . Real iza r la importació n y/o y/o exportación exportación de las facturas facturas a/desd a/desd e ficheros ficheros (u otro otro método sim il ar que el al umno considere en su lugar). Generación de listados: se deberá implementar, al menos, la emisión de tres listados, a saber: ventas realizadas en un intervalo de tiempo determinado agrupadas estas ventas por clientes, ventas realizadas en un intervalo de tiempo determinado a un cliente y ranking de productos más vendidos en u n intervalo intervalo de tiempo determina determina do.

a)

[1,0 puntos] Diseñar util izando u n parad igma orientado orientado a objetos, objetos, los elementos necesarios necesarios para la aplicación explicada de la práctica durante el curso. Es necesario identificar la estructura y las relaciones relac iones de herencia (mediante el uso de un diagrama diagrama de clases) y de uso de la s clases necesarias necesarias para almacenar y gestionar esta información. Debe hacerse uso de los mecanismos de herencia siempre que sea posible. Se valorará un buen diseño que favorezca la reutilización de código y facilite su mantenimiento.

b)

[1,5 puntos] Implementa la funcionalidad que permita dar de alta nuevos clientes, dar de baja clientes existentes así como modificar los datos de los mismos. Justifíque las opciones y decisiones que se tomen.

e)

[1,5 puntos] Implementa la funcionalidad que permita la generación de listados: se deberá implementar, al menos, la emisión de tres listados, a saber: ventas realizadas en un intervalo de tiempo determinado agrupadas estas ventas por clientes, ventas realizadas en un intervalo de tiempo determinado a un cl iente y ranking de productos productos más vendidos en u n interv intervalo alo d e tiempo determinado. Ju st stifí ifíque que las opciones y decisiones decisiones que se tomen. tomen.

d) [2,5 pu ntos] Pa ra la sigui ente versión del softw software are se desea añ ad ir la figura del proveedor. De cada proveedor se debe tener un listado de los productos que sirve, así como su precio, que podría actualizarse manualmente después de la última venta. El sistema debería consultar el inventario después de cada venta y por debajo de un mínimo de productos realizar un pedido al proveedor más barato, de man era automática. El n úmero de productos pedid pedid o, podrá ser conf configurable igurable para que el vendedor establezca un valor por cada producto. ¿Qué cambios serían necesarios en el diseño para adaptar esta nueva funcionalidad? Implemente el método (o métodos) que permita estaa nueva funciona est funciona lid ad .

 

UNIVERIDAD ACIONAL ACIONAL DE DCACIÓN A ITA ITANCIA NCIA - CELA ÉCNI ÉCNICA CA SPERIOR DE N NGEN GEN IERÍ IERÍA A NFORMÁTI NFORMÁTICA CA ROGRAMACIÓN CIÓN  RIEN RIENTAD TADA A A BJETO (RADO EN  NGE NGENIE NIERÍA RÍA N FORMÁTICA / ECNOLOGÍA DE LA 71901 07 072 2 - ROGRAMA NFORM

IÓN

 

PART PA RTEE EÓRICA EÓRICA - EST EST [2 5 PUNTOS]: Solo una de las respuestas es válida. Las respuestas correctas se puntuarán con +1.0, mientras que las respondida resp ondida s de manera incorre incorrecta cta se puntuar án con -0.25. Las no contes contestadas tadas no tendrán influencia ni positiva ni negativa en la nota. significa el siguiente fragmento fragmento de código Java?: regunta 1: ¿Qué significa int uno() { return return 1; }

a. b. c. d.

Hay un méto método do "int uno que no recibe recibe ningún parámetr parámetro o de entrada entrada y devuelve devuelve el valor 1. Hay una vari vari able "int cuyo valor es "uno() { return 1; } } Hay un método "uno que no recibe ning ún parámetro de entrada y devuelve un enter entero o cuyo valor es 1. El fragmento fragmento no representa representa un fragmento fragmento de có código digo legal legal en Java.

regunta 2: Para lograr que una clase entre en el depurador en BlueJ a hacer una instancia en BlueJ, ¿qué

hay que hace r con el có código digo fuente?: fuente?: a. b. c. d.

Compilarlo de nuevo con la opc opción ión Debug activ activado. Meter un punto punto de ruptura. Lanzar directamente directamente el depu rador. Se hace autom automátic áticame ame nt ntee al encontrar encontrar un error error en el código. código.

fragmento de código en Java : regunta 3: Dado el sigu ie nte fragmento int m, n; public void f() { m = ((m m + 2 ) % n; Syst System. em. out.print(m +  ); public void g() { int i = O; m = O; n = 8; 8; while( i++ n e wA wAc t o r s ) ; b o ol ol e a an n i s Ac Ac t ti i ve ve ( ) ;

a. b. c. d.

Compila, no pr propor oporcionando cionando ningún error error en ti tiempo empo de compilación. Compila, no proporc proporcionand ionand o ningún error en tiem po de comp ilación, del mismo modo que que tambi én compila rí ríaa si prescindi prescindi éramos de la l ínea 1. No compila . Hay que modificar modificar la l ínea 2 quedand o de la siguiente manera: p u b l i c i n t e r f a c e Actor No compila. Hay que modific modificar ar la línea 4 quedando de la siguiente siguiente manera: p u b l i c v o i d a c t ( List n e wA wA c t o r s ) ;

regunta 8: Según el texto texto de la bibl iografí iografíaa bá sica de la asig natura ...

a. b. c. d.

El tipo estátic estático o de una varia varia ble v y el tipo di námico de una vari vari able v coinciden siempre. El tipo estático estático ddee una va va riabl e v se modifica automáticamente al modificar el tipo diná mico de la variable. El tipo estátic estático o siempre coincide con el tipo decla rado en la instrucción de declaración de la varia varia ble. Ninguna de las anter anteriore iores. s.

texto de la bibl iografí iografíaa básica de la asignatura, con respecto respecto a l a igu ald ad d e refe referencias rencias regunta 9 : Según el texto podemos afirmar ... a. b. c. d.

La iguald ad de ref referencia tiene en cuenta cuenta el contenido contenido de los objetos. objetos. No es posible usar la igualda d de ref refer erencias encias para re reali ali zar ccompa ompa raciones de cad cad enas de caracter caracteres. es. El método equal s heredado de la clase clase O bj ect no permite comprobar comprobar que existe existe una igua lda d de referencias. Ninguna de las a nterior nteriores. es.

 

código qu e se p uede encontrar encontrar en e l text texto o bas e de la asi gnatura   regunta 10: Queremos compil ar el siguiente código y que hemos modificado. ¿Qué ocurre al comp ila rlo con con B lu eJ?

1 2 3 4 5 6 7 8

i mp or o r t j av a . u t i l . L i s t ; publ i c abstract cl ass Ani mal { pu pub b l i c v o i d a c t ( L i s t < An An i ma ma l > n e wA wAn i ma ma l s , c h ar ar a n i ma ma l s ) { } p u b l i c s t a t i c vo vo i d a c t ( L i s t < An A n im i ma l > n e wA wA n i ma ma l s , i n t a n im im al al s ) ; a b s t ra ra c t p ub ub l i c s t a t i c v o i d a c t

a. b. c. d.

( L i s t < An An i m ma al> ne ew w An An im im a l s ,

String an ni i ma ma l s ) ;

Las líneas 5 y 6 prov provoca ocan n errores errores de ccompi ompi lación . Las líneas 5 y 7 provocan provocan errores errores de ccom om pil aci ón. Las líne as 6 y 7 provocan provocan errores errores de compila ción. Las líne as 5, 6 y 7 provocan provocan errores errores de comp ilació n.

regunta 11 : Queremos ccompi ompi lar el siguiente código código qu e se pued e encontr encontrar ar en e l text texto o base d e la a signatura y que hemos modificado. ¿Qué ocurre al comp ila rlo con con B lu eJ?

1 2 3 4

public class Ejemplo { p u b l i c s t a t i c v o i d m ai ai n {

5 6 7 8 9 10 11 12

( String [ ] args )

int [ ] n nu u m e r r s = n e w i n t [ ] S y st st e em m . o ut ut . p r i nt nt S y st st e em m . o ut ut . p r i nt nt S ys ys t te e m . o ut ut . p r i nt nt S ys ys t te e m . o ut ut . p r i nt nt

a. b. c. d.

{ 1, 2, 3 } ;

( n um um e r o s ) ; ( n um um e r o s . l e ng ngt h ) ; ( n um um e r os os . l a s t ) ; ( n um um e r ro o s . f i r st st ) ;

Se p produce roduce un error error de compilación en las líneas 8, 9 y 10 Se produce un erro errorr de compi compi lación en las líneas 9 y 10. Se produce un error de compilació n en línea línea 10. Ninguna de las a nterior nteriores. es.

regunta 12: ¿Cuál de las siguientes opciones permite modificar una cadena declarada como S tri ng

input;? a. b. c. d.

in np p u t . t oU o Upp er e r Ca Ca s e ( ) ; in np put . t r ri im ( ) ; i n pu pu t . s t a r t s W i t h ( " h o l a  ) ; Ninguna de las anter anteriore iores. s.

conceptos os de acoplam iento iento y cohesión, cohesión, podemos afirma r ... regunta 1 3 : En relación a lo s concept a. b. c. d.

Un alto gr grado ado de acopla miento imp lica nece necesaria saria mente un alto grado de cohesión. cohesión. Un bajo grado de acoplam iento no implica necesariamente un a lto gr grado ado de cohesión. En u n diseño d e clases perseguimos perseguimos un bajo grado grado d e cohesión y un bajo acoplam ient iento o Ninguna de las anter anterior iores. es.

 

ódigo que se pued e encontrar encontrar en el texto texto base de la asignatura   regunta 14: Queremos compil ar el sigu iente ccódigo y que hemos modificado. El código compila sin causar ningún error de compilación, pero no muestra nada por pantalla . ¿Qué fal falta ta por añad ir para que el código muestre algo por pant pantal al la a l crear un objeto objeto de la cl ase ImageViewer dentr dentro o del entorno entorno de Bl ueJ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

i mp mp o rt r t j av a . aw t . * ; i mp mp o rt r t j av a . aw t . e v ve e nt nt . * ; i mp mp or o r t j av a x . s wi wi n ng g.*; p u b lic cla s s I ma g eViewer ex ten d s J F ra me { p ub ub l i c I m ma ag ge e Vi Vi e we we r ( ) { s up up e r ( " I m ma a ge g e V i e w er er " ) ; m a ke ke F r ra am e ( ) ;

p r i v at at e vo vo i d ma ma k e eF F r am am e ( ) { Container contentPane g et et C Co on nt te en n tP t P an an e ( ) ; J L a b el la b el ne ew w J L a b e l ( " I a m a l ab ab e l . " ) ; co on n te te n nt t Pa P a ne n e . a d d ( l ab ab e el l) ; =

=

a . Añadir la instrucci instrucción ón this.pack this.pack() () en la línea 11 . instrucci ucción ón pack() en la línea 19. b. Aña dir la instr c. No hay que a ñadi r nad a. Se pu ed e v ver er el text texto o " 1 a m a la bel" en pantalla. d . Ninguna de las a nterior nteriores es compi lar el s iguiente código código qu e se pued e encontrar encontrar en el texto texto base de l a asigna tura regunta 15 : Queremos compi y que ha sido modificado convenientemente. Se produce un error de compilación. ¿Qué línea es la que contiene u n error, error, tal q ue si la mod ific ificamos amos conv conven en ientemente, el código compila y no provoca provoca nin gún e rr rror or de compilación en en B lueJ? 1 i mp mp o r t j av a . i o . * ; 2 3 p ub ub l i c c l a s s E j e mp mp l o 4 { 5 p ub ub l i c s t a t i c v vo o i d m ai a i n ( ) t h ro r o w s I O Ex E x c ep ep t i o n 6 { 7 Strin g filen a me n ew e w S t r i n g ( " E JE J E MP MP LO LO " ) ; 8 try { t hr h r o w I O Ex E x c ep ep t i o n ( ) ; 9 10 11 c a t ch c h ( E x c ep ep t i o n e ) 12 S y s te t e m . o ut ut . p r i n t l n ( " U n a ab ble to sa av ve t to o " + f i l e na n am e ) ; 13 14 15 =

a. b. c. d.

 

El El El El

error está está error error está er ror está error est estáá

en en en en

la línea la línea la lí ne a la lín ea

5 7 9 11

PARTE PCTICA [6

5 PUNTOS] PUNTOS] :

La práctica del d el presente pres ente curso ha sido una terminal terminal punto punto de venta (por sus sigla si glas, s, TPV) que ha servido servido para estudiar y practicar los mecanismos de la Programación Orientada a Objetos. Defnición de

TPV y Características

Según la Wikipedia (www.wikipedia.org), un terminal punto de venta (cuyo acrónimo es TPV hace referencia al dispositivo y tecnologías que ayudan en la tarea de gestión de un establecimiento comercial de venta al público que puede contar con sistemas informáticos especializados mediante unaa interf un interfaz accesible a ccesible para los vendedores vendedores . Lo s TPV permiten permiten la creación e impresión del tique de d e venta venta mediante mediante las referencias referencias de productos productos , realizan diversas operaciones durante todo el proceso de venta, así como cambios en el inventario. También generan diversos repores que ayudan en la gestión del negocio. Los TPV se componen de una pare hardware (dispositivos sicos) y otra software (sistema operativo y programa de gestión). En nuestro caso concreto, el hadware será un ordenador tipo PC o similar y nueso software será una aplicación desarrollada en Java que se ejecutará sobre dicho equipo. Funcionalidades

Los TPV permiten la implementación desde labores simples de gestión de una venta, hasta operaciones más complejas como es la gestión de almacén o inventario, gestión de facturación o gestión de clientes. En esta práctica, se propondrá diferentes ncionalidades para el sistema de gestión del TPV: Llevar un control de diferentes elementos que existen en nuestro establecimiento. Así, los productos habrán de estar identicados en el sistema por, al menos, los siguientes datos: código descriptivo or ejemplo, el código de barras), descripción, precio unitario sin IVA, IVA aplicable, precio unitario con IVA, cantidad disponible en stock. D El sistema debe permitir dar de alta nuevos productos, dar de baja productos existentes así como modicar los datos del mismo. D Realizar la imporación y/o exporación de los productos a/desde cheros (u otro método similar que el aluno considere en su lugar). D Llevar un control de las diferentes ventas que se producen. Así, el sistema deberá llevar un control de tickets generados, de modo que cada ticket se considerará una venta. Cada ticket tiene que tener un código de identicador único. único . Una forma forma de generar un un código códig o único podría ser de la forma AAAMMDDHHMM, donde AAA es el año en curso, MM el mes en que se genera la venta, DD el día de la venta, HHMM las horas y minutos en las que se inicia la venta. Asumiremos que sólo hay un TPV, por lo que no procede que haya dos ventas simultáneas. D La venta consistirá en la inclusión de varios varios productos productos en una una lista, generánd generándos osee una línea por cada producto vendido. Cada línea mostrará, al menos, el código del producto, la descripción del producto, la cantidad de unidades vendidas, el precio unitario con IVA, el IVA que se le aplica y el impore total de la venta de ese producto según el número de unidades vendidas. D El proceso de venta implicará automáticamente un proceso de actualización del inventario. De este modo, si se s e introdu introduce ce un D códig código o que no perenece a ningún ningún producto, o si se s e introduce introduce •













 

un producto que no existe en stock (o más unidades de las existentes), el programa deberá mosar los errores errores correspondientes. correspondientes. El sistema deberá permitir también introducir un producto a vender en el ticket haciendo una











búsqueda por la descripción, además de con el código que lo identica. D Realizar la imporación y/o exporación de los diferentes tickets de ventas a/ desde cheros (u otro método método similar similar que el alumno alumno considere consid ere en su lugar). D Llevar un control de los diferentes clientes que trabajan con el establecimiento comercial. Así, los clientes habrán de estar identicados en el sistema por, al menos, los siguientes datos: código identicativo del cliente, NIF o CIF, nombre y apellidos 1 razón social, domicilio, fecha de alta a lta en el sistema. D El sistema debe permitir dar de alta nuevos clientes, dar de baja clientes existentes así como modicar los datos de los mismos. D Realizar la imporación y/o exporación de los clientes a/ desde cheros (u otro método similar que el alumno considere en su lugar). D Permitir generar facturas a parir de un conjunto de tickets. Puede generar facturas agrupando diferentes tickets siempre y cuando perenezcan al mismo cliente y se han realizado dentro del mismo periodo scal (es decir, dentro del mismo año). La información que irá en cada factura deberá ser, al menos, la siguiente: número de la factura (identicador único), CIF del vendedor, razón social del vendedor, fecha de emisión de la factura, datos del cliente (los indicados con anterioridad, excepto la fecha de alta en el sistema), listado de los diferentes productos vendidos (especicando para cada producto, el ticket en el que se encuentra, su cantidad vendida e impore impore total) así como suma del total de la venta (valor (valor total de la l a factura factura)) . D





a)

Realizar la imporación y/o exporación exporació n de las la s facturas facturas a/desde cheros (u otro método similar que el alumno considere en su lugar). D Generación de listados: se deberá implementar, al menos, la emisión de tres listados, a saber: ventas realizadas en un intervalo de tiempo determinado agrupadas estas ventas por clientes, ventas realizadas en un intervalo de tiempo determinado a un cliente y ranking de productos más vendidos en un intervalo de tiempo determinado. D

[1,0 puntos] Diseñar utilizan utilizando do un paradigma paradigma orientado orientado a obj obj etos, los elementos elementos necesarios nece sarios para la aplicación explicada de la práctica durante el curso. Es necesario identicar la estructura y las relaciones de herencia (mediante el uso de un diagrama de clases) y de uso de las clases necesarias para almacenar y gestionar esta información. Debe hacerse uso de los mecanismos de herencia siempre que sea posible. Se valorará un buen diseño que favorezca la reutilización de código y facilite su mantenimiento. b) [1,0 puntos] Implementa un método (o métodos) que permitan la imporación (cargar al programa) de los diferentes tickets de ventas desde chero (u otro método similar que el alumn alu mno o considere en su lugar) lugar) . Justiquese Justiquese las opcione op cioness y decisiones que se tomen. e) [2,0 puntos] Implementa un método (o métodos) que implementen el proceso de venta, junto con la actualización actualizació n del inven inventario. tario. De este modo, si se inoduce inoduce un un código códig o que no perenece a ningún producto, o si se introduce un producto que no existe en stock (o más unidades de las existentes), el programa deberá mostrar los errores correspondientes. Justiquese las opciones y decisiones que se tomen. d) [2,5 puntos] Proporcione un método (o métodos) que permita mosar por pantalla un formulario básico en modo gráfc que permita recoger los parámetros necesarios para dar de alta un nuevo cliente en el sistema. El método deberá comprobar si el cliente existe, y si existe, mosar el correspondiente mensaj mensaj e por pantalla pantalla.. Si no existe, procederá a dar de alta al cliente. Justiquese las opciones y decisiones que se tomen.

 

UNIVERSAD CO  EDUACI Ó A DITANIA � CL TÉCNI SUPRIO E INGEERÍ OÁlCA

71 902 90 2 � POGRAMA POGRAMACIN CIN T TD D A BETS B ETS (RD  E FM 1 OLGÍ O LGÍ E.  NFMÓ) NFMÓ) No STÁ P RMITIDO L USO D MAT RIAL �•r- rNo/sTEMB 0s MD i  i  �

PART PA RTE E EÓR EÓRICA ICA - EST

d tW L 

[2 5 PUNTO PUNTOS] S] :

Solo una de las respuestas es válida. Las respuestas correctas se puntuarán con + 1 . 0, mien mi entr tras as que que las respondidas de manera incorrecta se puntuarán con -0.25. Las no contestadas no tendrán infuencia ni positiva ni negativa en la nota. ejecutar el sigui ente código? código? regunta 1 : ¿Cuá l es el resultado de compi lar y ejecutar i mp mp o or rt jav va a . util . * ; public class Test { p ub ub l i c s t a t i c v o i d m a i n ( S t r i n g [ ] A rg rg s ) { A r ra ra y L i s t < S t r i n ng g > l i s t a =n =n e w A r r a ay yList ( ) ; l i st st a . add ( " u n no o" ) ; l i st s t a . add ( " d do os") ; l i st s t a . add ( " t r re es") ; f or or ( S t r i in ng va al l or or : l i s t a ) { Sy ys s te te m . o u t . p r i in nt ("Eli im min o " + +v v al a l or o r +" +" - " ) ; l i s t a . r em em o v e ( v a al lor) ;

a. b. c. d.

Mu e sstr traa e n Mu e str straa e n M u eess tr tr a e n Mu estra estra en

consola: consola: "Elimin o u n o -  consola: consola: "Elimin o u n o -  y una ex excepción cepción del tipo ConcurrentModificationExcept ConcurrentModificationException ion c on on sso o l a : " E l i mi mi n o u n o  E l i m i no n o d os os  E l i m i no n o t re re s -  consola consola una exc excepción epción del tipo ConcurrentModific ConcurrentModificationExcept ationException ion

ejecutar el sigui ente código? código? regunta 2: ¿Cuá l es el resultado de compi lar y ejecutar i mp mp o or rt jav va a . util . * ; public class Test { p ub ub l i c s t a t i c v o i d m a i n ( S t r i n g [ ] A rg rg s ) { A r ra ra y L i s t < S t r i n ng g > l i s t a =n =n e w A r r a ay yList ( ) ; l i st st a . add ( " u n no o" ) ; l i st s t a . add ( " d do os") ; l i st s t a . add ( " t r re es") ; I t e r at at o r < g> i t t= =lista . iter ra ato or r() ; wh i il le (it . ha as sN Ne ex t ( ) ) { S t ri r i ng ng v a l lo o r= r = i t . n ex ex t ( ) ; Sy ys s te te m . o u t . p r i in nt ("Eli im min o " + +v v al a l or o r +" +" - " ) ; i t . r e move ( ) ;

 

a. b. c.

Mu e sstr traa e n consola: consola: "Elimin o u n o -  Mu e str straa e n consola: consola: "Elimin o u n o -  y una ex excepción cepción del tipo ConcurrentModificationExcept ConcurrentModificationException ion M u eess tr tr a e n c on on sso o l a : " E l i mi mi n o u n o  E l i m i no n o d os os  E l i m i no n o t re re s - 

d.

Mu estra estra en consola consola una exc excepción epción del tipo ConcurrentModific ConcurrentModificationExcept ationException ion

cierta?   regunta3 : ¿Cuá l de l as siguientes afirmaciones es cierta? a. b. c. d.

El ttérmino érmino acoplamie acoplamie nt nto o describe describe lo bien que una un idad d e código código se corr corresponde esponde con una tarea tarea lógica o con una entid ad. El término cohesión describe la interconexión interconexión de las clases. Se debe tende r a un un acopla miento déb il. Se debe tende r a un acopla miento fuerte.

regunta 4: ¿Cuá l es el resultado de compil ar y ejecutar el siguiente código? public class Padre { private int x; p ub ub l i c P a ad dre (int valor)

{ x

v a lo lo r ; }

p ub ub l i c c l a s s H i j o e x t e en nds Padr re e { p u b li li c H i j o ( ) { } public class Test { pu b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] A r g s ) { H i j o h =n =n e w H i j o ( ) ; S y s te te m . o u t . p r i in n tl tl n ( " C l a s e i n s st t an an c ci i ad ada " ) ;

a. b. c. d.

Mu estra estra en consola: "Clase "Clase instanciad a  Error de compilaci ón. Ha y qu e poner super( ) en el constructor constructor de la clase H ijo para acceder acceder al constructo const ructorr por defect defecto o de la cl ase Pad re. Error de compilaci ón. Hay qu e escribir explícitam explícitam ente el cons constructor tructor Pad re() en la clase Padre. Err Error or de compilación. Ha y que poner super() en el construc constructor tor de la clase H ijo para acceder acceder al constructo const ructorr por defecto defecto de la clase Pad re y ha y que escribir explícitamente el constructor constructor Pad re() en la clase Padre.

regunta 5 : ¿Cuá l es el resultado d e compil ar y ejecutar el siguiente código? public class Padre { void met to od do oA ( ) { S y s te t e m . o ut ut . p r i n t tl ln ( "Ej ec cu uto el m mé éto od do A d de e la clase Pad dr re" ) ;

p ub ub l i c c l a s s H i j o e x t e en nds Padr re e { void met to od do oA ( ) { S y s te t e m . o ut ut . p r i n t tl ln ( "Ej ec cu uto el m mé é t od od o A de l a c l a s e H i j o " ) ;

public class Test { pu b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] A r g s ) Pa ad d re re h = =n n ew ew H Hi ij o ( ) ; h . me et t od od oA oA ( ) ;

a. b. c. d.

 

{

Mu estra estra en consola consola : "Ejecut "Ejecuto o el método método A de la cla se Hijo  Mu estra estra en consola consola : "E "Ejecut jecuto o el método A de la clase Pad re  Error de compilac ión. Tipos incompati bles. Ninguna de las anterior anteriores. es.

  regunta 6: ¿Cuá l es el resultado de compil ar y ejecutar el siguiente código? public class Padre {

void met to od do oA ( ) { S y s te te m . o u ut t . print tl ln ( "Ej ec cu uto el m mé éto od do A d de e la clase Pad dr re" ) ;

p ub ub l i c c l a s s H i j o e x t e en nds Padr re e {

void met to od do oA ( ) { S y s te te m . o u ut t . print tl ln ( "Ej ec cu uto el m mé é t od od o A de l a c l a s e H i j o " ) ;

public class Test { pu ub b l i c s t a t i c vo vo i d m ai ai n ( S t r i n g [ ] a r g gs s) Hijo h= =n ne ew w P a dr dr e ( ) ; i f ( h i n s ta ta n c ce e of of H i j o ) S y s te te m . o u t . p r i in n t ln ln ( " I n s t ta anc ci i a de de l a c l a s e H Hi ij o" ) ; else S y s te t e m . o ut ut . p r i n nt t l n ( " I n s t a nc nc i a d e l a c l a s e p a ad d re re " ) ;

a.

Muestr Muestraa en consola: consola: "Instancia "Instancia de la clase Hijo Hijo 

b. c. d.

Muestra Muestra en consola: consola: "Instancia de la clase Padre Padre Error de compilac ión. Tipos incompati bles. Ninguna de las anterior anteriores. es.

regunta

a. b. c. d.

7:

Ind ica cual d e las siguie ntes afirmaciones es cor correc recta. ta.

Declarar un ccam am po o un método prote protegido gido (protect (protected) ed) permite accede accede r di re rectamente ctamente a él desde las subclases d irectas irectas o ind irectas. irectas. Declarar un campo o un método protegido protegido (protected) (protected) permite accede accede r di rectamente rectamente a él únicamente desde las subclases d ire irect ctas. as. Los Los miembros definidos como p priva rivate te en una su bclase son accesibles accesibles para los objeto objetoss de otras otras clases. Los Los miembros definidos como private private en una superclase son accesibles accesibles para los objeto objetoss de sus subclases.

código? regunta 8 ¿Cuá l es el resultado de compil ar y ejecutar el siguie nte código? public class Padre {

void met to od do oA ( ) { S y s te te m . o u ut t . print tl ln ( "Ej ec cu uto el m mé éto od do A d de e la clase Pad dr re" ) ;

p ub ub l i c c l a s s H i j o e x t e en nds Padr re e {

void met to od do oA ( ) { S y s te te m . o u ut t . print tl ln ( "Ej ec cu uto el m mé é t od od o A de l a c l a s e H i j o " ) ;

public class Test { pu ub b l i c s t a t i c vo vo i d m ai ai n ( S t r i n g [ ] H i j o h= h= ( H i j o ) n ew ew P Pa adre ( ) ; i f ( h i n s ta ta n c ce e of of H i j o )

 

arg gs s)

S y s te te m . o u t . p r i in n t ln ln ( " I n s t ta anc ci i a de de l a c l a s e H Hi ij o" ) ; else S y s te t e m . o ut ut . p r i n nt t l n ( " I n s t a nc nc i a d e l a c l a s e p a ad d re re " ) ;

a. b. c. d.

Muestr Muestraa en consola: consola: "Instancia "Instancia de la clase Hijo Hijo  Mu estra estra en consola: "Instancia de la clase Padre Error de compilac ión. Tipos incompatib les. Error en tiempo de ejecución. ejecución. Lanza u na exc excepción epción ClassCastEx ClassCastExcep ception. tion.

ejecutar el sigui ente código? código? regunta 9 : ¿Cuá l es el resultado de compi lar y ejecutar public class Padre {

void met to od do oA ( ) { S y s te t e m . o ut ut . p r i n nt t ( "Ej ecu ut to el m mé é t od od o A de l a c l a s se e Pa ad d re re .

") ;

p ub ub l i c c l a s s H i j o e x t e en nds Padr re e {

void met to od do oA ( ) { S y s te te m . o u ut t . prin nt t ( "Ej ecu ut t o e l m ét é t od od o A d e l a c l a s e H i j o . su up p e r . m et et od od oA oA ( ) ;

public class Test { pu ub b l i c s t a t i c vo vo i d m ai ai n ( S t r i n g [ ] Pa ad d re re p p= =n ne ew Hij o ( ) ; p . me et t od od oA ( ) ;

a. b. c. d.

arg gs s)

Mu estra estra en consola: "Ejecuto "Ejecuto el método método A de la clase Padre.  Mu estra estra en consola consola : "Ejecut "Ejecuto o el método A de la clase Hijo. Mu estra estra en consola: "Ejecuto "Ejecuto el método método A de la clase Padre. Ejecuto el método A de la clase H ijo. Ni nguna de las anteriores.

código? regunta 10: ¿Cuál es el resultado de compila r y ejecutar el siguie nte código? public abstract class Padre {

a b s t r ac ac t v o i d m me eto od d oA oA ( ) ; p ub ub l i c c l a s s H i j o e x t e en nds Padr re e {

void met to od do oA ( ) { S y st st e em m . ou t . p r i in n t ( " Mé Mé t o od d o A de H i j o .

") ;

p ub ub l i c c l a s s H i j a e x t e en nds Padr re e {

void me et t od od o oA A() { S y st st e em m . ou t . p r i in n t ( " Mé Mé t o od d o A de H i j a .

i mp mp or or t j a v va a . util . * ; public class Test pu ub b l i c s t a t i c v o i d m ai ai n ( S t r i n g [ ]

 

") ;

arg gs s)

") ;

L i s t < P a d re re > l i s t a a= =ne ew w A Ar rra ay yList ( ) ; l i s t a . add ( n ne ew H Hi ijo () ) ; l i s t a . add ( n ne ew H Hi ijo () ) ; l i s t a . add ( n ne ew H Hi ija () ) ; f or or ( I t e r ra a to t o r< r< P Pa a dr dr e > i t= t= l i s st t a . i te t e ra r a to t o r ( ) ; i t . h a sN sN e x t ( ) ; ) { P ad ad re re p p= = i t . n ex ex t ( ) ; p . me et to od do oA A() ;

a. b. c. d.

Muestra en consola consola : "Método A de Hijo. Método A de Hijo. Método A de Hija. Error de compilación. No se puede inclu ir un iterador iterador dentro dentro de un bucle fo for. r. Error de compilación. Las clases Hijo e Hija deben declararse ccomo omo abstractas. abstractas. Error en tiempo de ejecución. ejecución. Es obligatorio hacer un cast en cada cada e lemento ext extraído raído del Arrayis Arrayistt para invocar al método correcto correcto

regunta 1 1 : ¿Cuál es el resultado de compil ar y e ejecutar jecutar el siguie nt ntee código? public abstract class Padre {

void met to od do oA ( ) { t hi hi s . m e et t od od o B ( ) ; a b s t r ac ac t v o i id d m me eto od do oB B () ;

p{ ub ub l i c c l a s s H i j o e x t e en nds Padr re e v o id id m et e t od od oB oB ( ) { S y st st e em m . ou t . p r i in n t ( " Mé Mé t o od d o B de H i ijj o .

i mp mp or or t j a v va a . util . * ; public class Test { pu ub b l i c s t a t i c vo vo i d m ai ai n ( S t r i n g [ ] H i j o h =n =n e w H i j o ( ) ; h . me et t od od oA oA ( ) ;

arg gs s)

") ;

{

a. b.

Muest Muestra ra en consola: consola: "Método "Método B de Hijo. Hijo. " Error de compilaci ón. No se puede invocar invocar un método abstrac abstracto to desde la clase abstra abstracta cta Padre

c. d.

Error de compil aci ón. La clase abstracta abstracta Pad re deb e decl arar todos sus métodos como abstractos. Ninguna de la s anteriore anteriores. s.

regunta 12: ¿Cuál de las siguientes afirmaciones afirmaciones es fal fal sa?

a. b. c. d.

Una interf interfaz az en Java es una especif especificación icación de un tipo que no define implementación par paraa alguno de sus métod métodos. os. Para que u na subcla se de una clase abstracta abstracta se transforme en concreta, concreta, debe proporciona r implem entaciones para todos los métodos métodos ab strac stractos tos heredados. El ob objetiv jetivo o de una clase abstracta abstracta es servir servir como una supercl ase de otras cla ses. Las llamad as a métodos métodos de instancia instancia no privados privados desde dentro de una su perclase siempre siempre se eval eval úan en el contex contexto to más ampl io del tipo di námi co del objeto. objeto.

regunta 1 3 : ¿Cuál d e las sigui entes afirmaciones es fal sa?

a.

 

Las clases internas internas anónimas son una estruct estructura ura muy úti l a la hor horaa de implementar escuchas de sucesos.

b. c. d.

Un a interfaz interfaz G U I se construye construye dispon iend o compone ntes en panta ll a. Los compone ntes se representan medi ante objetos. objetos. Para de definir finir la colocación colocación de los componentes componentes de una una G U I se utiliz an gest gestores ores de diseño gráfico gráfico.. Un objeto objeto puede escuchar escuchar los sucesos sucesos de lo s componentes componentes ext extendie endie ndo una cl ase abst abstrac racta ta de escucha de s ucesos.

regunta 14: ¿Cuál de las siguientes afirmaciones afirmaciones es fal fal sa?

a.

La serialización permite permite leer y escribir en una úni ca operación objet objetos os completos completos,, pero no jerarquías de objetos. objetos. b. Una exc excepción epción no comprobada comprobada es un tipo de exc excepción epción cuyo cuyo uso no requiere ni nguna comprobación por parte parte del compilado r. c. Una ex excepción cepción comprobada es un un tipo tipo de ex excepción cepción cuyo cuyo uso requie re comprobaciones adicion ales por parte parte del compila dor. d. Una aserción es un enu nciado de un hecho que debe ser cierto cierto du rante rante la ejecución ejecución del pr progr ograma ama . regunta 15 : ¿Cuál d e las sigui entes afirmaciones es fal sa?

a. b. c. d.

Las pruebas son la activ activida ida d consistente consistente en averiguar averiguar si un fragmento fragmento de có código digo pres presenta enta el comportamiento compor tamiento deseado . Un recorrido recorrido manua l es la actividad actividad consistente consistente en ana liza r un se segment gmento o de código código línea a línea mientras que se o bse bserv rvan an los cambios de estado y otros otros comportamientos comportamientos de la apl icación. Una prueba negativa negativa es una prueba de un caso qu e se espera que funcio ne correc correctame tame nte y qu e fina lmente no ffuncio uncio na. Si la condición def definid inid a en una aserción aserción es falsa, decimos que la aserción hhaa fal fal lado .

PARTE PRÁCTICA [ 6 5 PUNTOS] : La práctica del presente curso ha sido una terminal punto de venta or sus siglas, TPV) que ha servido para estudiar estudiar y practicar practicar los mecanismos de la Programación Orientada Orientada a Obj Obj etos. etos . Defnición de

TPV y Características

Según la Wikipedia (w.wikipedia.org), un terminal punto de venta (cuyo acrónimo es TPV hace referencia al dispositivo y tecnologías que ayudan en la tarea de gestión de un establecimiento comercial de venta al público que puede contar con sistemas informáticos especializados mediante una interfaz accesible para los vendedores. Lo s TPV permiten permiten la creación e impresión del tique de d e venta venta mediante mediante las la s referencias referencias de productos productos , realizan diversas operaciones durante todo el proceso de venta, así como cambios en el inventario. También generan diversos repores que ayudan en la gestión del negocio. Los TPV se componen de una pare hardware (dispositivos sicos) y otra software (sistema operativo y programa de gestión). En nuestro caso concreto, el hadware será un ordenador tipo PC o similar y nuestro software será una aplicación desarrollada en Java que se ejecutará sobre dicho equipo. Funcionalidades

Los TPV permiten la implementación desde labores simples de gestión de una venta, hasta operaciones más complejas como es la gestión de almacén o inventario, gestión de facturación o gestión de clientes. En esta práctica, se propondrá diferentes funcionalidades para el sistema de gestión gesti ón del TPV: Llevar un control de diferentes elementos que existen en nuestro establecimiento. Así, los •

 



























productos habrán de estar identicados en el sistema por, al menos, los siguientes datos: código descriptiv descriptivo o (por ej ej emplo emplo,, e l código có digo de d e barras), descripción, precio unitario unitario sin IVA, IVA IVA aplicable, aplicabl e, precio unitar unitario io co con n IVA, IVA, cantidad disponible en stock. El sistema debe permitir dar de alta nuevos productos, dar de baja productos existentes así como modicar los datos del mismo. Realizar la imporación y/o exporación de los productos a/desde cheros (u otro método similar que el alumno considere en su lugar). Llevar un control de las diferentes ventas que se producen. Así, el sistema deberá llevar un control de tickets generados, de modo que cada ticket se considerará una venta. Cada ticket tiene que tener un código de identicador único. Una forma de generar un código único podría ser de la forma AAMMDDHHMM, donde AA es el año en curso, MM el mes en que se genera la venta, DD el día de la venta, HHMM las horas y minutos en las que se inicia la venta. Asumiremos que sólo hay un TPV, por lo que no procede que haya dos ventas simultáneas. La venta consistirá en la inclusión de varios productos en una lista, generándose una línea por cada producto vendido. Cada línea mostrará, al menos, el código del producto, la descripción del producto, la cantidad de unidades vendidas, el precio unitario con IVA, IVA, el IVA IVA que se le aplica y el impore total de la venta de ese producto según el número de unidades un idades vendidas vendidas.. El proceso de venta implicará automáticamente un proceso de actualización del inventario. De este e ste modo, mod o, si se s e introduce introduce un código có digo que no perenece a ningún ningún producto, o si s i se introduce un producto que no existe en stock (o más unidades de las existentes), el programa deberá mosar lospermitir errores también correspondientes. El sistema deberá inoducir un producto a vender en el ticket haciendo una búsqueda por la descripción, además de con el código que lo identica. Realizar la imporación y/o exporación de los diferentes tickets de ventas a/desde cheros (u otro método similar que el alumno considere en su lugar). Llevar un control de los diferentes clientes que trabajan con el establecimiento comercial. Así, los clientes habrán de estar identicados en el sistema por, al menos, los siguientes datos: código identicativo del cliente, NIF o CIF, nombre y apellidos 1 razón social, domicilio, dom icilio, fecha de alta en el sistema. El sistema debe permitir dar de alta nuevos clientes, dar de baja clientes existentes así como modicar los datos de los mismos. Realizar la imporación y/o exporación de los clientes a/desde cheros (u otro método similar que el alumno considere en su lugar). Permitir generar facturas a parir de un conjunto de tickets. Puede generar facturas agrpando diferentes diferentes tickets siempre siempre y cuando perenezcan perenez can al mismo cliente y se s e han realizado dentro del mismo periodo scal (es decir, dentro del mismo año). La información que irá en cada factura deberá ser, al menos, la siguiente: número de la factura (identicador único), CIF del vendedor, razón social del vendedor, fecha de emisión de la factura, datos del cliente (los indicados con anterioridad, excepto la fecha de alta en el sistema), listado de los diferentes productos vendidos (especicando para cada producto, el ticket en el que se encuentra, su cantidad vendida e impore total) así como suma del total de la venta (valor total de la factura). Realizar la imporación y/o exporación de las factras a/desde cheros (u otro método similar que el alumno considere en su lugar). Generación de listados: se deberá implementar, al menos, la emisión de tres listados, a saber: ventas realizadas en un intervalo de tiempo determinado agrpadas estas ventas por clientes, ventas realizadas en un intervalo de tiempo determinado a un cliente y ranking de productos más vendidos en un intervalo de tiempo determinado.

 

a)

[1,0 puntos] Diseñar utilizando un paradigma orientado a objetos, los elementos necesarios para la aplicación explicada de la práctica durante el curso. Es necesario identicar la estructura y las relaciones de herencia (mediante el uso de un diagrama de clases) y de uso de las clases necesarias para almacenar y gestionar esta información. Debe hacerse uso de los mecanismos de herencia siempre que sea posible. Se valorará un buen diseño que favorezca la reutilización de código y facilite su mantenimiento. b) [1,0 puntos] Modique aquellas clases que considere oporunas para incluir la ncionalidad de tener clientes VIP. A estos clientes se les aplicará un descuento del 10% en todos los productos. productos. [2,0 puntos] Modique los métodos de venta y generación de facturas para aplicar el descuento en el precio nal de cada producto en el caso en el que el cliente sea VIP. d) [2,5 puntos] Proporcione un método (o métodos) que permitan mostrar por pantalla un listado, en modo gráfc , de los clientes VIPs ordenados de mayor a menor en función del gasto realizado.

e)

 

UNIVERSID NC E ECIÓ A DSTNCIA= EU EUL L TÉCNICA SUPERO D.  "Á 71 902 � PROGA PROGAMCIÓN MCIÓN ON  B (GDO  NGl INFQTCA /

GÍ DE L NFORAI} MATERIAL L ADIIOAL JU JU  2Q16 = MO MOD D B  O ESTÁ ERMITIDO EL USO DE MATERIA

PUNTOS] : PARTE RTE EÓR EÓRICA ICA - EST [2 5 PUNTOS] El test consta de 1 4 preg pregunta untass y 2 preguntas preguntas adicionales de reserva. S ol oloo una una de las respuestas es válida. Las respuestas se puntuarán con lasvarespondidas + l inuencia . , mientras ., con - 0. 25 . correctas La Lass no contestadas no ten tendr drán án inue ncia nique pos positi itiva ni negati negativa vade enmanera la nota. incorrecta se puntuarán Las preguntas preguntas de reserv rese rvaa sólo só lo tendrán ut utilidad ilidad en el caso ca so de que alguna de las 1 4 preguntas preguntas iniciales del test sea anulada por cualquier circunstancia. Caso de ocurrir este hecho, si se produjera la anulación de alguna de las 1 4 preguntas preguntas iniciale iniciales, s, la primera pregunta pregunta de resera sustitui sustituiría ría a la pregunta pregunta anulada. anulada. Caso de que una segunda pregun pregunta ta de las 1 4 iniciales fuese anul anulada, ada, entonces la segund s egundaa pregunt preguntaa de res resera era sustitu sustituiría iría a esta segunda pregun pregunta ta anulada. anulada. En aquell aquellos os hipotéticos casos en los lo s que s e produj produj ese la anulaci anulación ón de una tercera tercera o sucesivas pregunta preguntass de las 1 4 iniciales, entonces entonces s ólo ól o en ese caso c aso,, las pregun preguntas tas tercera y sucesivas anuladas anuladas se considerarían como correctas (al no existir más preguntas de reserva que las sustituyan).

Pregunta 1: Según el texto de la bibliografía básica de la asignatura, un AayList tiene las siguientes características (indica la respuesta que  es correcta): a. b.

Puede Pued e increme incrementar ntar su capacidad intea intea si es necesario. Mantiene Mantiene su propio contador del número número de elementos alma almacena cenados. dos.

c. Mantie Mantiene ne el orden orden de alm almace acenam namien iento to de lo s elemen elementos tos . permit mitee la duplic duplicación ación de obj obj etos. d. No per

Pregunta 2: Según el texto de la bibliograa básica de la asignatura, ¿cuál de las siguientes clases  es una colección? a. ArrayList b. HashSet c. HashMap d. ArraySet

Pregunta 3: La presencia de dos o más constructores en una clase se llama: a. Herencia b. Abstracción c. Sobrecarga d. Métodos Método s inteos inteos siguiente código código : Pregunta 4: Dado e l siguiente 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

 

im mp port j av va a . util . Arr ra ayList; class Persona { p r i v a t e S t r i n g n om o mb r e ; p r i v a t e S t r i n g t e l e f o n o ; p ub ub l i c P e r s o on na (String n, Stri in ng t) { nombre n; telefono t; =

=

pu ub blic String ge et tN No om mb bre ( ) r et et u r rn n (no om mb r re e) ;

public class Prueba { private ArrayList amigos p ub ub l i c P r ru ue eb ba ( )

n ew ew A r r ra a yL yL i s t < P Pe erso on na> ( ) ;

{

a m i g o s . a d d ( ne n ew P Pe e rs rs o on n a ( " Pe pe " , " 1 2 3 4 " ) ) ; a m i g o s . a d d ( ne n ew P e er rs so on a ( " S a ar ra a"" , " 1 2 3 6 " ) ) ;

18 19 20 21 22 23 24 25 26

p ub ub 1 i c v o i d b o r r a r rA Am i g o ( S t r i n g n o om mb r e ) { for ( Person na a p : ami ig gos) { i f ( p . g et e t N o mb r re e ( ) . eq qu uals (no om mb re re ) ) a mi mi g go os . re em m ov ov e ( p ) ; S y s t em em . o ut ut . p r i n nt tln ("A Am m ig ig o b o r r ra ad do o ) ;

¿Cuál es el resultado de compilar 1 llamar el método b o r ra ra r rA Am i g go o ( Sara ) ? a. Se produce un error de compilación. b. c. d.

Se produce una excepción excepció n durant durantee la ej ecución Se produce un aviso(waing) viso(waing) durante la ejecución Se imprime imprime por pantalla pantalla el mensaj mensaj e: Amigo Amigo borrado y no se genera error error o excepción alguno alguno

Pregunta 5: Seg Según ún el texto de la bibliograa básica básic a de la asignatura asignatura,, el estado de un objeto objeto se denomina: a. El co njunto de parámeos parámeos que recibe y devuelve devuelve un obj obj eto. b. El conjunto conjunto de valores de todos todo s los atrib atributos utos que que denen denen al obj obj eto. eto . c . E l conjun conjunto to de campos campos y métodos métodos que componen componen e l objeto. objeto. d. Ninguna Ninguna de las ant anteriores. eriores. Pregunta 6 ¿Cómo se activan por primera vez las herramientas de prueba de JUnit en BlueJ? a. No es neces ario, ya vienen activadas. activadas. b . Con el botón derecho, seleccionan seleccionando do Activ Activar ar (Activate) JUnit c. A tr traavés de la pestaña pestaña Miscelán Miscelánea ea (Miscellaneous) del cuadro de diálogo Preferencias (Preferences) eren ces) . d. A través través del menú. Pregunta 7 Según el texto de la bibliograa básica de la asignatura, ¿qué es una aserción?: a. Una expresión que establece una condición que que espera esp eramos mos que sea ciera. b . Una expresión que resume la nción de un método. c. Una instrucci instrucción ón que que prueba la validez de una función. d. Ninguna de las respuestas anteriores. Pregunta 8 Si simplicamos el ejemplo PhotoPost del libro de la asignatura de la siguiente manera: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

p ub ub l i c c l a s s P o s t { private String usuario; p ub l li i c Pos t ( ) { } p ub ub l i c P o s t ( S t r i n g a u t o r ) usuario autor; =

class PhotoPost extends Post priva at te String file ; p ub ub l i c P Ph hot to oPost ( String autor,

String file )

{

XXX

th i s . f i l e

=

file;

¿Qué tenremos que añadir a la línea 13, en vez de X, X , para asignar el valor de autor a variable usuario en la clase Post?: a . su up p er er ( ) ; b. usuario autor; c . su up pe er r (au ut to or r) ; d . su up per. usua ar rio autor; =

=

Pregunta Pregunt a 9  Según el e l texto texto de la bibliografía bibliografía básica de l a asignat asignatura, ura, caracteriz caracterizan an los campo campos, s, constructores constructores y métodos de la siguiente forma:

 

l. 2. 3.

. . . implementa implementan n el com co mporamiento poramiento de un obje objeto. to. . . . almacenan da datos tos de manera manera persistente dentro dentro de un obj obj eto. . .. son responsabl responsables es de garanti garantizar zar que un objeto s e congur conguree apropiadamen apropiadamente te a crearlo por primera primera vez.

¿Qué denición denición corresponde con que térmi término? no? a. Campos Campos = 1 , Constr Construc uctor tores es = 2, Métodos Métodos = b. Ca Cam mpos = 2, Cons Construct ctor ores es = 1 , Méto Método doss = Campo poss = 2 , Cons Co nstr tructo uctores res = 3 , Métodos = c . Cam d. Campos Campos = 3, Constr Construc uctor tores es = 2, Métodos Métodos =

3. 3. l. l.

Vewe r: Pregunta 10: Dado el siguiente agmento de código del ejemplo del libro Image Vewer: 1 p ri v a t e v o i d m a k eM eM e en n u Ba Ba r ( J F ram ram e f ra m e) { final int SHORTCUT MASK = T o o l k i t . g e t De De f au au l t T o o l k ki i t ( ) . g e tM tM e n u uS S h or o r t cu c u t Ke Ke y yM Ma s k ( ) ;

2 3 4 5 6 7 8 9 10 11 12

JMen u B a r m enu enu b a r = n ew ew JM JM enu enu B a r ( ) ; f r a me me . s e t JM JMe n uB uB a r ( m en en u ba ba r ) ; JMenu menu; JMenutem item; // generar menú de preferencias XXX

Si se quisiera añadir u una na nueva enada en la barra de menús con e l nombre Preferencia Preferencias, s, ¿que habrá que añadir en la línea 1 3 en vez vez de X?: a. b. c. d.

menu menu = new JMenutem("Pref JMenutem("Preferencias" erencias"); ); men menuba ubar.add(menu r.add(menu)) ; menu menu = new JMenu("Preferen JMenu("Preferencias cias") ") ;  ame. ame.add(m add(menu); enu); menu menu = (Jmenu)new (Jmenu)new JMenutem("Pre JMenutem("Prefferencias") ; men menubar ubar.add(menu); .add(menu); menu menu = new JMenu("Preferen JMenu("Preferencias cias") ") ; m menu enubar.add(men bar.add(menu); u);

Pregunta 11: Según el texto de la bibliograa básica de la asignatura, para crear una representación de un objeto en forma de String tenemos que implementar el método: a. getString() b. toString() c. printString() d. parseString() Pregunta Pregunt a 12 : Se quiere proporcionar proporcionar dos consuctores en la clase clas e del reloj ClockDisplay Clo ckDisplay del libro para iniciar iniciar el reloj de dos formas difer diferentes entes (jando las la s horas y los minutos minutos y j j ando los minutos y los segundos) se gundos) : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

 

pu ub b l i c C l o c k D i s p l a y ( i n t ho ho u r ,

{

i n t m i nu nu t e )

h o u r s = n e w N um um b e r D i s p l a y ( 2 4 ) ; mi in nu ut t e s = n ew ew Nu Nu m b e r D is i s p la la y ( 6 0 ) ; s e c o n ds ds = ne ne w N um um be be r D i s p l a y ( 6 0 ) ; s e t T im i m e ( h o u r , m in in u te t e , s e c o nd nd ) ; t h i s . h o ur ur = ho ho u r ; this . mi in n u te te m i n u t e; t hi h i s . s e co c o nd nd =  ;

pu ub b l i c C l o c k D i s p l a y ( i n t m i nu nu t e ,

i n t s e c o nd nd )

{ h o u r s = n e w N um um b e r D i s p l a y ( 2 4 ) ; mi in nu ut t e s = n ew ew Nu Nu m b e r D is i s p la la y ( 6 0 ) ; s e c o n ds ds = n e w N um um be be r D i s p l a y ( 6 0 ) ; s e t T im i m e ( h o u r , m in in u te t e , s e c o nd nd ) ; t hi h i s . h ou ou r =  ; this . minu ut t e = m i nu nu t e ;

20 21

t hi hi s . s e c co o nd nd

s ec o n d ;

¿Cuál es e l resultad resultadoo d e compilar compilar  llam llamar ar al consuct consuctor or con los valores 2 y 1 5? a. Generam Generamos os un objeto objeto Clockisplay con la hora 02: 02 : 1 5 :0 0 b. Gene Generam ramos os un objeto objeto Clockisplay Clockisplay con la hora hora 0 0: 02: 1 5 Tant ntoo la respuesta respuesta a como l a b so n posibles. c. Ta d. Se produc producee un error error de de compilación compilación en la línea 1 2 .

Pregunta 13: Para denir una nueva clase de excepción, como se ha hecho en el ejemplo libro, sep uhace forma: 1 b 1 i cde cla1 asiguiente s s N o M aforma: t c h i n g D et a i 1 s E x c ep t i o n ex t en d s 2 3 4 5 6

XXX

AddressBook

del

{

p ri v a t e S t ri n g k ey ; pu ub b 1 i c No No M Ma a t c h in i n g De De t a i 1 s E x ce ce p t i o n ( S t r i n g ke ke y ) th i s . k e ey y key;

{

=

¿Que habrá que que añadir añadir en la línea 1 3 en vez de X para declarar declarar cor correcta rectament mentee llaa nueva nueva clase? : a. RunException b. Exception c. IOException d. java.util.Exception

Pregunta 14: Si s e quiere quiere inserar el siguiente siguiente método en la l a clase de la máquin máquinaa expendedora de billet billetes, es, ¿cuál es el resultado de compilar  ejecutar el método con un valor de coste de 50? 1 2 3 4 5 6 7 8 9

pu ub b 1 i c v o i d p r ob ob a r D i n e r o ( i n t d i n e r o ) { 50) { i f (d i n ero S y st st e m . o u ut t . p r in i n t ln l n ( " N o s e ad adm i it ten billetes de 50€. " ) ; =

else S y s t em em . o u t . p r i n tl tl n ( " I m mp p r e s i ó n de b i l l e t e en c u r s o . " ) ;

a. Se produce un error de compilación en la línea 3. b . S e produc producee un error error de ejecución ejecución en l a línea 4. c . S e imp imprim rimee por pantalla pantalla e l mensaj mensaj e: N o s e admite admiten n billetes de 50€. d. Se imprim imprimee por pantalla pantalla el m mensa ensajj e: Impresión de billete en cu curso rso .

Reserva 1: Supongamos que reescribimos una parte de la simulación de los zorros y los conejos del libro de la forma que se muestra a continuación: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

im mp po or r t j a va va . u t i l . L i s t ; p u b l i c a b s t ra c t c l a s s A n i m a l p ub l li i c An im im a l ( ) { } a b s t r a ct ct p u b l i c v o i d a c t ( L i s t a = n e w A r r a y yL Lis t Tanto ( a) como ( e ) resuelven el problema.

(5) ;

código o que se pue de encontrar en e l te text xto o base d e la asignatura, regunta 7 : Queremos compila r el sigu iente códig

 

conveni conv eni ent entemente emente modifi modificado. cado. ¿Qué ocurre al com pilarlo co conn BlueJ? 1 2 3 4 5 6 7 8 19 0 11 12 13 14 15 16

a. b. c. d.

i mp mp o rt r t j ava . u t i l . L i s t ; public abstract class Animal { private boolean alive; privat te e Strin g fiel d; private String location; p u b l i c a b s t r ac a c t A ni ni m ma al (Str ing field , {

String location)

alive tru e; t h i s . f i el el d field; t h i s . l o ca ca t i io on location; =

=

=

a b s t r a c t p ub ub l i c v o i d a c t ( L i s t < A ni ni m ma a l > n e wA wAn i ma ma l s ) ;

Compila, no propor proporcionando cionando ningún err error or en tiempo de compilación. No compila. Se soluciona sustituyendo la línea 15 por la siguiente: p u b l i c a c t ( L i s t n ew ewA n i m ma als ) ; No co compil mpil a. Se soluciona sustitu sustituyendo yendo la línea 15 por la siguiente: p u b l i c a b s t r a c t a c t ( L i s t n ew ewA n i m ma als ) ; Ninguna de la s ante anterior riores. es.

void void

texto o de l a b ibliogr ibliograf afía ía básica de la asignatura asignatura,, la s su bclases de E r r o r suelen estar regunta 8 : Según el text reservadas para ... reservadas a. Los erro errore ress del sistema en tiempo de eejecución. jecución. b. Los errore erroress del sistema en tiem po de compi laci ón. c. Los erro errore ress de p prog rogramación ramación en tiemp tiempo o de compilación. d. Ni nguna de las anteriores. texto o de la bibliogra bibliografí fíaa básica de la as ignat ignatura ura,, ¿c uál es el m éto étodo do im pre prescindi scindi ble y que regunta 9  Según el text ha de implementarse siempre de la interfaz S e r i a l i z a b l e cuando queremos implementar la serialización? a. El mét método odo IOWrite. b. El mét método odo ln putOutp utWr utWrite. ite. c. El mét método odo WriteOutput. d. Ni nguno de los anteriore anteriores. s. regunta 10: Queremos compil ar el sigu iente código que se pued e encontrar en el te text xto o base de l a asignatura

y que ha sido convenientemente modificado. El programa compila sin problemas pero no muestra por pantall a el te text xto o "Ejempl o de te text xto o.. ¿ Qué tendríamos que añad ir / modificar para se mostr mostrase? ase? 1 2 3 4 5 6 7 8 19 0 11

 

im mp p o r t j av a . a w wt t.*; i mp mp o rt r t j av a . a w t . e ve ve n nt t. *; im imp p ort j av avax ax . s wing . * ; pu ub b l ic cla s s I m mag ag e eViewer Viewer { private JFrame frame ; p u b l i c Im I m ag ag eV eV i ew ewe r ( ) { m a ke ke F Fr ra am me ( ) ;

12 13 14 15 16 17 18 19

p r iv iv a t te e void ma ak k e F r am am e ( ) { frame n e w J F ra ram e ( " I ma ma g ge e Vi Vi e w er er " ) ; Container contentPane fr ra ame . g e et tC Co on nt te en nt tP Pa an ne ( ) ; J Lab e  ab e n e w JL a ab be ( "E jem mp p  o de te te x t o " ) ; co on nt te en nt t Pa P a ne n e . a dd dd (  a ab be e ) ; f ra r a me . s et et V Vi isib e e ( t r ue ue ) ; =

=

=

a.

Aña dir entre las líneas 9 y 10 lo siguiente: frame . s etVi s i b  e ( tru e ) ; y eliminar la l ínea ínea 17.

b. c. d.

ame . pa pa c k ( ) ; Añadir entre entre las líneas 15 y 16 lo siguiente: f r am Aña dir entre las líneas 16 16 y 17 lo sigu iente: f r am ame . pa pa c k ( ) ; Sustituir Sustituir la línea línea 17 po r lo siguiente: siguiente: f r am am e . p a c k ( ) ;

xto de la bibl iograf iografía ía básica de la asignatura, ¿qué d efine el términ términ o acoplami ento? ento? regunta 1 1 : Según el t exto a. b. c. d.

La bondad de la corre correspondencia spondencia entre entre una unid ad de código código y una tare tareaa lógica lógica o entidad. La interconexión existente existente entre clases, buscando un acopl ami ento lo menor posib le. La capacidad capacidad de un objeto objeto de comportarse comportarse como otra otra clase de la cual proviene. proviene. Ni nguna de las anteriores. anteriores.

mostrada ada en el li br bro o regunta 12: Sea el siguiente fragmento de código modificado de la clase M a i  I t e m mostr de texto: pub1ic c1ass Mailtem {

1 2 3 4 5 6 7 8 9 10 11 12 13 

14 15 16 17 18

s st ta at t ii c c SS t trriinng g ftroo; m ; static String message; int number; p u b1 b1 i c s t a t i c v o i id d ma i n ( S t r i n g a r g gs s[] ) Mai 1 I t e em m m = n e w Ma i 1 I t e em m ( H Ho o 1 a  , Ad i o os s , Sy ys s t em em . o ut ut . p r i in n t1 t1 n ( " F u un nc i o on n a a ) ;

pub1ic Mailtem ( String from, this . fro om m = from; th hi is . to = to; th hi i s . me s s a g ge e = message; this . nu um mbe er r = n nu u mb mb e r ;

String to ,

L Lu u eg e go  ,

String message,

3) ;

i n t n um umb e r ) {

¿Cuál es e l re resultado sultado de ejecutar jecutar el código? código? a. Se produce un error de compilación b. Se produce produce un error error de ejecución en la línea 9. c. Se produc e un error de ejecución en la línea 16. d. Ninguna de la s anterior anteriores. es. texto de la bibl iograf iografía ía básica de la asignatura, ¿qué podemos afirmar sobre sobre las pruebas regunta 1 3 : Según el texto de regre regresión? sión? a. La modificación de softw software are acarrea con mucha facil facil idad errores errores ad icio nales de software. software. b. Las pruebas de regr regresión esión sobre sobre un mó dulo determinado tras tras haberse hecho hecho una modificación del del código pueden o bviarse bviarse si no se real real izan cambios en ese módu lo. c. Los marcos marcos de regr regresión esión permiten automatizar las pruebas de regr regresión. esión. utomatizan, es más probabl e que l as pruebas de re regresión gresión se lleven a cabo. d . Si no se a utomatizan, texto de la bi bl iografí iografíaa bás ica de la asignatu ra, ¿q ué podem os afirmar sobre el concepto concepto regunta 14: Según el texto

 

de a. b. c.

susti sustitución? tución? Pueden ut iliza ilizarse rse obje objetos tos de un su per pertipo tipo en cualquier lugar en el qu e se esper esperaa ob obje jeto toss de un su btipo. Permite cr crear ear objetos de un clase que es abstracta. Permite qu e una variab le al macen a objetos de diferentes tipos (en concret concreto, o, del ti tipo po declarado o de cualquier supertipo del tipo declarado). anteriorres d . Ninguna de las anterio

RESERVA 1: Si

una clase B ex extien tien de una clase a bst bstra ract ctaa A que ti ene un mét método odo abstr abstrac acto to met, ¿qué podemos

afirmar? a. Que necesariamente B es abstra abstracta cta.. b. c. d.

Que si B im ple menta el método met, entonc es segu ro que B no es abstracta. Que no se pued en ccrear rear instancias de A. Que puedo cr crear ear instancias de A A..

Según el text texto o de la b ibli ogra ografí fíaa básica de la asignatura, ¿qué pued e usarse par paraa generar la descripción d e las inter interfac faces es de las clases a partir del código fuente fuente?? a. JDK b. JUnit c. Code Pad d. Ninguna de las anteri anterior ores es RESERVA 2:

PUNTOS] : PARTE PRÁCTICA [6 5 PUNTOS] La Práctica del presente pre sente curso es diseño e implementación de un un sistema integrado integrado de gestión de unaelbiblioteca biblioteca ( a parir de(que ahora, Sdesde IGB).).elEn general, funciones funcioneshasta que tienen un SIGB son varias varilas as según perl de (a su usuario vaSIGB usuario de las la biblioteca su director) e incluyen siguientes: Adquisiciones: la compra de materiales (libros en diferentes formatos, audiolibros, CDs de música, películas en DVD, etc.), gestión de compras, facturación, etc. Catalogar: la clasicación e indexación de los materiales de la biblioteca. Préstamos: prestar los materiales a los usuarios (tanto en papel como en otros formatos), reservas de materiales materiales ya en préstamos, préstamos, control de préstamos préstamos (emisión de avisos de materiales materiales era de plazo), plaz o), gestión de multas multas.. Suscripciones: gestión de las suscripciones a revistas y periódicos. Catálogo en línea u OPAC OPAC (del (d el inglés Online Public Access C atalog): atalog) : interfaz interfaz pública a los servicios de la biblioteca (búsquedas, (búsquedas, gestión de pres prestam tamos os,, etc.). etc. ). Gestión de usuari usuarios os:: altas, ba b ajas, jas , generació generación n de tetas, tet as, histor historiales. iales. •











Funcionalidades

Los SIGB permiten la implementacin desde labores simples de gestin de una alta de usuario, hasta operaciones ms complejas como es la gestin de préstamos o inventario. En esta prctica, se propondrn dif difere erentes ntes funcionalidades para el e l sistema de gestión bibliotecaria: bibliotecari a: Añadir nuevos nuevos materiales materiales a la colección cole cción de la biblioteca bibliotec a (rellenando (rellenando los datos datos de un form formular ulario) io).. Cada tipo de material debería tener su propia colección (libros, revistas, periódicos, audio, video, etc.). Borrar materiales de la colección. Realizar búsquedas sencillas sobre los materiales. Gestionar suscripciones a revistas y periódicos. Gestión de usuarios: altas, bajas, generación de tetas, historiales de préstamo, control de acceso (diferenci (dif erenciar ar entre entre dos perle pe rles: s: usuarios usuarios y bibliotecarios). bibliotecarios) . •

• • • •



 

Realización básica de Préstamos: prestar un material si está disponible en la biblioteca, asignar fechas de d e devolución. devolución.

• •



• •





Producir listados de préstamos según el tipo de mater Producir material ial.. Realizar búsquedas exibles sobre los materiales en la biblioteca combinando varios campos de búsqueda. Control de préstamos: número máximo de ítems de préstamo (6 por usuario, independiente de tipo de material), material), emisión de av aviso isoss de mater materiales iales fuer ueraa de pl plazo azo,, gestión de m multas, ultas, etc. Producir listados de los materiales prestados. Realizar búsquedas exibles sobre los materiales en varias bibliotecas a la vez combinando varios campos de búsqueda. Préstamos Prés tamos entr entree bibliotecas : poder p oder soli solicita citarr mate materiales riales a otras bibliotecas y procesar las ssolicitudes olicitudes de otras bibliotecas. El procesamiento de dichas solicitdes se lleva a cabo usando archivos de solicitud de la siguiente man manera: era: o Preparar y exporar una lista de solicitudes de materiales que se quiere hacer a una biblioteca. Se prepara la lista usando un formulario para identicar el nombre de la biblioteca, el nombre del libro, el autor y el nombre de esta biblioteca. Una vez terminado, se guardar la lista en un archivo de texto. No es necesario en esta práctica preocuparse de cómo se enviaría enviaría el arch archivo ivo a otras biblioteca bibliotecas. s. o Imporar y procesar un archivo de solicitudes para materiales proveniente de otra biblioteca. Se debe actualizar el estatus de cada material para marcarse como prestado, pero en vez del identicador del usuario usuario debería aparecer el identicador identicador de la bibliotec biblioteca. a. Control de reservas: poder reservar un material si está ya prestado, gestión de avisos (al usuario con el material que convendría devolverlo porque hay alguien esperando y al usuario con la reserva cuando el material ya está devuelto).

a)

[1 ,0 puntos] puntos] Diseñar utilizando un paradigma orientado a objetos, los elementos necesarios para la aplicación explicada de d e llaa práct práctica ica dura durante nte el curso. Es nece necesario sario identi identicar car la estru estructu ctura ra y las relaciones de herencia (mediant (mediantee el uso de un diagra diagrama ma de cl clases) ases) y de uso de llas as cclases lases n necesarias ecesarias para almacenar y gestionar esta información. Debe hacerse uso de los mecanismos de herencia siempre que sea posible. Se valorará un buen diseño que favorezca la reutilización de código y facilite su mantenimiento. mantenimiento. b) [1,5 puntos] Implementa un método (o métodos) que permitan la imporación (cargar al programa) de los diferentes usuarios que hay en el sistema de gestión de biblioteca. Justiquese las opciones y decisiones que se tomen. e) [3,0 puntos] Implementa un método (o métodos) que implementen el proceso devolución de un préstamo. prést amo. Deberá tenerse en cue cuenta nta las im implicacio plicaciones nes que un préstamo puede acarre acarrear: ar: sanciones (si se entrega fuera de plazo), actalización de cheros que contienen los préstamos (indicar la solución que se plantea en este caso), actualización de las reservas que haya sobre ese libro, etc.

Justiquese las opciones y decisiones que se tomen. d) [1,0 puntos] Proporcione un método (o métodos) que permita mostrar por pantalla un formulario básico en modo gráfc que permita permita gener generar ar las estadísticas de los préstamos q que ue se enc encuen uentran tran almacenados en un chero. La pantalla permitirá elegir entre dos listados: libros más prestados, usuarios usu arios más acti activos vos (con mayo mayorr nú númer mero od dee préstam préstamos os).). Pedirá u un n ran rango go d e fechas fechas y aplicará es esee criterio a la hora de buscar los contenidos en los cheros. Los mosará por pantalla de mayor a menor. Se pide expresamente la par paree gráca. El objetivo es ver el conocimie conocimiento nto y destre destreza za en el uso de llas as libre librerías rías Swing y y/o /o AWT. No des ar arrolle rolle có código digo as asocia ociado do a la ffun uncionalidad cionalidad del préstamo. Justiquese las opciones y decisiones que se tomen.

 

U NIVERSIDA NIVERSIDAD D ACON ACONAL AL DE  DCACIÓN DCACIÓN A ISTANCI ISTANCI - SCELA ÉCNICA PERIR DE DE  NEN IERÍA IERÍA  NFORMÁTIC NFORMÁTICA A 7191 072 072 - RRAM RRAMCIÓN CIÓN RE  RENADA NADA A BJETOS (GRADO EN NENIERA NE NIERA NFORMÁTCA  ECN ECNOLO OLOÍAS ÍAS DE LA NFORM IÓN

 

PUNTOS]: PART ARTEE EÓRICA - ES EST T [2 5 PUNTOS]: El test consta de 1 4 preg preguntas untas y 2 pregunta preguntass adicionales de resera. reser a. So lo una de las respuestas es válida. Las respuestas correctas se puntuarán con + l .O, . O, mientras que las respondidas de manera incorrecta se puntuarán con - 0. 25 . La Lass no contestadas no ten tendr drán án infuencia infuencia ni ni pos iti itiva va ni negativa negativa en la nota. Las preguntas preguntas de resera sólo tenrán utilidad utilidad en el caso de que alguna de las 1 4 preguntas preguntas iniciales del test sea anulada por cualquier cualquier circun circunstancia. stancia. Caso Ca so de ocurrir ocurrir este hecho, hec ho, si se produj produj era la anulación anulación de alguna alguna de las 1 4 preguntas preguntas iniciales, iniciales , la primera primera pregunt preguntaa de reserva sustituiría sustituiría a la pregunta pregunta anulada. anulada. Caso de que una segunda pregunt preguntaa de las 1 4 iniciales ese anulada, anulada, entonces la segunda pregunta pregunta de reserv res ervaa sustituiría sustituiría a esta segunda pregunta anulada. En aquellos hipotéticos casos en los que se produjese la anulación de una tercera o sucesivas preguntas preguntas de las 1 4 inicial iniciales, es, entonces sól s óloo en ese caso, cas o, las preguntas preguntas tercera tercera y sucesivas anuladas se considerarían como correctas (al no existir más preguntas de reserva reserva que las sustituy sustituyan). an). afirmaciones firmaciones es cor correc recta: ta: regunta 1 : Ind ica cua l de l as siguie ntes a a. b. c. d.

La signatur signaturaa está formada po r los parámetr parámetros os de un método y pr propor oporciona ciona la i nf nformación ormación n ecesaria para invocarlo. La signatur signaturaa es el encabezado de u n método y puede tener parámetr parámetros os par paraa propor proporcionar cionar información información ad icional para re realizar alizar un a tarea. La signatu ra es el encabe zado de un método y proporciona la inf informaci ormaci ón necesaria para invocarlo. La signatura es el nom bre de u n mét método odo y puede tener parámet parámetros ros para pr propor oporcionar cionar inf información ormación adicio nal para realizar una tarea.

seguid guid o en los ejemplos de l te text xto o de l a bib liogr liograf afía ía básica de la asignatura en regunta 2 : Ind iqu e el orde n se cuanto a la parte interna de u na clase: puli css el

{ PART IERN D UN CLASE

a. b. c. d.

Constructores, M étodos Constructores, étodos y Campos Métodos, Constructores y Cam pos Campos, Constructores y Métodos Campos, Métodos y Constructores

fragmento agmento de cód ig igo: o: regunta 3 : Dado e l sigu iente fr nt A = 9 ; fo  = 3  3 F  har  = � vJ i ; S y s te t em . o u u . prin nt t1n ( + B > 2) ; S y s te t em .    . prin nt t 1 n (  > = 8 && � ! = ' w  ) ; Sy ys st te em .    . p r i in nt t1 1 n ( ( C ==    )   ( ( h + " ".. )

==  2 ) ) ;

Ind ica cual será la salid a por pan pantalla talla (cada v valor alor en una línea diferen diferente): te): a. True true false b. True false false c. True false true d.

 

False false false

afirmaciones firmaciones es co corr rrect ectaa en relación a qu e tipo de b ucle se de be   regunta 4: Ind ica cual de las siguie ntes a utilizar: a. Si tenem tenemos os un b ucle que no está rrelacionado elacionado ccon on colec colecciones ciones habr habráá que elegir el buc le ffor-e or-each ach b. El bucl e ffor or es pref preferib erib le si, al principio del bucle, no sabemos cuanta cuantass vece vecess tenemos que ejecutarlo. c. Si necesitamos iterar a través de todos los elementos de una colección, el bucle for-each es casi siem pre la opción más elegante. d. El b ucle fo for-ea r-each ch es adecuado cuando nos hace falta falta utilizar de manera explícit explícitaa el con contador tador de l bucle. regunta 5 : Ind ica cua l de l as siguie ntes a afirmaciones firmaciones es cor correc recta: ta:

a. b. c. d.

Un objet objeto o de tip o SString tring puede ser modific modificado ado un a v vez ez qu e est estáá creado creado,, por tanto no es un ejemplo de objet objeto o inm utable utable Un ob objeto jeto es inm utab utab le si su con contenido tenido o su es estado tado no puede ser cambiad o una v vez ez qu quee se ha creado La clase SString tring tiene un método de nombre trim que permite modificar car caract acteres eres en cual quie r posiciónn de u na cadena posició Como regla general, las cadenas de ttex exto to de tipo SString tring se suelen comparar mediante el operador

afirmaciones firmaciones es cor correc recta: ta: regunta 6 : Ind ica cual de las siguie ntes a a. b. c. d.

Una cla se ccohesionada ohesionada repr represen esenta ta una entidad bien acoplada. Un mét método odo cohesiona cohesionado do ser seráá res responsable ponsable de varias tarea tareass bien def defin in idas. La segunda mayor vent ventaja aja de la cohesión es que o ofre frece ce un mayor pot potencial encial d e utilización. Las dos más important importantes es maneras en que u na alta cohesión ben efi eficia cia a un d iseño son el acoplami ento y la encapsulación.

regunta

a. b. c. d.

Ind ica cua l de l as siguie ntes aafirmaciones firmaciones es cor correc recta: ta: Un segui miento es la aactiv ctividad idad d e traba trabajar jar a través través de u n segment segmento o de ccód ód igo igo línea por línea, mie ntras se observan cambios de estado y otros comportami entos de la ap licació n. Un banco de pruebas es un conjunto de obj objetos etos en un estado ind efinido que sirven como base par paraa realizar reali zar pruebas de u nidades. La aserción es la ac actividad tividad de d escubrir si una pieza de código pr produ odu ce el comport comportamie amie nt nto o pretendido. Un a prueba es una expr expresión esión que es establece tablece una condición que esper esperamos amos que rresulte esulte verdadera. 7:

regunta 8 : Dada la sigu iente jerarqu ía de he rencia :

Ind ica cua l de la s siguientes asignaciones es ccorre orrect cta: a: a. Car el = new Vehicl Vehicl e(); b. Car c2 = new Vehicl Vehicl e(); c. d.

 

l =

Vehicle v asignaciones new Car(); ant T odas las anterior eriores es son ccorr orrecta ectas. s.

código o:   regunta9 : Dado el sigu iente códig publc las te stJu n io { i void setVar ( int int,, }

a,

  ft,

)

{

Y los siguientes métodos l.

2. 3. 4. 

5.

private void set private setVa Varr (int a, float , int b) { } pro protect tected ed void set setVar Var (int a, int b, floa floatt ) { } pub lic int set setVa Varr (int a, floa floatt , int b) {r {return eturn a;} pu bli c int set setVar Var (i nt a, int b, floa floatt ) {r {return eturn a; } protected protect ed float set setVar Var (int a, int b , float ) {return ;}

Ind iqu e qu é métodos permiten u na sobrecar sobrecarga ga del método set setVa Varr de m anera cor correc recta ta . 3 y 5 b. 3 y 4 . 1 y 2 d. 1 y 3

regunta 10: Ind iqu e cual de las siguientes opciones decla rará un método en una clase que fuerza a una

subclase a implementarlo a. sta static tic void methoda (doub le d ) {} b. c. d.

public nat native ive doub le methoda(); abstr abstract act pub lic void methoda() ; protect pro tected ed v void oid meth oda (doub le d ){}

afirmaciones firmaciones es cor correc recta ta en relación a un marc marco o de Swing regunta 1 1 : Ind ica cual d e las siguie ntes a (JFrame) Estáá compuesto de tr tres es par partes tes la barr barraa de título, una barr barraa d e me nú opcion al y los cuadros de a . Est diálogo. partes l a barra de tí títu tu lo, el pan el de contenid o y el gestor de los b ordes. b. Está compuesto de tres partes Estáá compuesto de ttres res par partes tes la barr barraa de tí título, tulo, un a barra de me nú opcion al y el panel de c. Est contenido. d. Est Estáá comp comp uest uesto o de cuatr cuatro o par partes tes la barr barraa de título, título, una barra de me nú opcional, el panel de contenido y el gestor gestor de lo s bordes. regunta 1 2 : Ind iqu e cual d e las sigu ientes af afirmaciones irmaciones es cor correc recta ta

Todas las ex excepciones cepciones no comprobadas son su bclases de a. Exception b. RunTimeException c. Throwable d. Error regunta 1 3 : Teniendo en cuenta el modelo en cascada presente en la construcción del software, indica

cual de a. b. c. d.

 

las sigu ientes fas fases es NO pertenece al des arrollo de sof software tware Análisis del problema. problema. Prueba Un itaria. Prueba Secuencial . Entr Entrega ega del sis sistema tema al cliente.

  regunta 14: La siguiente imagen corresponde a un pantallazo de la aplicación BlueJ. En la parte inferior

de recha hay un componente re rectangula ctangula r de Bl ueJ que en s u interior contiene la expresión 13 % 4� qu e a su vez vez está rodeada por u n rectángu rectángu lo intermitente. ¿Qué compon ente o herr herrami ami enta es eesta?: sta?: :�)} :: :::::: ::::::::::::::::::: :::::::::::: :::::}�? :::::::::::::::: }�?   .   . . . . . . . . .  . . . . . . . . .  . . . . . . . . . .  . . . . . . . ..  .   . . . . . ..  . . . . . . . ..  . . . . 

.

• �t .



.  � � :  �    � � :  �  :

 

   � l¡  

-'  ;:

" ·[      ::    �,>/ . :1 • � .                    :  !. ! . .



.

    

\¡;

a. b. c. d.

Code Add Code Exp Code Pad Cod e Area

regunta Rl: Ind ica cual de las si guiente guientess afirmaciones es cor corre rect cta: a:

a. b. c. d.

Un Un Un Un

mapa es map a es mapa es mapa es

una colección que al macena pares llave llave//valor ccomo omo e ntr ntradas. adas. una col ección que al macena tríos ll av ave/ e/índice/v índice/valor alor como entradas. una colección que al macena pares índice índice/v /valor alor como entr entradas. adas. una colección que almacena tríos índice índice/po /posición/ sición/v valor como e ntr ntradas. adas.

regunta R2: Ind ique e l resultado de ejecu ejecutar tar el siguiente cód código igo que se muest muestra ra a cont contin in uación:

pul cass t e s t { ic sic vod

ad dd d3 ( Integer i )    v a l = i . i nt ntV a l lu ue ( ) ; v a l += += 3 ; i =

new

I n t e ge ge r

(val) ;

 t i

ma ai in (Str ri in ng g ar rg gs [ ] ) Integer i =  I n t e g e r ( 0 ) ; add3 ( i ) ; S y st s t em em . o   . p r i in ntl ln n ( i . i nt n tV al a l ue ue ( )

a. b. c. d.

 

) ;

El progr programa ama i ndicará un fallo en tiempo de compilación El prog programa rama im prime por pant pantall all a el valor m El prog programa rama i mprime por pant pantall all a el valor 1 10 0 El programa lanzará u na ex excepción cepción en l a l ínea 3 (int val = i.intValue();)

PUNTOS] : PARTE PRÁCTICA [6 5 PUNTOS] La Práctica del presente curso es diseño e implementación de un sistema integrado de gestión de una bibliote biblioteca ca (a partir de ahora, 51GB). En gener general, al, la s fun funciones ciones que tienen un 51GB so n v varias arias se según gún e l perfill de s u usua rio (que va desd e el usu ario de la bibl ioteca perfi ioteca has hasta ta su direct director) or) e incluyen las siguientes: • Adquisiciones: la compra de materiales (libros en diferentes formatos, audiolibros, CDs de música, películas en DVD, etc.), gestión de compras, facturación, etc. Catalogar: alogar: la clasificación e in dex dexación ación de los materiales de la bibl ioteca. ioteca. • Cat • Préstamos: prestar los materiales a los usuarios (tanto en papel como en otros formatos), reservas de materiales ya en prés préstamo tamos, s, contr control ol d e prés préstamos tamos (e misión de avisos avisos de materiales fuera de pl azo), ges gestión tión de multas. gestión tión de l as suscripciones a rev revista istass y periódicos. • Suscripciones: ges OPAC AC (del inglés Onl in e Pu bli c Access Catalog): inte rfaz rfaz públ ica a los servicios de la • Catálogo en l ínea u OP bibl iote ioteca ca (bú sque das, ges gestión tión d e pres prestamos, tamos, et etc.). c.). ltas, bajas, genera generación ción d e ta tarje rjetas tas,, h ist istoriales. oriales. • Gestión d e us uarios: a ltas, Funcionalidades

Los 51GB permiten la implementación desde labores simples de gestión de una alta de usuario, hasta operaciones más complejas como es la gestión de préstamos o inventario. En esta práctica, se propondrán d iferent iferentes es funcionalid ades para el sistema de ges gestión tión bi bliotecaria:  Añadir nuevos materiales a la colección de la biblioteca (rellenando los datos de un formulario). Cada tipo d e material deb erí eríaa tener su propia colección ( li bro bros, s, revi revista stas, s, periód icos, icos, aud io, video video,, etc.).    



 



 





Borrar materiales de la colección. Realizar búsqued as sencill as sobr sobree los materiales. Gestio nar suscrip ciones a revist revistas as y periód icos. Gestión de usuarios: altas, bajas, generación de tarjetas, historiales de préstamo, control de acceso (diferenciar entre entre dos pe rf rfiles: iles: usua rios y bibliotecarios). Realización básica de Prést Préstamos: amos: pre prestar star un material si está dispon ibl e en la bib lioteca lioteca,, asignar ffechas echas de d evolución. Producir l istados istados de prést préstamos amos según el tip o de material. Realizar búsquedas flexibles sobre los materiales en la biblioteca combinando varios campos de búsqueda. Control Contr ol de prés préstamos: tamos: n úmero máximo de ítems de prést préstamo amo (6 por usuario, inde pen diente de tipo de material), em isión d e avis avisos os de materiales fuera de plazo, ges gestión tión d e mu lta ltas, s, etc. Producir l istados istados de los materiales pre prestados. stados. Realizar búsquedas flexibles sobre los materiales en varias bibliotecas a la vez combinando varios campos de búsqueda. Préstamos Prés tamos entre bi bliotecas: pode r solicitar materiales a otras bibliotecas y procesar procesar las solicitud es de otras otr as bibl iote iotecas. cas. El proc procesamie esamie nto nto de d ichas solicitudes se lleva a ccabo abo usan do ar archivos chivos de solicit ud de la siguiente manera: manera: Preparar y eexpor xportar tar una lista de solicitudes d e mat material erial es que se quiere hacer a una bibl ioteca ioteca.. o Se prepara prepara la li sta sta usand o un formulario para ide ntif ntificar icar el nom bre de la bib liotec lioteca, a, el nom bre de l li bro bro,, el a utor utor y el nombre de es esta ta bibl ioteca. ioteca. U na vez terminado, se guardar la lista eenn u n archivo de texto. No es n ecesario e n esta prácti práctica ca preocup arse de cómo se e nviaría el archivo a otras bibliotecas. I mportar y procesar un archivo de soli citud es para materia les prov proven en iente de otr otraa b ibl ioteca. Se o debe actualizar el estatus de cada material para marcarse como prestado, pero en vez del ide nti ntificador ficador del us uario debería apar aparecer ecer el ide ntif ntificador icador de la bibl ioteca ioteca.. Control de reservas: poder reservar un material si está ya prestado, gestión de avisos (al usuario con el material qu eestá conv convend ría dev devolverlo olverlo porque hay alg uie n esperando y al usu ario con la reserv reservaa cuand o el material ya est á deend vuelto).

 

a)

b)

e)

[1,0 puntos] Diseñar utilizando un paradigma orientado a objetos, los elementos necesarios para la aplicación explicada de la práctica durante el curso. Es necesario identificar la estructura y las relaciones relaci ones de heren cia (mediante el uso de un diagr diagrama ama d e clases) y de uso de las clas clases es necesar necesarias ias para almacenar y gestionar esta información. Debe hacerse uso de los mecanismos de herencia siem pre que sea posible . Se v valorará alorará un buen d iseño que favo favorezc rezcaa la reutil ización de código y facilite su mantenim iento. [2,0 pu ntos] Im pleme nta un método (o métodos) que permitan añadir nu evo evoss materiales a la ccolección olección de la biblioteca (rellenando los datos de un formulario). Cada tipo de material debería tener su propia colección ( li bro bros, s, revi revista stas, s, periódicos, aud io, video, etc etc.).) .

[2,0 puntos] Implementa un método (o métodos) que permitan la importación y procesamiento de un archivo de soli citudes para materiales proveniente de otra bibl iotec iotecaa (p réstamos entre bibliotecas). Se de be actualizar el estatus de cada m aterial para ma rcarse como pr prestado, estado, pero en vez del i dentificador del usua rio debería aparecer el ide ntifi ntificador cador de la bibl ioteca. d ) [1,5 puntos] Para la siguiente versión del software se desea añadir la figura de la Editorial. De cada editorial editori al se debe tener un listado de los l ibros y audiol ibros que propor proporcion ciona, a, así com como o su prec precio io,, q ue podría actualizarse manu alm ente después de la ú ltima venta. El sistema debería consultar el inventario a final de año, y de los li bro bross más prest prestados ados (top 10%), realizar un pedido a la Editorial correspondiente de un 20% más de libros. El porcentaje de libros más prestados y el porcentaje de libros pedidos a las Editoriales, podrán ser configurables dependiendo del presupuesto de la biblioteca. ¿Qué cambios serían necesarios en el diseño para adaptar esta nueva funcionalidad? Implemente el método (o métodos) que permita esta esta nueva funcional idad .

 

UNVRSIAD NACJOL DE EDCAIÓ A DISA - EU TÉI PR  GNE IFO.ÁTlCA

71 902 � PRO PROG GMCÓN MCÓN I IET ETDA DA  BTS (GRO EN IGENIRÍA F 1 OGÍ . LA NFOCÓ)

PT  PT MB MB. . 2016 - MOEL - No EÁ PRM L US D MIL OL

PUNTOS] : PARTE RTE EÓRICA EÓRICA - EST [2 5 PUNTOS] El test consta de 1 4 preg preguntas untas y 2 pregunta preguntass adicionales de resera. reser a. So lo una de las respuestas es válida. Las respuestas correctas se puntuarán con + l . O, mientras que las respondidas de manera incorrecta se puntuarán con - 0. 25 . La Lass no contestadas no ten tendr drán án infuencia infuencia ni ni pos iti itiva va ni negativa negativa en la nota. Las preguntas preguntas de resera sólo tenrán utilidad utilidad en el caso de que alguna de las 1 4 preguntas preguntas iniciales del test sea anulada por cualquier cualquier circuns circunstancia. tancia. Caso C aso de ocurrir ocurrir este hecho, hec ho, si se produj produj era la anulación anulación de alguna alguna de las 1 4 preguntas preguntas iniciales, iniciales , la primera pregunta pregunta de reserva sustituiría sustituiría a la pregunta pregunta anulada. anulada. Caso de que una segunda pregunt preguntaa de las 1 4 iniciales ese anulada, anulada, entonces la segunda s egunda pregunta pregunta de resera sustitu sustituiría iría a esta segunda pregunta anulada. En aquellos hipotéticos casos en los que se produjese la anulación de una tercera o sucesivas preguntas de las 14 iniciales, entonces sólo en ese caso, las preguntas tercera y sucesivas anuladas se considerarían como correctas (al no existir más preguntas de reserva reserva que las sustituy sustituyan). an). ejecutar el sigui ente código? regunta 1: ¿Cu ál es el resultado de ejecutar  . pub l i c a b s t r a ac c t c l a s s C l a s eA eA { 2. p u b l i c f i n al a l v o i d me t o do do  ( ) 3 . 4 .

S y st st e em m . o ut ut . p r in i n t ln l n ( " C l a s eA eA  ) ;

 

5. 6. 7. 8. 9. 10 . 11 . 12 . 13 . 14 . 15 . 16.

a. b. c. d.

p u b l i c s t a t i c v o id i d m a i n ( S t r i ng ng [ ] ClaseA ob bjj n ew ew C l as as e eB B () ; o b j . me me t to o do do  ( ) ;

a r gs gs )

=

clas s ClaseB exten nd ds ClaseA { pu ub b l i c v o i d m e t od odo  ( ) { S ys y s te te m . o u t . p r i in nt tl l n ( " C la la s se e B B ) ;

ClaseA ClaseB Error de compilación en la línea 7 Err Error or de compilación en la línea 13

iografía ía básica, el que un cam po o mie mbro públ ico de una clase sea regunta 2 : De acuerdo a la bibl iograf estátic está tico o impl ica que: a. b. c. d.

 

Puedo acceder y modificar su valor sól o a trav través és de un objeto. objeto. Puedo acceder acceder y modificar modificar su valor valor sin necesidad de haber instanciado instanciado objeto objeto alguno. Todos los objetos objetos tienen u na cop ia de la variable. Es una variab variab le global y se puede usar directament directamente e en cualqui er lugar sin hacer ref referencia erencia a la clase correspondiente correspondiente y sin instanciar objeto objeto alguno.

texto o de la bibl iograf iografía ía básica de la asignatura, in diqu e cuá l de la s siguientes   regunta3 : Según el text afirmacion es es in correcta: correcta: a. b. c. d.

Las clases pue den ser abstractas. abstractas. Las diagramas de clases muestran muestran las clases de una aplicación y la relación relación entre entre ell as. Las clases deben contener contener al menos un miem br bro o de clase o campo. campo. Las clases pueden contener contener métodos.

definición de clases: regunta 4 : Dada la sigu iente definición  . pub l i c c l a s s C l a s e A { 2. p r o te t e c t ed e d vo vo i d me m e t od odo  ( ) 3. S y s te te m . o u ut t . p r i nt nt ( " E n t ro r o e n e l mé t o do do d e s d de e C l a s e A A ) ; 4 .  

5. 6. 7 . c l a s s C l a s e B e x t e nd nd s C l a s e A { p ub ub l i c v o i d m et et o d do o ( ) { 8. S y s te te m . o u ut t . p r in i n t ( " E n tr t r o e n e l mé t o do do d e s d de e Cl Cl a s e B  ) ; 9. 10 . 11 .

¿Qué salida obtendremos al ejecutar el siguiente código dentro de un método cual quie ra de las clases?

main

implem en entado tado en

15 . C laseA p n ew ew C l a s eB eB ( ) ; 1 6 . p . me to t o do do  ( ) ; =

a. b. c. d.

Entro en e l método desde Clas e A Entro Entro en el m étodo desde Clase B Error de compil ació n en en la línea 15 Error de compi compi lación en la línea 8

regunta 5 : Dado el siguiente código indicar cuál de las afirmaciones es correcta. Suponga que las

impo rtaciones de l ibrerías ibrerías correspondientes correspondientes se han realizado. realizado. 6. 7. 8. 9. 10 11 12 13 14 15

S e t < I n t e ge ge r > c o n j u n t o new HashSet < Integer > co on n j u n t o . a d d ( ne new I n nt te eg g er er ( 8 6 ) ) ; co on n j u n t o . add ( 7 5 ) ; =

co on n j u n t o . a d d ( ne new I n nt te eg g er er ( 8 6 ) ) ; c on o n j un un t o . add ( n nu ul ll l) ; c on o n j un un t o . add ( 3 0 9 ) ; Ite rator i co on n j un un t to o . i t er era t to or ( ) ; w h i l e ( i . h as as N Ne e xt xt ( ) ) { Sys t te e m . o ut ut . p r i n t ( i . n e x t ( ) ) ;

. . . . . .

=

a. b. c. d.

 

El código compil a si n errores errores La salida que se muestra es 8675null 309 La línea 6 produce un error error de compilación La línea 12 produce un error error de compilación

() ;

resultado d e ejecutar ejecutar el sigui ente código?   regunta6 : ¿ual es el resultado L i s t l i s ta t a = n ew ew A rr rr a ay y L i st st ( ) ; l i s ta t a . a dd dd ( " A AA A ) ; l i s t a . a dd ( " B B  ) ; l i st s t a . a dd ( 8 ) ; fo or r ( i nt nt n = =O O ; n < l i s ta ta . s i z e ( ) ; n + + ) S y s te te m . o u t . p r ri i n t ( l i st st a . get ( n ) ) ;

6. 7. 8. 9. 10 . 11 . 12 .

a. b. c. d.

AABB AABB8 Error de compilación e n la línea línea 6 Error de compilac ión en l a línea 9

regunta

Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes afirmacion es es correcta: correcta: abstracta ta no pu ede i mple mentar ningun a interf interface. a . Una cl ase abstrac b. Si u na clase tiene sólo alguno d e sus métodos abstr abstrac actos tos,, no es necesario necesario declararla como como abstracta. c. U na clase abstracta abstracta no pue de extender extender otra clase que no sea abstracta. d. Una clase qu e hereda de una clase abstra abstract ctaa tiene que imp lementar todos lo s métodos abstrac abstractos tos para no ser abstracta. 7:

texto de la bibl iograf iografía ía básica d e la asignatura, asignatura, el alcance de u na variable: regunta 8  Según el texto a. b. c. d.

De Define fine el valor valor máximo máximo que puede almacenar dicha variable. Define Define qué métodos métodos de otras clases pueden acceder a la variable. Define Def ine q ué clases externas externas pueden u tilizar di cha variabl variabl e. Ni nguna de las anteriores.

resultado d e ejecutar ejecutar el sigui ente código? regunta 9  ¿Cuá l es el resultado 10. 11 . 12 . 13 . 14 .

Strin ng g [ ] arr ra ay y= = { " AA  , " BB BB  , " C C  } ; f o r ( i n t n = O ; n < a r r a y . l e n gt gt h ; n + + ) S ys y s te te m . o u t . p r ri i n t ( a rr rr a y [ n ] ) ; Sy ys s te te m . ou t . p r ri in nt t (n) ;

a.

AABBCC

b. c. d.

AAB AABB El código código no compila

resultado de ejecutar ejecutar el siguiente código? regunta 10: ¿Cuá l es el resultado  . pub l i c c l a s s C l a s e eA A{ 2. private String miembro; 3. priv va a t e b o o l e a n m ie i e mb mb r o 2 ; 4 .

5. 6. 7. 8. 9. 

10 . 11.}

 

p u b l i c s t a t i c v o id i d m a i n ( S t r i ng ng [ ] ar ar g s ) ClaseA obj = new ClaseA ( ) ; i f ( ! o b j . m i em e mb ro ro 2 ) { S y s te tem . o u ut t . p r i n tl tl n ( " M i ie e mb mb r o 

" + o b j . m ie i e mb ro ro  ) ;

a. b. c. d.

Error de compil ación en la línea 6 Error de compilaci ón en l a línea 7 Error d e compil ació n en la líne a 8 Miembro n u l l =

ell sigu iente código? regunta 1 1 : ¿Cuá l es el resultado de ejecutar e 6. 7. 8. 9. 10 11 12 13

String cade en na "Examen; Strin ng g ca ad den na a2 ne ew w St tr r i ng ng ( c a d de ena a ) ; c a d e na na 2 ) if (cade en n a a S ys ys t e em m. ou ut t . prin nt t l n{ ( " c a d de ena =

=

==

. . . .

ca ad d en e n a2 a2  ) ;

i f ( ca d de ena . eq qu ua l s ( ca d de en na a2 ) ) Sys st t em em . o u t . p r ri i nt nt l ln n ("ca ad de en na  . e q qu ual s ( c a ad de en na2 )  ) ;

a. b. c. d.

No se muestra nad a cadena cadena2 cadena.equals(cadena2) B y C son cier ciertas tas ==

regunta 1 2 : Según el texto de la bibliografía básica de la asignatura, indique cuál de las siguientes

afirmacion es es correct correcta: a: a. El acoplami ento describe el encapsul amie nto nto de las clases. b. c. d.

El encapsulamie nto nto apropiado en las clases reduce su cohesión. El encapsul amiento apropiado en las clases reduce su acoplamie nto. La co cohesión hesión de un a unida d de có código digo re refl fleja eja su ac acoplamiento. oplamiento.

ejecutar jecutar el sigu iente código? regunta 1 3 : ¿Cuá l es el resultado d e e  . class Cla as s eA eA { 2. pu ub blic floa at t m e t od o d o  ( d ou ou b l e d ) 3. S ys y s te tem . out . p r ri int tl ln ("Clas se eA  ) ; 4. r et e t ur ur n  . O F ; 5. 6. 7. 8 . pu ub blic class ClaseB ex xt t en en d s C l a s e A { p ub ub l i c d o ou u b l e m e t o d o  ( do ub ub l e d ) 9. 10 . S ys y s te t e m . o u t . p r in in t tl ln ("Cl la as se e B B ) ; 11 . r et e t ur ur n 1 . 0 ; 12 . 13 . 14 . pu ub b l i c s t a t i c v o i d ma i n ( S t r i n g [ ] a r rg gs ) n ew ew C l la a se s e B ( ) . me to to d do o (O . O) ; 15 . 16. 17 .

a. b. c. d.

 

ClaseA ClaseB 1.0 El códig código o no compila

iografía ía básica, ¿q ué significa instanciar instanciar una clase?   regunta14: De acuerdo a la bibl iograf a. b. c. d.

Duplicar una clase. Heredar de una clase. Crear un objet objeto o a partir de una clase. Conectar dos clases e ntre sí.

a. b. c.

Respecto a las excepciones Respecto excepciones en Java, ¿Cu ál de las sigu ientes afirmaciones es correcta? correcta? Todas las s ubclases d e la clase estándar de Java R unTimeException unTimeException son excepciones excepciones comprobadas. Todas las s ubcl ases de la clas e estándar de Java Java Exception Exception son excepciones comprobad as. Error es una subclase directa de Throwable, mientras que Exception es una subclase directa de

d.

Error. Tanto Error Error ccomo omo Exception Exception so n subclases directas directas de Throw Throwable. able.

RESERVA 1:

¿Cuál de las sigui entes afirmaciones afirmaciones es correcta? correcta? En Java no se permite la herencia múltiple de clases, ni tampoco la implementación múltiple de interfaces. En Java Java se permite la herencia mú ltipl e de clases, pero no la im pleme ntación ntación m últipl e de i nt nterf erfaces. aces. En Java no se permite la herencia herencia múlti ple de clases, pero pero sí la imp lementación múltip le de interfaces. En Java Java se permite permite la herencia herencia múltip le de clases, clases, y también la imp lementación múl tiple de interfaces.

RESE RV RVA A 2:

a. b. c. d.

PUNTOS] : PARTE PRÁCTICA [6 5 PUNTOS] La Práctica del presente curso es diseño e implementación de un sistema integrado de gestión de una biblioteca (a parir de ahora, SIGB). En general, las funciones que tienen un SIGB son varias según el perl de su usuario (que va desde el usuario de la biblioteca hasta su director) e incluyen las siguientes: Adquisiciones: la compra de materiales (libros en diferentes formatos, audiolibros, CDs de música, películas en DVD, etc.), gestión de compras, facturación, etc. Catalogar: la clasicación e indexación de los materiales de la biblioteca. Préstamos: prestar los materiales a los usuarios (tanto en papel como en otros formatos), reservas de materiales ya en préstamos, control de préstamos (emisión de avisos de materiales era de plazo), gesti gestión ón de mul multas. tas. Suscripciones: gestión de las suscripciones a revistas y periódicos. Catálogo en línea u OPAC (del inglés Online Public Access Catalog): interfaz pública a los servicios ser vicios de llaa biblioteca (búsq (búsquedas, uedas, gestión de pre prestam stamos, os, etc.) . Gestión de usua usuarios: rios: altas, ba bajj as, gener generació ación n de t etas, hi histo storiales. riales. •











Funcionalidades

Los SIGB permiten la implementación desde labores simples de gestión de una alta de usuario, hasta operaciones más complejas como es la gestión de préstamos o inventario. En esta práctica, se propondrán propo ndrán di difer ferentes entes ncionalidades pa para ra el sistema de gestión bibliotecaria: Añadir nuevos materiales a la colección de la biblioteca (rellenando los datos de un formulario). Cada tipo de material debería tener su propia colección (libros, revistas, periódicos, audio, video, etc.). Borrar materiales de la colección. Realizar búsquedas sencillas sobre los materiales. Gestionar suscripciones a revistas y periódicos. •

• • • •

 

Gestión de usuarios: altas, bajas, generación de tarjetas, historiales de préstamo, control de acceso (diferenciar entre dos perles: usuarios y bibliotecarios).



• •



• •





Realización básica de Préstamos: prestar un material si está disponible en la biblioteca, asignar fechas d dee devolución. Producir listados de préstamos según el tipo de mater material. ial. Realizar búsquedas exibles sobre los materiales en la biblioteca combinando varios campos de búsqueda. Control de préstamos: número máximo de ítems de préstamo (6 por usuario, independiente de tipo de material), emisión de avisos de materiales fuera de plazo, gestión de multas, etc. Producir listados de los materiales prestados. Realizar búsquedas exibles sobre los materiales en varias bibliotecas a la vez combinando varios campos de búsqueda. Préstamos entre bibliotecas: poder solicitar materiales a otras bibliotecas y procesar las solicitudes de otras bibliotecas. El procesamiento de dichas solicitudes se lleva a cabo usando archivos de solicitud de la siguiente manera: o Preparar y exporar una lista de solicitudes de materiales que se quiere hacer a una biblioteca. Se prepara la lista usando un formulario para identicar el nombre de la biblioteca, el nombre del libro, el autor y el nombre de esta biblioteca. Una vez terminado, se guardar la lista en un archivo de texto. No es necesario en esta práctica preocuparse de cómo se enviaría el archivo a otras bibliotecas. o Imporar y procesar un archivo de solicitudes para materiales proveniente de otra biblioteca. Se debe actualizar el estatus de cada material para marcarse como prestado, pero en vez del identicador del usuario debería aparecer el identicador de la biblioteca. Control de reservas: poder reservar un material si está ya prestado, gestión de avisos (al usuario con el material que convendría devolverlo porque hay alguien esperando y al usuario con la reserva reser va cuando el material ya está devuel devuelto) to)..

a)

[1 punto] Diseñar utilizando un paradigma orientado a objetos, los elementos necesarios para la aplicación explicada de la práctica durante el curso. Es necesario identicar la estrctura y las relaciones de herencia (mediante el uso de un diagrama de clases) y de uso de las clases necesarias para almacenar y gestionar esta información. Debe hacerse uso de los mecanismos de herencia siempre que sea posible. Se valorará un buen diseño que favorezca la reutilización de código y facilite su mantenimiento. b) [1,5 puntos] Se desea incluir en la biblioteca un nuevo tipo de recurso, los videojuegos para diferente dif erentess cons consolas olas (P S 3 , PS4 P S4 , Xbox 3360 60 , Xbox o N Ninten intendo do) . Indica los cambios que hab habría ría que realizar en el sistema de gestión de préstamos, así como la estrctura de clases resultante. e) [2 puntos] Implementar los métodos de préstamo y devolución de videojuegos teniendo en

cuenta, en (si el caso de las fuera devoluciones, lasactualización implicacionesdeque dichosque préstamos pueden acarrear: sanciones se entrega de plazo), cheros contienen los préstamos (indicar la solución que se plantea en este caso), actualización de las reservas que haya sobre ese videojuego, etc. Justiquese las opciones y decisiones que se tomen. d) [2 puntos] Proporcione un método (o métodos) que permita mostrar por pantalla un formulario básico en modo gráfc que permita generar las estadísticas de los préstamos de videojuegos que se encuentran almacenados en un chero. La pantalla permitirá elegir entre dos listados: videojuegos más prestados, usuarios más 'ugones" (con mayor número de préstamos). Pedirá un rango de fechas y aplicará ese criterio a la hora de buscar los contenidos en los cheros. Los mostrará most rará por pantall pantallaa de may mayor or a menor. Justiquese las opciones y decisione decisioness que ssee tomen.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF