Program Cajero_Automatico;
uses crt,dos,printer;
const
CLAVECORRECTA='1111';
DIAS : array[0..6] of string[15] =('Domingo','Lunes','Martes','Miercoles','Jueves','Viernes','Sabado');
BILLETES : array[1..4] of integer =(10000, 5000, 2000, 1000);
MONEDAS: array[1..9] of integer =(500, 100, 50, 25, 20, 10, 5, 2, 1);
USUARIOS: array[1..3] of string[50]=('Esteban A.','Carlos. B','Octavio.C');
var
Cuentas: Array[1..3] of real;
anyo,mes, dia, diasem,hora, minuto, segundo, milesima: word;
contador1, contadorRetenida: integer;
intento: string[40];
numintento: integer;
totalDolare, totalMonedas, totalBilletes, contadorClave:integer;
cantidadBillete:real;
cantidadMonedas:real;
procedure FECHAHORA; {Procedure para la fecha y la hora}
begin
repeat
gotoxy(3,45);
getdate(anyo, mes, dia, diasem);
textcolor(yellow); highvideo;writeln('hoy es ', dias [diasem], ' ',dia, '/',mes, '/', anyo);
gettime (hora, minuto, segundo, milesima);
gotoxy(55,45);writeln('Son Las ',hora, ':',minuto, ':',segundo);normvideo; textcolor(white); delay(100);
clrscr;
until minuto = 61
end;
procedure MenuArranque; {Procedure inicial}
begin
gotoxy(25, 2);Writeln('Bienvenido al cajero automatico');
gotoxy(30, 3);writeln('del banco mucha plata');
gotoxy(25,15);writeln('INTRODUSCA SU TARJETA');
contador1:=0;
delay(2000);
repeat
contador1:= contador1+1;
delay(500);
gotoxy(25,15);clreol;gotoxy(25,15);writeln('Procesando un momento por Favor');
delay(400);
gotoxy(10,15);clreol;
until contador1=3;
numintento:= 0; { Proceso para clave de acceso}
repeat
clrscr;
numintento:= numintento+1;
gotoxy(25, 2);Writeln('Bienvenido al cajero automatico');
gotoxy(30, 3);writeln('del banco mucha plata');
gotoxy(25, 10);writeln('introdusca la clave de acceso');
gotoxy(27, 11); readln(intento);
if intento <> clavecorrecta then
begin
gotoxy(20, 15); writeln('Esa no es la clave correcta,intente de nuevo');
delay(1000);
if numintento= 3 then
begin
gotoxy(20, 10); clreol;
gotoxy(20, 11); clreol;
gotoxy(20, 15); clreol;
gotoxy(20, 35); writeln('Su tarjeta fue retenida por fallo de clave');
gotoxy(20, 36); writeln('pongase en contacto con el personal de banco');
gotoxy(20, 37); writeln('para la devolucion de su targeta');
contadorRetenida:=0;
delay(1000);
repeat
contadorRetenida:= contadorRetenida+1;
gotoxy(20,25);clreol;
delay(300);
gotoxy(30, 25); writeln('TARGETA RETENIDA');
delay(500);
until contadorRetenida = 10;
clrscr;
contadorClave:=1;
numintento:=0;
end;
end;
until intento= clavecorrecta;
end;
procedure COLON; {cuenta en colones}
var
cantidadColon:real;
begin
gotoxy(25, 2);Writeln('Bienvenido al cajero automatico');
gotoxy(30, 3);writeln('del banco mucha plata');
gotoxy(5, 30);writeln('Digite la cantidad de COLONES que desea retirar ');
gotoxy(15,31);readln(cantidadcolon);
totalBilletes := cantidadcolon div billetes[1] to [4];
procedure DOLAR; {cuenta en dolares}
var
cantidadDolar:real;
begin
gotoxy(25, 2);Writeln('Bienvenido al cajero automatico');
gotoxy(30, 3);writeln('del banco mucha plata');
gotoxy(5, 30);writeln('Digite la cantidad de DOLARES que desea retirar ');
gotoxy(15,31);readln(cantidadDolar);
procedure RETIROEFECTIVO; {MEnu para el retiro de dinero}
var
OpcionCambio: char;
begin
gotoxy(25, 2);Writeln('Bienvenido al cajero automatico');
gotoxy(30, 3);writeln('del banco mucha plata');
gotoxy(25, 15);writeln('RETIRO DE EFECTIVO');
gotoxy(10, 20);writeln('Desea hacer el retiro en dolares o colones?');
gotoxy(10, 21);writeln('Para retirar Dolares Presione "D" ');
gotoxy(10, 21);writeln('Para retirar Colones Presione "C" ');
readln(OpcionCambio);
case opcionCambio of
'c','C': COLON;
'd','D': DOLAR;
end;
procedure CONSULTASALDO; {consulta de saldo diaponible}
begin
clrscr;
gotoxy(25, 2);Writeln('Bienvenido al cajero automatico');
gotoxy(30, 3);writeln('del banco mucha plata');
gotoxy(20, 10);writeln('El saldo a su dispocision es de ',cuentas); }
procedure MENUPRINSIPAL;
var
OpcionMenu:char; {menu pricipal del cajero}
begin
clrscr;
gotoxy(25, 2);Writeln('Bienvenido al cajero automatico');
gotoxy(30, 3);writeln('del banco mucha plata');
gotoxy(25, 10);writeln('MENU PRINCIPAL');
gotoxy(2, 18);textcolor(green);highvideo;writeln('A');
gotoxy(4, 18);textcolor(white);normvideo;writeln('- Retiro de efectivo');
gotoxy(2, 20);textcolor(green);highvideo;writeln('B');
gotoxy(4, 20);textcolor(white);normvideo;writeln('- Consulta de Saldo');
gotoxy(2, 22);textcolor(green);highvideo;writeln('C');
gotoxy(4, 22);textcolor(white);normvideo;writeln('- Depositos');
gotoxy(2, 13);writeln('Escoga la letra correspondiente a la transaccion que desea realizar.');
gotoxy(2, 50);writeln('Para Salir Presione "S"');
OpcionMenu:= readkey;
gotoxy(30, 14);readln(OpcionMenu);
case (OpcionMenu) of
'A','a': RETIROEFECTIVO;
'B','b': CONSULTASALDO;
'C','c': DEPOSITO;
'S','s': menuarranque;
end;
readkey;
end;
begin
clrscr;
menuarranque;
MENUPRINSIPAL;
end.