// II17 2005-06 // Tema2/MenuCuentaCorriente.cpp // 18-11-2005 // Ejemplo de uso de la clase CuentaCorriente #include #include using namespace std; #include "CuentaCorriente.h" #include "Fecha.h" #define MAX_CUENTAS 100 int main () { CuentaCorriente cc[MAX_CUENTAS]; int cantidadCuentasCreadas = 0, opcion1, opcion2, numeroCuenta, cantidadMovimientos; string nombre, dni; Fecha fecha; float importe; do { cout << endl << "Este programa permite: " << endl; cout << "\t1. Crear una cuenta corriente." << endl; cout << "\t2. Operar con una cuenta existente." << endl; cout << "\t3. Finalizar." << endl; cout << "Digame el numero de la opcion que desea: "; cin >> opcion1; switch (opcion1) { case 1: if (cantidadCuentasCreadas == MAX_CUENTAS) cout << "Error: lo sentimos, este banco ya no puede manejar mas cuentas." << endl; else { cout << "Vamos a crear la cuenta numero " << cantidadCuentasCreadas << "." << endl; cout << "Digame el nombre del titular: "; cin.ignore(); getline(cin, nombre); cout << "Digame el DNI: "; getline(cin, dni); cc[cantidadCuentasCreadas] = CuentaCorriente (nombre, dni); cout << "La cuenta numero " << cantidadCuentasCreadas << " ha sido creada,"; cout << " recuerde su numero para operar con ella." << endl; cantidadCuentasCreadas++; } break; case 2: cout << "Digame el numero de cuenta: "; cin >> numeroCuenta; if (numeroCuenta < 0 || numeroCuenta >= cantidadCuentasCreadas) cout << "Error: ha introducido un numero de cuenta que no es valido." << endl; else { do { cout << endl << "Puede elegir entre: " << endl; cout << "\t1. Realizar un ingreso." << endl; cout << "\t2. Realizar un reintegro." << endl; cout << "\t3. Consultar el saldo de la cuenta." << endl; cout << "\t4. Ver los ultimos n movimientos." << endl; cout << "\t5. Ver todos los movimientos." << endl; cout << "\t6. Volver al menu principal." << endl; cout << "Digame el numero de la opcion que desea: "; cin >> opcion2; switch (opcion2) { case 1: cout << "Digame el importe a ingresar: "; cin >> importe; cout << "Digame la fecha del ingreso: " << endl; fecha.Leer(); cc[numeroCuenta].Ingresar (fecha, importe); cout << "Ingreso efectuado: el saldo resultante es " << cc[numeroCuenta].ConsultarSaldo() << " euros." << endl; break; case 2: cout << "Digame el importe a reintegrar: "; cin >> importe; cout << "Digame la fecha del reintegro: " << endl; fecha.Leer(); try { cc[numeroCuenta].Reintegrar(fecha, importe); cout << "Reintegro efectuado: el saldo resultante es " << cc[numeroCuenta].ConsultarSaldo() << " euros." << endl; } catch (...){ cout << "Reintegro cancelado: el saldo disponible es " << cc[numeroCuenta].ConsultarSaldo() << " euros." << endl; } break; case 3: cout << "El saldo de la cuenta es de " << cc[numeroCuenta].ConsultarSaldo() << " euros." << endl; break; case 4: cout << "Digame cuantos movimientos desea ver: "; cin >> cantidadMovimientos; cc[numeroCuenta].VerListadoMovimientos(cantidadMovimientos); break; case 5: cc[numeroCuenta].VerListadoMovimientos(); break; case 6: break; default: cout << "Error: opcion incorrecta." << endl; } } while (opcion2 != 6); } break; case 3: cout << endl << "Gracias por utilizar este programa." << endl; cout << "Si le ha sido util, considere donar el saldo a su ONG favorita." << endl; break; default: cout << "Error: opcion incorrecta." << endl; } } while (opcion1 != 3); }