jueves, 1 de diciembre de 2011

Cajero Automatico


Cajero automático
Clase principal
import java.io.*;
public class Cajero {
public static InputStreamReader Leer = new InputStreamReader(System.in);
public static BufferedReader Teclado = new BufferedReader(Leer);
public static void main(String[] args)throws IOException  {
int v=0;
poli [] num = new poli[4];
    num[0]=new cuenta(4000,"CARLA");
    num[1]=new cuenta(1100,"DANIELA");
    num[2]=new cuenta(8900,"JOSE");
    num[3]=new cuenta(50000,"PABLO");
    poli [] car1 = new poli[4];
car1[0]=new transferencia(0,"CARLA");
car1[1]=new transferencia(0,"DANIELA");
car1[2]=new transferencia(0,"JOSE");
car1[3]=new transferencia(0,"PABLO");
    //creacion de objetos para los usuarios
int aa=0;
int [] Contraseña=new int [5];
Contraseña[0]=123;             Contraseña[1]=456;
Contraseña[2]=789;             Contraseña[3]=012;
Contraseña[4]=555;
int [] Num_cuent=new int [5];
Num_cuent[0]=1200;            Num_cuent[1]=2222;
Num_cuent[2]=7890;            Num_cuent[3]=3333;
Num_cuent[4]=1010;
int aaa=0;boolean f=false;
do{
try{//manejo de execepciones
            f=false;
do{
System.out.println(" INTRODUZCA LA CONTRASEÑA");
int urser=Integer.parseInt(Teclado.readLine());
for(int i=0;i<5;i++){
if(urser==Contraseña[i])
{v=i;
System.out.println(" BIENVENIDO A NUESTRO CAJERO   ");
aa=1;
aaa=4;
num[i].info();}}
if(aa==0)
System.out.println(" CONTRASEÑA INCORRECTA ");
if(aaa!=4){
System.out.println(" PRESIONE 3 PARA VOLVER");
aaa=Integer.parseInt(Teclado.readLine());    
   }}while(aaa==3);}
catch(NumberFormatException e ){f=true;
System.out.println(" ERROR CONTRASEÑA INVALIDA "+"SOLO NUMERO "+e);
}}while(f);
  if(aa==1){int op; 
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("--4:CAMBIO DE CONTRASEÑA***--");
op=Integer.parseInt(Teclado.readLine());
//menu
switch (op) {
case 1://realiza transferencias de una cuenta a otra
boolean g=false;boolean veri,hh;
do{
try{veri=false;
System.out.println(" INTRODUZCA EL NUMERO DE CUENTA");
int urser=Integer.parseInt(Teclado.readLine());
do{
try{hh=false;
for(int i=0;i<5;i++){
if(urser==Num_cuent[i]){
g=true;
System.out.println(" INTRODUZCA LA CANTIDAD A TRANSFERIR");
int can=Integer.parseInt(Teclado.readLine());
int k=num[v].set();
if(can<=k){
    num[v].trans(can);
car1[i].trans(can);
car1[i].info();
}elseSystem.out.println(" NO CUENTA CON SUFICIENTE DINERO");
}}}
catch(NumberFormatException e){hh=true;
System.out.println(" ERROR SOLO NUMERO******TIPO DE ERROR*****"+ e);
}}while(hh);
   }catch(NumberFormatException e){veri=true;
System.out.println(" ERROR SOLO NUMERO******TIPO DE ERROR*****"+ e);
}}while(veri);
if(g==false)
System.out.println("    NUMERO DE CUENTA ERRONEO");
int sal=num[v].set();
System.out.println("    SU SALDO ACTUAL ES DE: "+sal);
break;
case 2://realiza retiros cuando el monto es mayor a 5$
boolean h;
        do{h=false;
try{
System.out.println(" INTRODUZCA LA CANTIDAD");
int can=Integer.parseInt(Teclado.readLine());
if(can<=num[v].set()){
num[v].retiro(can);
}elseSystem.out.println(" NO HAY SUFICIENTE DINERO");
int sald=num[v].set();

System.out.println("    SU SALDO ES   "+sald);
}catch(NumberFormatException e ){h=true;
System.out.println(" ERROR"+"SOLO NUMERO   "+e);
    }}while(h);
break;
case 3:
        //realiza las consultas de tu cuenta
System.out.println(" *************+CONSULTA DE SU SALDO+************* ");
num[v].info();
break;
case 4://realiza cambio de comtraceña
boolean b,l=true,n=true;
        do{
        try{b=false;
        do{
System.out.println(" *********INGRESE LA CONTRASEÑA******** ");
int contra=Integer.parseInt(Teclado.readLine());
if(contra==Contraseña[v]){l=false;
do{
System.out.println(" *********INGRESE LA NUEVA CONTRASEÑA******** ");
contra=Integer.parseInt(Teclado.readLine());
System.out.println(" *********INGRESE NUEVAMENTE LA NUEVA CONTRASEÑA******** ");
int contras=Integer.parseInt(Teclado.readLine());
if(contra==contras){n=false;
System.out.println(" *********CONTRASEÑA CAMBIADA******** ");
    Contraseña[v]=contra;
      }elseSystem.out.println(" ********CONTRASEÑA ERRONEA TIENEN QUE SER IGUALES VUELVA A INTENTAR********* ");
}while(n);
}elseSystem.out.println(" *********CONTRASEÑA ERRONEA VUELVA A INGRESAR******** ");
}while(l);

    }catch(NumberFormatException e ){b=true;
System.out.println(" ERROR"+"SOLO NUMERO   "+e);
    }}while(b);
   }
   }while(op<5);
           }}}

Clase cuenta

public class cuenta extends poli implements inter {
public static int in=5;
    public cuenta(int saldo,String nombre) {
        super(saldo,nombre);
    //this.a=b;
    }
    @Override
    public int set() {
        return this.saldo;
 
  }
    @Override
    public int trans( int a) {
       if(a>5){
            int o=(a*inp)/100 ;
        this.saldo-=a+o;
        }else System.out.println("NO SE PUEDE RETIRAR MENOS DE 5 $");   return this.saldo;}
    @Override
    public int consulta() {
      return this.saldo;
     }
    @Override
    public void retiro(int r) {   
        if(r>5){
            int o=(r*in)/100 ;
        this.saldo-=r+o;
        }else System.out.println("NO SE PUEDE RETIRAR MENOS DE 5 $"); 
    }
    @Override
    public void info() {
        System.out.println("SU SALDO ES DE:   "+consulta());     
}}

Interfaz

public interface inter {
public  int consulta();
public int inp=12;
}


Polimorfismo

public abstract class poli {
     protected int saldo;
protected String nombre;
    public poli(int saldo,String nombre) {
        this.saldo = saldo;
        this.nombre=nombre;
    }
public abstract int set();
    public abstract int trans(int a);
   public abstract void retiro(int r);
public abstract void info();
}




Transferencia

public class transferencia  extends poli  {
public static int in=5;

    public transferencia(int saldo, String nombre) {
        super(saldo, nombre);
    }
    @Override
    public void retiro(int r) {
     if(r>5){
        int o=(r*in)/100 ;
        this.saldo-=r+o;    
        }else System.out.println("NO SE PUEDE RETIRAR MENOS DE 5 $");
    }
    @Override
    public int set() {
    return this.saldo;   
    }
    @Override
    public void info() {
        System.out.println("EL SALDO TRANSFERIDO ES" +this.saldo);
    }
    @Override
    public int trans( int a) {
        return this.saldo+=a;
       
    }}

Ventana de ejecución


No hay comentarios:

Publicar un comentario