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