Control 2- CC10B - U

Anuncio
Control 2- CC10B
Prof: Nancy Hitschfeld Kahler
Auxs: Christian Wilckens y Daniel Pizarro
12 mayo 2006
Un banco almacena las cuentas de sus clientes. Existen dos tipos de cuentas: cuenta
corriente y cuenta de ahorro. Todas las cuentas contienen el número de la cuenta, el rut y
nombre de la persona dueña de esa cuenta, y el saldo. Una cuenta de ahorro tiene además
un número máximo de giros (4 en este problema) y un reajuste anual (4%). Una cuenta
corriente tiene solo una comisión mensual de 8000 pesos (no tiene número máximo de giros
ni reajuste anual). Entre las operaciones que se pueden realizar sobre una cuenta están
depositar una cantidad de dinero, preguntar por el saldo actual y girar una cierta cantidad
de dinero si es que el saldo actual lo permite. En caso de una cuenta de ahorro, se require
tambien que el número de máximo de giros no haya sido realizado.
Suponga que el banco está representado por la siguiente clase:
public class Banco{
private Cuenta[] cuentas;
private int numero_actual_de_cuentas;
public Banco(int numero_maximo_cuentas); // (0.5) inicializa
// el Banco con la posibilidad de almacenar
// numero_maximo_de cuentas, pero inicialmente tiene 0 cuentas
public void Agregar(int tipo_cuenta, int rut, String nombre); (2.0)
// tipo_cuenta == 0 significa que es una cuenta de ahorro
// tipo_cuenta == 1 significa que es una cuenta corriente
// El saldo inicial es 0
public void Eliminar(int numero_cuenta); (4.0)
// Elimina la cuenta de numero numero_cuenta
public int Numero_cuentas_saldo( float min, float max); (3.5)
// Imprime toda la informacion de las cuentas cuyo saldo
// esta entre min y max (ambos inclusive)
// y retorna cuantas hay
public int NumeroCuenta(String nombre, int tipo_cuenta); (2.0)
// Retorna el numero de la cuenta del cliente con el nombre
// especificado
public Cuenta Cuenta(int numero_cuenta);(2.0)
// retorna la cuenta de la cuenta con numero_cuenta
}
1
y la clase Cuenta tiene la siguiente interfaz
abstract public class Cuenta{
protected int numero_cuenta;
protected String nombre;
protected float saldo;
protected int rut;
public Cuenta( int rut, String nombre);
public int Rut();
public String Nombre();
public float Saldo();
public int Numero();
abstract public void Girar(float cantidad);
abstract public void Depositar(float cantidad);
abstract public void Imprimir();
}
• (12.0) Diseñe una jerarquı́a de clases para modelar los distintos tipos de cuentas.
Agregue las variables de instancia que necesite a sus nuevas clases. Implemente cada
uno de los métodos de cada una de las clases de la jerarquı́a. No se olvide de los
constructores.
• (14.0) Implemente los métodos de la clase Banco.
• (5.0) Qué método(s) de la clase Banco modificarı́a y cómo los modificarı́a para que
se pueda usar búsqueda binaria al buscar una cuenta por su número de cuenta? En
qué método(s) podrı́a usar búsqueda binaria? (Respuesta en palabras)
• (10.0) Defina una clase llamada Ejemplo, que tenga un método main para probar
sus clases de la siguiente manera. Primero (1 pto), debe crear un banco que pueda
almacenar 1000 cuentas. A este banco le debe agregar las siguientes cuatro cuentas
(4 ptos): (1) cuenta de ahorro de XXX con Rut 8.000 , (2) cuenta corriente de YYY
con rut 9.000 (3) cuenta de ahorro de YYY con Rut 9.000 y (4) cuenta corriente de
ZZZ con Rut 2.000. Segundo (3 ptos), debe depositar 500.000 en la cuenta corriente
YYY, 100.000 en la cuenta corriente de ZZZ y 50.000 en la cuenta de ahorro de XXX.
Tercero (2 ptos), debe imprimir qué cuentas y cuantas hay con saldo entre 100.000 y
1.000.000. Cuál es la salida de su programa?
Nota: Para obtener un número de cuenta no usado suponga que existe una clase Numero de Cuentas, con un método NextNumero, que permite obtener el siguiente número
de cuenta disponible.
2
Descargar