Ejercicio 1 (3 puntos).-



Documentos relacionados
Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

También añado a la clase Libro los siguientes métodos: (que programaré más adelante)

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Práctica 1 El juego de los chinos

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.) Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Clases abstractas e interfaces

Prof. Dr. Paul Bustamante

8. Sentencia return y métodos

Programación Orientada a Objetos en JAVA

15. Parámetros o argumentos

ALGORITMICA Y PROGRAMACION POR OBJETOS I

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

UNIVERSIDAD DE OVIEDO E.U. de Estudios Empresariales de Oviedo Sistemas Informáticos Digitales II Examen Final Práctico 7/2/2003 Curso

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

I. T. en Informática de Sistemas. Facultad de Informática

GedicoPDA: software de preventa

Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011

El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Patrones para persistencia (I) Ingeniería del Software II

Software Criptográfico FNMT-RCM

Programación Orientada a Objetos en Java

Tema 3. Test Driven Development

Índice ÍNDICE EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.) EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4

Práctica 2: Simón dice

GENERACIÓN DE TRANSFERENCIAS

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Curso 0 de Informática

Examen Septiembre Curso Programación en C++ Pág. 1

Proyecto Septiembre. Escuela Politécnica Superior Universidad Autónoma de Madrid 1

Eurowin 8.0 SQL. Manual del módulo TALLAS Y COLORES

Examen escrito de Programación 1

Clases y Objetos. Informática II Ingeniería Electrónica

Prof. Dr. Paul Bustamante

CRONO SISTEMA DE CONTROL DE PRESENCIA. Software abierto. Distintas opciones para realizar las picadas. Web personal para cada usuario

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:

11. Algunas clases estándar de Java (II)

Formularios. Formularios Diapositiva 1

Manual para la utilización de PrestaShop

7. Manejo de Archivos en C.

Jugamos al Bingo matemático

manual rápido SOLUCION TPV ESPECIAL TIENDAS ALIMENTACIÓN

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

Curso de Python Inicial

Manual del Protocolo XML-RPC de Mensajería Negocios

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

Estructura de datos tipo vector.

Cómo consultar una base de datos?

Primer Parcial Septiembre 5 de 2009

Curso de Java POO: Programación orientada a objetos

INDICE. 1. Introducción El panel Entities view El panel grafico Barra de botones Botones de Behavior...

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

Formas de Pago y Efectos en Facturas de Venta WhitePaper Febrero de 2007

Lenguajes de Programación Curso Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces Clases abstractas 2

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

Técnicas Avanzadas de Testing Automatizado

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

GENERACIÓN DE ANTICIPOS DE CRÉDITO

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO

Ejercicios del tema 7: Clases y objetos

Introducción a la programación orientada a objetos

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

PS.Vending Almacén Pocket PC

Examen de Prácticas de Programación Ingeniería Informática

Java Inicial (20 horas)

Programación Orientada a Objetos con Java

SOFTWARE DE RECUENTO DE DINERO

SIIGO WINDOWS. Parámetros Modulo de Seriales. Cartilla

Manual de Usuario Software Restaurante

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences

Segunda práctica de Programación 2

Programación Orientada a Objetos

Pruebas de unidad con JUnit

NOTAS TÉCNICAS SOBRE EL SIT: Documentos de Gestión

, RECUPERACIoN DE DATOS:

Concurrencia. Primitivas IPC con bloqueo

Trazabilidad ERP Microsa Gestión de Lotes

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

MANUAL PARA LA GESTIÓN DEL PRÉSTAMO ENTRE LAS BIBLIOTECAS DE LA RED DE LECTURA PÚBLICA DE EUSKADI

Notación UML para modelado Orientado a Objetos

Solución: Descargar e instalarse el componente desde la página Web de Microsoft:

Y por último, si se desea que despliegue un mensaje de confirmar al pagar, cada vez que se presione el botón Aceptar cuando se quiera pagar.

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

GUÍA BÁSICA DE INSTALACIÓN

Tipos primitivos y clases de interés

9. Objetos y clases Clases

Tema: Clases y Objetos en C++.

Cómo convertir texto de Word en una tabla de datos en Excel (todas las versiones)

Ejercicios - Persistencia en Android: ficheros y SQLite

CLASE # 5 TÉCNICAS DE CAJA BLANCA

Transcripción:

URJC Ingeniería Técnica de Gestión Abril 2011 Asignatura: SOFTWARE AVANZADO Normas: La prueba consta de 2 ejercicios. La máxima nota del examen es un 8. Siendo la práctica la que añade los 2 puntos que completan la puntuación a 10 de la asignatura. Se valorará la claridad de la exposición. Tiempo de la prueba: 2 horas y 30 minutos Ejercicio 1 (3 puntos).- Se desea desarrollar una aplicación para jugar al bingo en Java. Para ello se decide construir dos clases: la clase CartonDeBingo y la clase BomboConBolas. La clase CartonDeBingo permite crear y gestionar un cartón de bingo durante una partida. Así, el constructor de esta clase creará un cartón con 12 números al azar entre 1 y 50. Además, la clase tendrá dos métodos: tachar(int) y haganado(). El método tachar() elimina del cartón el número que se le pasa si lo contiene, y si no lo contiene no hace nada. El método haganado() devuelve true cuando todos los números del cartón han sido tachados y false en caso contrario. Se recomienda usar un Set de enteros para los números que forman el cartón. La clase BomboConBolas permite crear y gestionar el bombo con las bolas que se van sacando durante el desarrollo de una partida. La clase tendrá 2 métodos: quedanbolas() y obtenerbola(). Tras la creación, el método quedanbolas() debe devolver 50. Por otro lado, el método obtenerbola() devuelve el número de una bola al azar extraída del bombo. Por cada bola que se extraiga, el método quedanbolas() devolverá un valor menor en una unidad. Se recomienda usar un Set de enteros para los números contenidos en el bombo. Se recuerda que los principales métodos de la clase Set son: add(object), remove(object), int size() y boolean contains(object). Se recuerda que Java dispone del método estático double rand() dentro de la clase Math que permite obtener un valor de tipo double al azar entre 0 y 1. Se pide: Escribir el código correspondiente a las clases CartonDeBingo y BomboConBolas, incluyendo la implementación de todos sus métodos, respectando fielmente la especificación realizada y el diagrama. class CartonDeBingo { private Set <Integer> cjtonumeros = new HashSet <Integer>(); public CartonDeBingo() { while (cjtonumeros.size() < 12) { int azar = (int)(math.rand()*50.0) + 1; cjtonumeros.add(azar); (3 puntos)

public boolean haganado() { return (cjtonumeros.size() == 0); public void tachar(int numero) { cjtonumeros.remove(numero); class BomboConBolas { private List <Integer> listabolas = new ArrayList <Integer>(); public BomboConBolas() { for (int cont = 1; cont <= 50; cont++) { listabolas.add(cont); public boolean quedanbolas() { return (listabolas.size() > 0); public int obtenerbola() { int azar = (int)(math.rand()*listabolas.size()) + 1; int cont = 1; for (Integer i: listabolas) { if (cont == azar) { return i; cont++; Ejercicio 2 (5 puntos).- Utilizando el paradigma de orientación a objetos se desea diseñar el software de control de un sistema de control de discos en una tienda de venta de productos culturales. El sistema incorpora una pistola lectora de códigos de barras que se utilizará para leer un código de barras que llevarán todos los discos y los carnet de socio de los clientes que lo tengan. El software deberá permitir realizar las operaciones necesarias para vender los discos. Además, a los clientes con tarjeta de socio se le acumularan las ventas realizadas para ofrecerles vales de descuento para sus próximas compras.

Se dispone de una biblioteca suministrada por el fabricante de hardware para controlar la pistola. La instanciación de un objeto de una de estas clases permite controlar la pistola. También existe una base de datos con los precios de los discos. A esta base de datos se accede utilizando una clase ya implementada por otros desarrolladores llamada Catalogo. La clase Pistola Es una clase abstracta de la que se puede derivar para, siguiendo un enfoque MVC, conseguir ejecutar el código que se desee cuando la pistola lea un código de barras. Para ello, se debe derivar de ella e implementar los siguientes métodos: int CódigoBarrasLeido() Este método será llamado automáticamente por el hardware cuando la pistola lea un código de barras de un disco. Las instrucciones que se pongan en este método se ejecutarán cada vez que la pistola lea un código de barras. int CódigoBarrasNoLeido() Este método es llamado automáticamente por el hardware cuando la pistola no puede leer el código de barras de un disco. Las instrucciones que se pongan en este método se ejecutarán cada vez que la pistola sea incapaz de leer un código de barras. La clase Catálogo Es una clase que tiene un único método público: double obtenerprecio(string codigo) Este método devuelve el precio de artículo cuyo código se le pasa por parámetros. Esquema de funcionamiento. Normalmente la máquina estará prepara para la introducción de productos. Cuando llega un cliente, el vendedor usa la pistola para leer los códigos de barras de los discos que desea comprar. Cada vez que la pistola lee un código de barras el hardware lanza automáticamente una llamada al método CódigoBarrasLeido. Este método, que debe implementarse en una clase derivada, acumulará los precios de los discos que se lleva el socio. Cuando la pistola no es capaz de leer el código de producto lanza el método CodigoBarrasNoLeido. En ese caso el vendedor puede utilizar el teclado para escribir los códigos de barras. Para consultar los precios de los productos que se venden se utiliza un objeto de la clase Catalogo. Las ventas realizadas deben almacenarse en algún sistema con persistencia que posteriormente permita calcular las sumas de los importes comprados por los clientes que son socios. La tarjeta de socio también lleva un código de barras, con el número de socio, que se puede obtener utilizando la pistola o el teclado. La gestión de la caja no está informatizada. Se pide: A) Proponer las clases necesarias que, añadidas a las propuestas permitan construir el software de la tienda de discos. Justificar a grandes rasgos para qué sirve cada una de las clases propuestas (con menos de 40 palabras por cada clase). Dibujar el diagrama estático de clases presentando las clases propuestas (precisando su cardinalidad cuando corresponda) e incluyendo los métodos y propiedades que a priori se consideren interesantes (indicando su visibilidad). (2 puntos)

AplicacionVentaDiscos.- Clase que inicia la aplicación. GestorVentas.- Clase que dirige la operativa de una venta. PistolaDisco.- Clase que gestiona la lectura de la etiqueta del disco. PistolaSocio.- Clase que gestiona la lectura del carnet de socio. GestorSocios.- Clase que carga y graba la información de un socio de disco. Socio.- Clase que almacena la información de un socio. Venta.- Clase que acumula el importe acumulado de una venta. B) Dibujar un diagrama de secuencia en donde se refleje el escenario en el que un cliente que es socio compra dos discos. (1.5 puntos)

C) Dibujar un diagrama de actividad que refleje el proceso de compra de un disco, teniendo en cuenta el caso en que la pistola falla al leer el código del disco o de socio por lo que debe introducirse por teclado. (1.5 puntos)

Se puede completar este diagrama con este otro, el cual da mas detalle de la acción de Lectura de pistola o teclado.