CAJERO AUTOMÁTICO
Este programa cajero automática realiza todas las operaciones que en verdad realiza los cajeros como son transferencias retiros y consultas además de cambio de contraseñas. A continuación les presentamos el código:
Clase ejecutora
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 [] car = new poli[4];
car[0]=new cuenta(4000,"CARLOS");
car[1]=new cuenta(5000,"DANIEL");
car[2]=new cuenta(5000,"JUAN");
car[3]=new cuenta(5000,"PEDRO");
poli [] car1 = new poli[4];
car1[0]=new transferencia(0,"CARLOS");
car1[1]=new transferencia(0,"DANIEL");
car1[2]=new transferencia(0,"JUAN");
car1[3]=new transferencia(0,"PEDRO");
//creacion de objetos para los usuarios
int aa=0;
int [] c=new int [5];
c[0]=1111;c[1]=2222;c[2]=3333;c[3]=4444;c[4]=5555;
int [] a=new int [5];
a[0]=111;a[1]=222;a[2]=333;a[3]=444;a[4]=555;
int aaa=0;boolean f=false;
do{
try{//manejo de execepciones
f=false;
do{
System.out.println(" INTRODUSCA CONTRACEÑA");
int urser=Integer.parseInt(Teclado.readLine());
for(int i=0;i<5;i++){
if(urser==c[i])
{v=i;
System.out.println(" BIENVENIDA A NUESTRO SISTEMA ");
aa=1;
aaa=4;
car[i].info();}}
if(aa==0)
System.out.println(" comtraseña erronea ");
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 COMTRACEÑA INVALIDA"+"SOLO NUMERO "+e);
}
}while(f);
if(aa==1){int op;
do{
System.out.println("QUE DESEA HACER 1:Transferencia***----2:RETIRO***----3:CONSULT*****-----4:CAMBIO DE COMTRACEÑ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(" INTRODUSCA EL NUMERO DE CUENTA");
int urser=Integer.parseInt(Teclado.readLine());
do{
try{hh=false;
for(int i=0;i<5;i++){
if(urser==a[i]){g=true;
System.out.println(" introdusca la cantidad");
int can=Integer.parseInt(Teclado.readLine());
int k=car[v].set();
if(can<=k){
car[v].trans(can);
car1[i].trans(can);
car1[i].info();
}else System.out.println(" NO HAY 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=car[v].set();
System.out.println(" SU SALDO ES "+sal);
break;
case 2://realiza retiros cuando el monto es mayor a 5$
boolean h;
do{h=false;
try{
System.out.println(" introdusca la cantidad");
int can=Integer.parseInt(Teclado.readLine());
if(can<=car[v].set()){
car[v].retiro(can);
}else System.out.println(" NO HAY SUFICIENTE DINERO");
int sald=car[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(" *************+BIENVENIDO+************* ");
car[v].info();
break;
case 4://realiza cambio de comtraceña
boolean vv,l=true,n=true;
do{
try{vv=false;
do{
System.out.println(" *********INGRESE LA CONTRASEÑA******** ");
int contra=Integer.parseInt(Teclado.readLine());
if(contra==c[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******** ");
c[v]=contra;
}else System.out.println(" ********CONTRASEÑA ERRONEA TIENEN QUE SER IGUALES VUELVA A INTENTAR********* ");
}while(n);
}else System.out.println(" *********CONTRASEÑA ERRONEA BUELVA A INGRESAR******** ");
}while(l);
}catch(NumberFormatException e ){vv=true;
System.out.println(" ERROR"+"SOLO NUMERO "+e);
}}while(vv);
} }while(op<5); }}}
Clase hija
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("HOLA "+this.nombre);
System.out.println("SU SALDO ES DE: "+consulta());
}}
Clase 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;
}}
Clase Interface
public interface inter {
public int consulta();
public int inp=12;}
Clase abstracta
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();}
EJECUCIÓN:
PROGRAMA DE POLIMORFISMO
En este programa aplicamos polimorfismo e interfaz, los procesos que realiza es todas los cálculos que se le hacen a las figuras Geométricas;
CLASE EJECUTORA
package practica;
import javax.swing.JOptionPane;
import java.io.*;
import java.util.Random;
public class Practica {
public static InputStreamReader leer= new InputStreamReader(System.in);
public static BufferedReader t = new BufferedReader(leer);
public static void main(String[] args)throws IOException {
Random aa=new Random();
Figura [] car = new Figura[4];
car[0]=new Linea("LINEA",12,10,20,30);
car[1]=new Poligono("POLIGONO",5,6,7);
car[2]=new Circulo("CIRCULO",4);
car[3]=new Rectangulo("RECTANGULO",3,4);
String salida="";
for(int i=0;i<4;i++){
int n= aa.nextInt(7);
salida+=car[i].Informacion();
System.out.println(n);
}
JOptionPane.showMessageDialog( null, salida );
}}
CLASE CIRCULO
package practica;
public class Circulo extends Figura implements Interface{
private double radio;
public Circulo (String n,int radio){
super(n);
this.radio= radio;}
@Override
public double area() {return pi * Math.pow(radio,2);}
public double Diametro(){
return Math.pow(radio,2); }
@Override
public String Informacion() {
String salida="";
salida+="\n"+this.nombreFigura+"\n"+"\n EL AREA ES :"+this.area()+ "\n y su diametro es" +this.Diametro()+"\n";
return salida; }}
CLASE LINEA
package practica;
public class Linea extends Figura {
private int x1;
private int x2;
private int y1;
private int y2;
public Linea(String nombreFigura, int x1, int x2, int y1, int y2) {
super(nombreFigura);
this.x1 = x1;
this.x2 = x2;
this.y1 = y1;
this.y2 = y2;}
public double Distancia(){
double r;
r=Math.sqrt(Math.pow((this.x2-this.x1),2)+Math.pow((this.y2-this.y1),2));
return r; }
public String Pendiente (){
String aa="";
double p1;
p1=(this.x1+this.x2)/2;
double p2=(this.y1+this.y2)/2;
aa+="EL PUNTO MEDIO ES :" +p1+" , "+p2;
return aa;
}
@Override
public String Informacion() {
String salida="";
salida+=this.nombreFigura+"\n"+"La distancia de la linea es :"+this.Distancia()+"\n y su punto medio es :"+this.Pendiente()+"\n";
return salida;}
}
CLASE POLIGONO
package practica;
public class Poligono extends Figura{
private int apotema;
private int lados;
private int longitud;
public Poligono(String nombreFigura, int apotema,int lados,int l) {
super(nombreFigura);
this.apotema = apotema;
this.lados=lados;
this.longitud=l;
}public double area() {
return (this.perimetro()*this.apotema)/2;
}
public double perimetro(){
return this.longitud*this.lados;
}
@Override
public String Informacion() {
String salida="";
salida+="\n"+this.nombreFigura+"\n"+"\n EL AREA ES :"+this.area()+ "\n y su perimetro del poli ES" +this.perimetro()+"\n";
return salida; }}
CLASE INTERFACE
package practica;
public interface Interface {
public double pi=3.1416;
public abstract double area();
}
CLASE RECTANGULO
package practica;
public class Rectangulo extends Figura implements Interface{
private int ancho;
private int alto;
public Rectangulo(String nombreFigura, int ancho, int alto) {
super(nombreFigura);
this.ancho = ancho;
this.alto = alto;}
@Override
public double area() { return this.alto*this.ancho;}
@Override
public String Informacion() {
String salida="";
salida+="\n"+super.nombreFigura+"\n"+"\n EL AREA ES :"+this.area()+"\n";
return salida;}
}
CLASE ABSTRACTA FIGURA
package practica;
public abstract class Figura {
protected String nombreFigura;
public Figura(String nombreFigura){
this.nombreFigura=nombreFigura;
}public abstract String Informacion();
}
EJECUCIÓN:
No hay comentarios:
Publicar un comentario