Download Prácticas de Programación Orientada a Objetos

Document related concepts
no text concepts found
Transcript
Programación Orientada a Objetos
Curso 2010/2011
Problemas
Entrega 1
Alumno:
Previo
-
Para la implementación de los ejercicios es necesario hacer uso de listas. En Java
existen varias clases que implementan listas. En este ejecicio utilizaremos la clase
java.util.LinkedList. Ten en cuenta que las colecciones de Java son clases
genéricas. La genericidad se estudia más adelante en la asignatura. Para la
implementación del ejercicio es suficiente saber cómo se declaran y construyen las
listas:
LinkedList<Subasta> subastas = new LinkedList<Subasta>();
Observa que se incluye el tipo de elementos que va a contener la lista entre < y >.
Puedes consultar la documentación de la clase java.util.LinkedList en
http://download.oracle.com/javase/6/docs/api/java/util/LinkedList.html
-
Crea un proyecto en Eclipse para desarrollar el ejercicio propuesto.
-
Copia al final del documento el código de las clases y el programa. Por ejemplo:
package problemas1;
public class A {
private int at;
public A(int at) {
this.at = at;
}
public int getAt() {
return at;
}
}
-
Sube el documento a Google Docs y nómbralo siguiendo el mismo patrón que en
los ejercicios de Java: Titulación-Apellido1Apellido2-Nombre-Problemas-Entrega1.
Por último, comparte el documento con el profesor de teoría con permisos de
edición ([email protected] o [email protected]).
1/3
1. Implementa un sistema de subastas donde los usuarios puedan pujar por un
producto o servicio. A continuación se describen los requisitos de la aplicación:
-
Un usuario se caracteriza por una cadena que lo identifica y el crédito
disponible para poder pujar en subastas.
-
El identificador de un usuario no puede cambiar, mientras que el crédito puede
ser incrementado y decrementado.
-
Una subasta se caracteriza por el usuario que la crea (propietario) y por una
cadena que describe el producto o servicio que está subastando. Estos valores
son fijos en una subasta y no podrán variar.
-
Sobre una subasta se puede pujar. Esta operación requiere conocer el usuario
que está realizando la puja y la cantidad por la que puja. La puja es aceptada
si: a) el crédito del usuario que la realiza es suficiente para la cantidad por la
que puja; b) el usuario no es propietario de la subasta; c) la cantidad es mayor
que la cantidad de la puja mayor, si la hubiera. Por tanto, esta operación
finaliza indicando si la puja ha sido aceptada.
-
Una subasta recuerda todas las pujas que han sido aceptadas. La lista de
pujas aceptadas puede ser consultada.
-
Una puja se caracteriza por la subasta a la que pertenece, la cantidad pujada y
el usuario que ha realizado la puja. Estas propiedades no varían una vez que
han sido establecidas.
-
También se podrá pujar sin indicar la cantidad. Se asume que la cantidad será
un euro mayor que la última puja. Si no hubiera última puja, la cantidad sería
de un euro.
-
La puja mayor corresponde con la última puja aceptada. Si no hay pujas, esta
consulta devuelve un valor nulo.
-
Una subasta se puede cerrar. El cierre de una subasta implica que no se van a
aceptar nuevas pujas. Es posible consultar si una puja está cerrada.
-
Una subasta cerrada puede ser ejecutada. La ejecución de una subasta
consiste en decrementar el crédito del usuario de la puja mayor e incrementar
el crédito del propietario de la subasta por el importe de la puja ganadora. Es
posible consultar si una subasta ha sido ejecutada.
-
Los usuarios conocen las subastas de las que son propietarios y las pujas que
han sido aceptadas. La operación que realiza la puja se encarga de establecer
esta última asociación.
-
Un usuario permite consultar las subastas de las que es propietario y las pujas
que ha realizado y han sido aceptadas.
-
Los usuarios también conocen las subastas que han ganado. Esta información
puede ser consultada. El método de ejecución se encarga de establecer esta
asociación.
2/3
2. Escribe el siguiente programa:
-
Crea los usuarios Juan, Pedro y Enrique con un saldo inicial de 100, 150 y 300
euros, respectivamente.
-
Crea una subasta asociada al usuario Juan ofreciendo como producto
"Teléfono Móvil".
-
El usuario Pedro puja por esa subasta 100 euros.
-
Muestra en la consola la puja mayor de la subasta (producto, usuario y
cantidad).
-
El usuario Enrique puja por esa subasta 50 euros.
-
Muestra en la consola la puja mayor. Comprueba que esta segunda puja no ha
sido acepta, ya que es menor que la primera.
-
Cierra la subasta.
-
El usuario Enrique puja de nuevo por esa subasta con 200 euros. Comprueba
que no es aceptada, ya que la subasta ha sido cerrada.
-
Ejecuta la subasta.
-
Muestra por la consola los créditos de los tres usuarios. Observa que los
saldos de Juan y Pedro han cambiado.
-
Para cada usuario, muestra por la consola las subastas de las que son
propietarios, subastas ganadoras y pujas realizadas. Como información de la
subasta muestra sólo el nombre del producto y como información de las pujas
el producto subastado y la cantidad pujada.
Solución
3/3
Related documents