1) Defina una clase 'Monedero' que permita gestionar la cantidad de dinero de que una persona dispone en un momento dado.

La clase tendrá los siguientes métodos:

* Constructor común: que inicializa el dinero a 0.

* Constructor de inicialización: Donde se indica el dínero que tendrá el monedero. No se puede indicar un número negativo.

* Constructor de copia.

* meter_dinero: Método que me permite meter más dinero en el monedero.

* sacar_dinero: Método que me permite sacar dinero. Por supuesto, no se podrá sacar más dinero del que haya en un momento dado en el monedero.

* consultar: Método que me devuelve la cantidad de dinero que hay en el monedero.

Para probar el funcionamiento de la clase, escriba un método 'main' con una serie de instrucciones que hagan uso de los métodos definidos.



2) Declarar una clase llamada Circulo que tenga como atributo el radio de tipo real y los siguientes métidos:

* Los tres constructores. No se puede tener circulos con radios negativos.
* Los métodos de modificación y devolución.
* escribir: Te escribe el radio de circulo.
* calcular_area y calcular_perimetro: Devuelven el área y el perímetro.

En el programa principal: Declare dos objetos: Rueda y Moneda y realice las siguientes operaciones:
a) Inicialice el radio de la Rueda con el valor de 10.
b) Inicialice el radio de la moneda con el valor de 1.
c) Calcule el área de la Rueda.
d) Calcule el área de la Moneda.
e) Calcule el perímetro de la Rueda.
f) Calcule el perímetro de la Moneda.


3) Definir una clase para manejar los artículos de un supermercado cuyos atributos son:
a) Clave numérica
b) Descripción
c) Precio
d) Cantidad en existencia


Y defina los siguientes métodos:

* Los tres constructores
* Métodos de modificación
* Métodos de devolución
* Método escribir
* Método vender: que recibe la cantidad de artículos vendidos y lo resta a la cantidad de existencia. La cantidad de existencia nunca puede ser un número negativo. Este método devuelve el total de la venta.

Validaciones: La calve tiene que ser mayor que 0, al igual que el precio y la cantidad de existencias.

Crea un programa principal que utilice la clase anterior.


4) Desarrolla una clase Cafetera con atributos_capacidadMaxima (la cantidad máxima de café que puede contener la cafetera) y cantidadActual (la cantidad actual de café que hay en la cafetera). Implementa, al menos, los siguientes métodos:
* Constructor común: establece la capacidad máxima en 1000 (c.c.) y la actual en cero (cafetera vacía).
* Constructor de inicialización que sólo recibe la capacidad máxima; inicializa la cantidad actual de café igual a la capacidad máxima.
* Constructor de inicialización con los dos parámetros: con la capacidad máxima y la cantidad actual. Si la cantidad actual es mayor que la capacidad máxima de la cafetera, la ajustará al máximo.
* Métodos de modificación y devolución.
* llenarCafetera(): pues eso, hace que la cantidad actual sea igual a la capacidad.
* servirTaza(int): simula la acción de servir una taza con la capacidad indicada.
Si la cantidad actual de café “no alcanza” para llenar la taza, se sirve lo que quede.
* vaciarCafetera(): pone la cantidad de café actual en cero.
* agregarCafe(int): añade a la cafetera la cantidad de café indicada.

Crea un programa principal que utilice la clase anterior.


5) Crea una clase NIF que se usará para mantener DNIs con su correspondiente letra. Los atributos serán el número de DNI (entero largo) y la letra que le corresponde.
La clase dispondrá de los siguientes métodos:
* Constructor común que inicialice el nº de DNI a 0 y la letra a espacio en
blanco (será un NIF no válido).
* Constructor de inicialización que reciba el DNI y establezca la letra que le corresponde.
* Método de modificación, para el número de DNI, que cambia automáticamente la letra.
* Métodos de devolución.
* Método escribir(): que nos permita mostrar el NIF (ocho dígitos, un guión y la letra en mayúscula; por ejemplo: 00395469-F)

La letra se calculará con un método auxiliar (privado) de la siguiente forma:
se obtiene el resto de la división entera del número de DNI entre 23 y se usa la siguiente tabla para obtener la letra que corresponde:
0 - T 1 - R 2 - W 3 - A 4 - G 5 - M 6 – Y 7 - F 8 - P 9 - D 10 - X 11 - B 12 - N 13 – J
14 - Z 15 - S 16 - Q 17 - V 18 - H 19 - L 20 – C 21 - K 22 – E

Crea un programa principal que utilice la clase anterior.


6) Desarrolla una clase Cancion con los siguientes atributos:
* titulo: una variable String que guarda el título de la canción.
* autor: una variable String que guarda el autor de la canción.

y los siguientes métodos:

* Cancion(): constructor predeterminado que inicializa el título y el autor a cadenas vacías.
* Cancion(String, String): constructor que recibe como parámetros el título y el autor de la canción (por este orden).
* dameTitulo(): devuelve el título de la canción.
* dameAutor(): devuelve el autor de la canción.
* ponTitulo(String): establece el título de la canción.
* ponAutor(String): establece el autor de la canción.
* escribir(): Escribe en pantalla el título y el autor.

Crea un programa principal que utilice la clase anterior.


7.1) Crear una clase Rect que represente un rectángulo. La clase tendrá como atributos privados de tipo entero, las coordenadas de los vértices superior
izquierdo (x1, y1) y las del vértice inferior derecho (x2, y2).

La clase tendrá los siguientes métodos:

* Constructor común.
* Constructor de incialización: Recibe como parámetro las coordenadas de los vertices (x1, y1,x2,y2).
* Constructor de incialización: Recibe como parámetro el ancho y el alto (w,h) . Inicializa x1 e y1 a cero.

* Métodos de modificación: setx1,sety1,setx2,sety2,setw,seth.
* Métodos de devolución: getx1,gety1,getx2,gety2,getw,geth.
* set: Recibe otro rectangulo y lo copia al nuestro.
* Mover: Mueve el rectángulo un desplazamiento horizontal (deltaX) y un desplazamiento vertical (deltaY).
* estaAdentro: Recibe un punto, sus dos coordenadas (x,y) y devuelve verdadero si el punto está dentro del rectángulo.
* union: Recibe un rectángulo r y devuelve el menor rectángulo que incluye a r y a el mismo.
* interseccion: Recibe un rectángulo r y devuelve la intersección de r y este rectángulo.
* Escribir: Imprime las coordenadas de los dos vertices (superior izquierdo e inferior derecho), la anchura y la altura del rectangulo.

7.2) Crea un programa principal que use la clase Rect anterior, que haga lo siguiente:

* Crear 2 objetos de la clase Rect : r1 y r2
* Obtener los rectángulos u e i unión e intersección de r1 y r2.
* Imprimir los resultados en la consola.

7.3) Se decide cambiar la estructura interna de Rect. En vez de guardar como datos las coordenadas de los vértices, se guardan ahora las coordenadas del vértice superior derecho, el ancho y la altura.

* Rescribir los métodos dada la nueva estructura.
* ¿Cómo cambia TesteaRect?
* Conclusiones.

8) Crear una clase ListaDeEnteros que implemente una pila de números enteros. Para la implementación se utilizará un array de enteros de largo
fijo (largo 100).

La clase tendrá los siguientes métodos:

i. push Introduce un entero en la lista
ii. pop Extrae un entero (el último que se ha introducido) de la lista y lo devuelve
iii. peek Devuelve el último entero introducido pero sin eliminarlo.
iv. estaLleno Devuelve verdadero si la capacidad de la lista esta colmada.
Last modified: Thursday, 15 September 2011, 1:12 AM