Examen OOP 2019
Despacito y buena letra.
Sign in to Google to save your progress. Learn more
Nombre y apellidos
Vamos a hacer una clase para manejar las tareas de una oficina. La llamaremos 'Tareas'. Tendrá dos propiedades: 'responsable' un string con el nombre del responsable, 'limite' un entero que por defecto vale 10 y 'lista' un array con las tareas a realizar. En el constructor se pide, obligatoriamente, el nombre del responsable. Una vez creado no se puede cambiar el nombre del responsable pero lo podemos ver si accedemos a la propiedad 'responsable'. Tendremos una función 'addTarea' a la que le pasamos un string con la tarea y nos lo añade al array. Si al añadirlo se superara el límite de tareas hay que lanzar una excepción 'Límite superado' y no añadir la tarea. Tendremos también una función 'procesar' que nos coge la primera tarea de la lista y nos la devuelve concatenando la palabra ' Realizada'. Dispondremos de la función 'quitarTarea' que pasándole un string nos elimine del array todas las apariciones de esa tarea.
Vamos a crear una serie de clases. La primera 'Componentes' tiene como propiedades privadas 'referencia', 'nombre' y 'precio'. Todas se piden en el constructor. . La segunda 'Empleado' tiene como propiedades 'nombre' y 'preciohora' que se piden en el constructor. También tendremos una clase 'Montaje' que tendrá una propiedad 'empleado' y 'horas', ambas se pasan en el constructor. Tendremos setters y getters mágicos para las tres clases. Por último tendremos la clase 'Producto' que tendrá como propiedades un 'nombre' que se pasa en el constructor, un 'montaje' y unos 'componentes'. Montaje es de tipo Montaje y tendrá un setter a medida (setMontaje) y un getter a medida (getMontaje) que nos devuelve el nombre del empleado y las horas. Tendremos la función addComponente(componente) que pasándole un componente nos lo añadirá al array. Tenemos que hacerla función coste() que nos devuelva el precio de coste del producto (precio de los componentes más precio del montaje). Por último una función mágica tostring que nos devuelva una cadena con el siguiente formato: Nombre del producto + lista de nombres de los componentes.
Vamos a crear una clase que nos permita acceder a estadísticas de nuestra base de datos de tienda. La llamaremos Estadisticas. Tendrá un constructor que se conecta a la base de datos. Dispondremos de las siguientes funciones: totalCategorias() Nos devuelve el total de las categorías. totalProductos(categoría opcional) Nos devuelve el total de productos, y si le pasamos una categoría (es un parámetro opcional) nos devuelve el total de productos de esa categoría. borrarHuerfanos() Nos elimina los productos 'huérfanos', es decir, que no tienen id de categoría o que teniéndolo la categoría no esté porque esté borrada. borrarVacias() Nos elimina las categorías que no tienen productos asociados.
Queremos hacer una jerarquía de clases para manejar publicaciones. Para ello crearemos la clase 'Publicaciones' que tiene como propiedades 'titulo', 'precio' y 'paginas', ambas se piden en el constructor. De ahí derivan las clases 'Revista', que incluye las propiedades 'numero' y 'sector'. También la clase 'Libro' que incluye la propiedad 'autor' y 'editorial'. De la clase 'Revista' deriva las clase 'Fanzine' que incluye la propiedad 'distribucion'. De la clase Libro derivan las clases 'Incunable' que tiene la propiedad 'anyo' y la clase 'Electronico' que incorpora la propiedad 'formato'. Necesitamos que todas las clases incorporen getters y setters mágicos, pero nos gustaría que hubiera el mínimo código posible. Poned también el código necesario para crear el Fanzine 'Kaos', que vale 1€, tiene 50 páginas, es el número 1 del sector 'antisistema' y se distribuye en 'bibliotecas'
Submit
Clear form
Never submit passwords through Google Forms.
This content is neither created nor endorsed by Google. Report Abuse - Terms of Service - Privacy Policy