Este documento describe un programa de simulación de cajero automático en Java que permite a los usuarios iniciar sesión introduciendo una contraseña correcta y luego realizar transferencias, retiros o consultas de saldo. El programa consta de varias clases como Cuenta, Transferencia y Clase_Polimorfismo que heredan características de una interfaz y una clase abstracta. Al ejecutar el programa, el usuario puede seleccionar entre las opciones del menú después de iniciar sesión correctamente.
5. Programa que realiza la simulación de un Cajero Automático en Java Netbeans 6.8
El programa consiste en que si se introduce la contraseña y esta es correcta podra acceder a su
cuenta y al menu de opciones:
+++++++++++++Simulacion de Cajero+++++++++++
1.-Transferencia
2.-Retiro
3.-Consulta
El programa posee dos clases: Cuenta y Transferencia las cuales heredan de la clase padre
Clase_Polimorfismo la misma que es abstracta.
Ademas contiene una Interface: Interface la que contiene un solo metodo y una constante
declarada la misma que ya contiene su valor.
Sin dejar atras de la clase ejecutora la cual contiene manejo de excepciones para controlar los
digitos de la contraseña....
Clase Principal-Ejecutora del Programa
package Simula_Cajero;
import java.io.*;
public class Principal_Cajero {
public static InputStreamReader Leer = new InputStreamReader(System.in);
public static BufferedReader Teclado = new BufferedReader(Leer);
public static void main(String[] args) throws IOException {
Clase_Polimorfismo [] maru = new Clase_Polimorfismo[3];
maru[0] =new Cuenta (500,"Luis");
maru[1] =new Cuenta (700,"Xander");
maru[2] =new Cuenta (600,"Missael");
Clase_Polimorfismo [] leo = new Clase_Polimorfismo[3];
leo[0]= new Transferencia(0,"Luis");
leo[1]= new Transferencia(0,"Xander");
leo[2]= new Transferencia(0,"Missael");
int contr[]= new int [3];
contr[0]=1000;
contr[1]=2000;
contr[2]=3000;
int cta[]= new int[3];
cta[0]=100;
cta[1]=200;
cta[2]=300;
int m=0,l=0,q=0;
boolean falso=false;
do{
try{ falso=false;
6. do{
System.out.println(" INTRODUSCA SU CONTRASEÑA:");
int usuario=Integer.parseInt(Teclado.readLine());
if(usuario==contr[i]){
m=i;
System.out.println(" BIENVENIDO Al SISTEMA DE CAJERO AUTOMATICO ");
l=1;
q=2;
maru[i].Informacion();}}
if(l==0)
System.out.println(" CONTRASEÑA ERRONEA ");
if(q !=2){
System.out.println(" PRESIONE 1 PARA VOLVER");
q=Integer.parseInt(Teclado.readLine());
}}while(q==1);}
catch(NumberFormatException e ){falso=true;
System.out.println(" ERROR CONTRASEÑA INVALIDA"+"SOLO NUMERO "+e);
}}while(falso);
if(l==1){ int o;
do{
System.out.println("Que desea hacer:");
System.out.println("1.-Transferencia");
System.out.println("2.-Retiro");
System.out.println("3.-Consulta");
System.out.println("Ingrese opcion:");
o=Integer.parseInt(Teclado.readLine());
switch(o){
case 1:
boolean mar=false;
System.out.println(" INTRODUSCA EL NUMERO DE CUENTA");
int usuario=Integer.parseInt(Teclado.readLine());
if(usuario==cta[i]){mar=true;
System.out.println(" Introdusca la cantidad a Transferir:");
int cant=Integer.parseInt(Teclado.readLine());
int lu=maru[m].Saldo();
if(cant<=lu){
maru[m].Transferencia(cant);
leo[i].Transferencia(cant);
leo[i].Informacion();
}else System.out.println(" NO HAY SUFICIENTE DINERO");}}
if(mar==false){
System.out.println(" NUMERO DE CUENTA ERRONEO");}
maru[m].Informacion();
break;
case 2:
boolean my=false;
do{ my=false;
try{
7. System.out.println(" Introduzca la Cantidad a Retirar:");
int cant1=Integer.parseInt(Teclado.readLine());
if(cant1<=maru[m].Saldo()){
maru[m].Retiro(cant1);
}else System.out.println(" NO HAY SUFICIENTE DINERO PARA RETIRAR");
maru[m].Informacion();
}catch(NumberFormatException e ){my=true;
System.out.println(" ERROR"+"SOLO NUMERO "+e);
}}while(my);
break;
case 3:
System.out.println(" *************+BIENVENIDO +************* ");
maru[m].Informacion();
}
Clase Polimorfismo
package Simula_Cajero;
public abstract class Clase_Polimorfismo {
protected int sald;
protected String nom;
public Clase_Polimorfismo(int sald, String nom) {
this.sald = sald;
this.nom = nom;
}
public abstract int Saldo();
public abstract int Transferencia(int t);
public abstract void Retiro (int r);
public abstract void Informacion();
}
Clase Cuenta
package Simula_Cajero;
public class Cuenta extends Clase_Polimorfismo implements Interface {
public static int sald_ini=5;
public Cuenta(int sald, String nom) {
super(sald, nom);
}
@Override
public int Saldo() {
return this.sald;
}
@Override
public int Transferencia(int t) {
if(t>5){
int trans=(t*sald_ini)/100;
this.sald-=t+trans;}
else
8. System.out.println("No se puede Transferir menos de $5");
return this.sald;
}
@Override
public void Retiro(int r) {
if(r>5){
int re=(r*sald_ini)/100;
this.sald-=r+re;}else
System.out.println("No se puede Retirar menos de $5"); }
public int Consulta_Saldo() {
return this.sald;
}
@Override
public void Informacion() {
System.out.println("Hola:" +this.nom);
System.out.println("Su Saldo actual es:" +this.Consulta_Saldo()); }}
Interface
package Simula_Cajero;
public interface Interface {
public int Consulta_Saldo();
public int imp=2;
}
Clase Transferencia
package Simula_Cajero;
public class Transferencia extends Clase_Polimorfismo {
public static int sald_ini=5;
public Transferencia(int sald, String nom) {
super(sald, nom);
}
@Override
public void Retiro(int r) {
if(r >5){
int ret=(r*sald_ini)/100;
this.sald=r+ret;
}else
System.out.println("No se puede retirar menos del Saldo Inicial");}
@Override
public int Saldo() {
return this.sald;
}
@Override
public void Informacion() {
System.out.println("El Saldo Transferido es:" + this.sald);
}
@Override
public int Transferencia(int t) {
return this.sald+=t;
}}
9. Ejecucion del programa con la opcion Transferencia
Ejecucion del programa con la opcion Retiro