#include <iostream>//se incluye libreria a utilizar
#include <windows.h>//se incluye libreria a utilizar
using namespace std;//nombre de std
void clrscr()/*Creando funcion para limpiar pantalla.*/
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord = {0, 0};
DWORD count;
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hStdOut, &csbi);
FillConsoleOutputCharacter(hStdOut, ' ', csbi.dwSize.X * csbi.dwSize.Y, coord, &
count);
SetConsoleCursorPosition(hStdOut, coord);
}
int main()//funcion main
{
int i,contra,contrasena=1234,sub=0, cant=0, salclie=50000, rcant=0, tran
s;//se declaran las variables
int linea,saldo,telefono,nsaldo=0,deposito=0;//se declaran las variables
for(i=1;i<=3;i++)//se hace uso de la instruccion de repeticion for
{
clrscr();//*Llamando la funcion para limpiar pantalla
cout<<"\t\t\t\tCAJERO AUTOMATICO"<<endl;//mensaje de encabezado
cout<<"DIGITE SU CLAVE: ";//mensaje que solicita introducir la clave
cin>>contra;//se ingresa la clave
cout<<endl;//espacio en blanco
if(contra==contrasena)//condicion de la contrasena
{
sub=contra;//se verifica la contrasena
cout<<"CLAVE CORRECTA.";//mensaje de contrasena correcta
i=i+2;//elimina las otras oportunidades de ingresar la clave (3
oportunidades)
}
else
{
cout<<"CLAVE INCORRECTA."<<endl;//mensaje de contrasena incorrec
ta
Sleep(1000);
}
cout<<endl;//espacio en blanco
}
cout<<endl;//espacio en blanco
inicio://funcion inicio
while(sub!=0)//coondicion de cierre del programa valor centinela
{
clrscr();//*Llamando la funcion para limpiar pantalla
cout<< "\t\t MENU DE OPCIONES \t\t";//encabezado de opc
iones del menu de opciones
cout<<endl<<endl;//espacio en blanco
cout<<"1. RETIROS "<<"\t\t"<<"2. RECARGA"<<endl<<//menu
principal
endl<<
"3. CONSULTA DE SALDO "<<"\t"<<"4. DEPOSITAR A LA CUEN
TA"<<endl<<//menu principal
endl<<
"0. SALIR "<<endl<<//opcion de salida
endl<<//espacio en blanco
endl;
cout<<"ELIJA LA OPCION QUE DESEA: ";//se solicita opcion
de la transaccion que se desea realizar
cin>>sub;//se ingresa la opcion que la transaccion
cout<<endl;//espacio en blanco
nsaldo=0;//se da valor 0 a nuevo saldo (esto es solo por
efecto de recargas)
if(sub==1)//condicion de la primera opcion
{
cout<<"DIGITE EL MONTO A RETIRAR: ";//se solicit
a el monto de la cantidad que se desea retirar
cin>>cant;//se introduce la cantidad
cout<<endl;//espacio en blanco
if(salclie>=cant)//se evalua si hay sufi
ciente fondos en la cuenta
{
if(cant>5000)//se declara condicion para
el valor maximo que se puede retirar por transaccion
{
cout<<"LA CANTIDAD DE DI
NERO QUE DESEA RETIRAR EXCEDE EL LIMITE APROBADO (lPS. 5,000.00)";//mensaje de e
xceso de cantidad a retirar
cout<<endl;//espacio en
blanco
cout<<"***TRANSACCION TE
RMINADA MUCHAS GRACIAS POR PREFERIRNOS***";//mensaje de finalizacion de las tran
sacciones
cout<<endl<<endl;//espac
io en blanco
cout<<"DESEA REALIZAR OT
RA TRANSACCION..."<<endl<<endl;//se pregunta si se desea realizar otra trasaccio
n
cout<<endl;//espacio en
blanco
cout<<"1. SI \t\t 2. NO"
<<endl<<endl;//se brindan las opciones de proceso de renovacion de transaccion
cout<<"DIGITE SU OPCION:
";//pide ingresar opcion deseada
cin>>trans;//ingresa la
opcion
cout<<endl;//espacio en
blanco
cout<<endl;//espacio en
blanco
if(trans==1)//condicion
de la primera opcion
{
goto inicio;//en
via al inicio de la funcion al menu
}
else if (trans==
2)//condicion de la segunda opcion
{
goto fin;//envia
al final de la funcion
}
}
else if(cant>=100 && cant<=5000)//condic
ion para retirara el dinero
{
rcant=salclie-cant;//res
ta de la cantidad de dinero de la cuenta del usuario
cout<<"SU RETIRO ES DE:
"<<cant<<endl<<"SU NUEVO SALDO ES DE: " <<rcant<<endl;//mensaje de la transaccio
n de retiro de dinero
cout<<"RETIRE SU RECIBO"
<<endl<<endl;//mensaje de recibo impreso
salclie=rcant;//se le da
un nuevo valor al saldo de la cuenta
cout<<"DESEA REALIZAR OT
RA TRANSACCION..."<<endl<<endl;//se pregunta si se desea realizar otra trasaccio
n
cout<<"1. SI \t\t 2. NO"
<<endl<<endl;//se brindan las opciones de proceso de renovacion de transaccion
cout<<"DIGITE SU OPCION:
";//pide ingresar opcion deseada
cin>>trans;//ingresa la
opcion
cout<<endl;//espacio en
blanco
if(trans==1)//condicion de la tr
asaccion primera
{
goto inicio;//envia a la
funcion de inicio el menu
}
else if (trans==2)//condicion de
la trasaccion segunda
{
goto fin;//envia a la fu
ncion de fun al final del programa
}
}}}
if(sub==2)//condicion de la seleccion numero dos
del menu
{
cout<<"\t\tSELECCIONE EL TIPO DE LINEA T
ELEFONICA"<<endl<<endl;//mensaje de las telefonia
cout<<"1. CLARO \t\t 2. TIGO"<<endl<<end
l;//se brindan los tipos de telefonia
cout<<"DIGITE SU OPCION: ";//se pide ing
resar la opcion de la telefonia
cin>>linea;//se ingresa el tipo de telef
onia
cout<<endl;//espacio en blanco
if(linea==1 || linea==2)//condicion no a
bstante de la opcion seleccionada
{
cout<<"1. 25 \t\t 2. 100"<<endl<
<endl;//menu de opciones de los valores de saldo
cout<<"3. 50 \t\t 4. 150"<<endl<
<endl;//menu de opciones de los valores de saldo
cout<<"DIGITE SU OPCION: ";//se
pide ingresar la opcion
cin>>saldo;//se ingresa la opcio
n
cout<<endl;//espacio en blanco
cout<<"DIGITE EL NUMERO TELEFONI
CO: ";//se pide ingresar el numero telefonico que se enviara la recarga
cin>>telefono;//ingresa el numer
o telefonico
cout<<endl;//espacio en blanco
if(saldo==1)//condicion si se se
lecciona la primera opcion
{
nsaldo=nsaldo+25;//calcu
lo de la primera opcion
}
else if(saldo==2)//condicion si
se selecciona la segunda opcion
{
nsaldo=nsaldo+100;//calc
ulo de la segunda opcion
}
else if(saldo==3)//condicion si
se selecciona la tercera opcion
{
nsaldo=nsaldo+50;//calcu
lo de la tercera opcion
}
else if(saldo==4)//condicion si
se selecciona la cuarta opcion
{
nsaldo=nsaldo+150;//calc
ulo de la cuarta opcion
}
salclie=salclie-nsaldo;//se hace
el proceso de resta del saldo de la recarga al saldo del usuario
cout<<"SE HA TRANSFERIDO LA CANT
IDAD DE LPS. "<<nsaldo<<" Al NUMERO "<<telefono<<endl<<endl;//se muestra mensaje
de la trasaccion que se realizo
cout<<"DESEA REALIZAR OTRA TRANS
ACCION..."<<endl<<endl;//solita si se realizara otra trsaccion
cout<<"1. SI \t\t 2. NO"<<endl<<
endl;//brinda opciones
cout<<"DIGITE SU OPCION: ";//se
pide ingresar una opcion
cin>>trans;//se ingresa la opcio
n
cout<<endl;//espacio en blanco
if(trans==1)//condicion
de la primera opcion
{
goto inicio;//en
via al inicio de la funcion al menu
}
else if (trans==
2)//condicion de la segunda opcion
{
goto fin;//envia
al final de la funcion
}
}}
if (sub==3)//condicion si se selecciona la terce
ra opcion del menu principal
{
cout<<"EL SALDO DE SU CUENTA ES DE LPS.
"<<salclie<<endl<<endl;//mensaje con la informacion del estado de cuenta
cout<<"DESEA REALIZAR OTRA TRANSACCION..
."<<endl<<endl;//se brinda opcion si se realizara otra opcion
cout<<"1. SI \t\t 2. NO"<<endl<<endl;//b
rinda las opciones
cout<<"DIGITE SU OPCION: ";//pide ingres
a la opcion
cin>>trans;//se ingresa la opcion
cout<<endl;//espacio en blanco
if(trans==1)//condicion de la pr
imera opcion
{
goto inicio;//envia al i
nicio de la funcion al menu
}
else if (trans==2)//condicion de
la segunda opcion
{
goto fin;//envia al fina
l de la funcion
}
}
if (sub==4)//condicion si se selecciona la cuart
a opcion del menu principal
{
cout<<"INGRESAR LA CANTIDAD QUE VA A DEP
OSITAR ";
cin>>deposito;//se ingresa la cantidad a
depositar
salclie=salclie+deposito;//proceso de la
suma del nuevo deposito
cout<<endl;//espacio en blanco
cout<<"SE HA REALIZADO UN DEPOSITO A SU
CUENTA DE LPS. "<<deposito<<" SU NUEVO SALDO ES DE LPS. "<<salclie<<endl;
cout<<endl;//espacio en blanco
cout<<"DESEA REALIZAR OTRA TRANSACCION..
."<<endl<<endl;//se brinda opcion si se realizara otra opcion
cout<<"1. SI \t\t 2. NO"<<endl<<endl;//b
rinda las opciones
cout<<"DIGITE SU OPCION: ";//pide ingres
a la opcion
cin>>trans;//se ingresa la opcion
cout<<endl;//espacio en blanco
if(trans==1)//condicion de la pr
imera opcion
{
goto inicio;//envia al i
nicio de la funcion al menu
}
else if (trans==2)//condicion de
la segunda opcion
{
goto fin;//envia al fina
l de la funcion
}
}
else //condion de lo contrario
{
goto fin;//fin del programa
}
fin://funcion de finalizar programa
cout<<"***TRANSACCION TERMINADA MUCHAS GRACIAS POR PREFERIRNOS**
*";//mensaje de finalizacion de las transacciones
cout<<endl<<endl;//espacio en blanco
Sleep(2000);//tiempo de cierre de pantalla
return 0;//fin de la funcion main
}//fin del ciclo while
}