Codigo atm

Solo disponible en BuenasTareas
  • Páginas : 9 (2229 palabras )
  • Descarga(s) : 0
  • Publicado : 1 de octubre de 2010
Leer documento completo
Vista previa del texto
CASO DE ESTUDIO ATM

TOMADO DEL LIBRO:
PROGRAMACIÓN EN C++
Sexta Edición

DEITEL

DEFINICIÓN E IMPLEMENTACIÓN DE LAS CLASES

ATM 2
Pantalla 4
Teclado 5
DispensadorEfectivo 6
RanuraDeposito 7
Cuenta 7
BaseDatosBanco 8
Transacción 10
SolicitudSaldo 11
Retiro 12
Deposito 14
EjemploPracticoATM 16


1 // ATM.h
2 // Definición de la clase ATM.Representa a un cajero automático.
3 #ifndef ATM_H
4 #define ATM_H
5
6 #include "Pantalla.h" // Definición de la clase Pantalla
7 #include "Teclado.h" // Definición de la clase Teclado
8 #include "DispensadorEfectivo.h" // Definición de la clase DispensadorEfectivo
9 #include "RanuraDeposito.h" // Definición de la clase RanuraDeposito
10 #include "BaseDatosBanco.h" // Definición de la claseBaseDatosBanco
11 class Transaccion; // declaración anticipada de la clase Transaccion
12
13 class ATM
14 {
15 public:
16 ATM(); // el constructor inicializa los miembros de datos
17 void ejecutar(); // inicia el ATM
18 private:
19 bool usuarioAutenticado; // indica si el usuario está autenticado
20 int numeroCuentaActual; // número de cuenta del usuario actual
21 Pantalla pantalla; //pantalla del ATM
22 Teclado teclado; // teclado del ATM
23 DispensadorEfectivo dispensadorEfectivo; // dispensador de efectivo del ATM
24 RanuraDeposito ranuraDeposito; // ranura de depósito del ATM
25 BaseDatosBanco baseDatosBanco; // base de datos de información de las cuentas
26
27 // funciones utilitarias privadas
28 void autenticarUsuario(); // trata de autenticar al usuario
29void realizarTransacciones(); // realiza transacciones
30 int mostrarMenuPrincipal() const; // muestra el menú principal
31
32 // devuelve un objeto de la clase derivada de Transaccion que se especifica
33 Transaccion *crearTransaccion( int );
34 }; // fin de la clase ATM
35
36 #endif // ATM_H

1 // ATM.cpp
2 // Definiciones de las funciones miembro para la clase ATM.
3 #include "ATM.h"// Definición de la clase ATM
4 #include "Transaccion.h" // Definición de la clase Transaccion
5 #include "SolicitudSaldo.h" // Definición de la clase SolicitudSaldo
6 #include "Retiro.h" // Definición de la clase Retiro
7 #include "Deposito.h" // Definición de la clase Deposito
8
9 // constantes de enumeración que representan las opciones del menú principal
10 enum OpcionMenu {SOLICITUD_SALDO = 1, RETIRO, DEPOSITO, SALIR };
11
12 // el constructor predeterminado del ATM inicializa los miembros de datos
13 ATM::ATM()
14 : usuarioAutenticado ( false ), // el usuario no está autenticado para empezar
15 numeroCuentaActual( 0 ) // no hay número de cuenta actual para empezar
16 {
17 // cuerpo vacío
18 } // fin del constructor predeterminado del ATM
19
20 // inicia el ATM21 void ATM::ejecutar()
22 {
23 // da la bienvenida y autentica al usuario; realiza transacciones
24 while ( true )
25 {
26 // itera mientras el usuario no esté autenticado
27 while ( !usuarioAutenticado )
28 {
29 pantalla.mostrarLineaMensaje( "\nBienvenido!" );
30 autenticarUsuario(); // autentica al usuario
31 } // fin de while
32
33 realizarTransacciones(); // ahora el usuario esautenticado
34 usuarioAutenticado = false; // restablece antes de la siguiene sesión del ATM
35 numeroCuentaActual = 0; // restablece antes de la siguiente sesión del ATM
36 pantalla.mostrarLineaMensaje( "\nGracias! Hasta luego!" );
37 } // fin de while
38 } // fin de la función ejecutar
39
40 // intenta autenticar al usuario con la base de datos
41 void ATM::autenticarUsuario()
42 {43 pantalla.mostrarMensaje( "\nEscriba su numero de cuenta: " );
44 int numeroCuenta = teclado.obtenerEntrada(); // introduce el número de cuenta
45 pantalla.mostrarMensaje( "\nEscriba su NIP: " ); // pide el NIP
46 int nip = teclado.obtenerEntrada(); // introduce el NIP
47
48 // establece usuarioAutenticado con el valor bool devuelto por la base de datos
49 usuarioAutenticado =
50...
tracking img