Adsence

miércoles, 4 de enero de 2012

Cajero-Automtico

Leave a Comment
[caption id="attachment_903" align="aligncenter" width="603"]Cajero automatico en Java Cajero automatico en Java[/caption]

Un banco en particular ha contratado sus servicios para realizar un programa orientado a objetos que tenga las siguientes características:

  • Debe poseer un menú que me permita seleccionar entre Crear una Cuenta nueva, Modificar una cuenta existente-depositar o retirar fondos, Administrar una Cuenta o bien Eliminar una Cuenta.

  • Para Crear una cuenta se requiere de los siguientes datos de los clientes: Código de cuenta, CI, Nombre, Monto (Inicial de 50 $us), Fecha de Apertura de Cuenta, sexo, teléfono, dirección y contraseña (Cadena de Texto).

  • En el caso de que se quieran hacer modificaciones de una cuenta, el sistema debe poder hacer búsquedas tanto por Código de cuenta como por # de CI, para esto sería deseable que la información este ordenada por código de cuenta.

  • Para los Depósitos en una cuenta solo es necesario el Código de esta o el CI del dueño y por supuesto el importe a depositar.

  • Para los retiros además de código de la cuenta, el Cliente debe confirmar con la contraseña correcta y el # de CI que es el dueño de la cuenta, caso contrario no se le permitirá hacer retiros.

  • La eliminación de la cuenta equivale a retirar todos los fondos de ésta y eliminarla del sistema, se debe hacer el control necesario para éstas eliminaciones.

  • En la sección de Administración de cuentas:



  1. Puede darse el caso de que el cliente olvide su contraseña, en este caso debe existir una opción que permita poder recordar la contraseña ingresando correctamente los datos imprescindibles de la cuenta.

  2. También puede ocurrir que el cliente quiera cambiar su contraseña, en este caso solo serían necesarios los datos del código de cuenta, el CI, y la contraseña anterior.

  3. Además en esta sección debe existir una opción para poder ver el saldo disponible de la cuenta.



  • Por ordenes de la Superintendencia de Bancos, cualquier banco debe tener como máximo un total de 200 cuentas de usuario, esto debe ser controlado en el programa.


Importante: Tome como datos imprescindibles el Código del usuario, el CI, Nombre, monto y contraseña y por si acaso si el monto a ingresar es mínimo se deberia rechazar la cuenta y no tomarla en cuenta en el registro... el sistema la elimina automáticamente.



[java]

import java.util.Scanner;
public class Cajero
{
public static Persona[] persona=new Persona[200];
public static int cantidad=0;

public static void main(String args[])
{
System.out.println("--******----********------*---*----------*---------******----**----*------******");
System.out.println("--*----*----*-------------*--*----------*-*--------*---*-----**----**-----*-----");
System.out.println("--*----*----*-------------*-*----------*---*-------*--*------**----*-*----*-----");
System.out.println("--*----*----********------**----------*-----*------*-*-------**----*--*---*-----");
System.out.println("--*----*-----------*------**---------*********-----**--------**----*---*--*-----");
System.out.println("--*----*-----------*------*-*-------*---------*----*-*-------**----*----*-*-----");
System.out.println("--*----*-----------*------*--*-----*-----------*---*--*------**----*-----**-----");
System.out.println("--******----********------*---*---*-------------*--*---*-----**----*------*-----");
int opcion=-1;
while(opcion!=5)
{
opcion=menu();
switch(opcion)
{
case 1: nueva_cuenta();
break;
case 2: modificar_cuenta();
break;
case 3: administracion();
break;
case 4: eliminar_cuenta();
break;
}
}
}
public static int menu()
{
Scanner umss=new Scanner(System.in);
System.out.println("\n----------------------------------------------------------\n");
System.out.println("1. Crear una cuenta nueva");
System.out.println("2. Modificar una cuenta");
System.out.println("3. Administrar una cuenta");
System.out.println("4. Eliminar una cuenta");
System.out.println("5. Salir");
System.out.println("\n----------------------------------------------------------");
int opcion=-1;
while(opcion< 1||opcion >5)
{
System.out.print("Digite la opción que desee: ");
opcion=umss.nextInt();
System.out.println("----------------------------------------------------------\n");
if(opcion< 1||opcion >5)
{
System.out.println("Dígito no valido... Intente nuevamente...");
}
}
return opcion;
}
public static void nueva_cuenta()
{
if(cantidad< 200)
{
Scanner umss=new Scanner(System.in);
int codigo,ci;
String nombre,apellido,contrasenia;
double monto;
System.out.print("Ingrese su codigo: ");
codigo=umss.nextInt();
System.out.print("Ingrese su numero de CI: ");
ci=umss.nextInt();
System.out.print("Ingrese su nombre: ");
nombre=umss.next();
System.out.print("Ingrese su apellido: ");
apellido=umss.next();
System.out.print("Ingrese su monto que desea depositar: ");
monto=umss.nextDouble();
System.out.print("Ingrese su contrasenia: ");
contrasenia=umss.next();
Persona pers=new Persona(codigo,ci,nombre,apellido,monto,contrasenia);
persona

[cantidad]=pers;
cantidad++;
ordenar();
if(monto< 50)
{
rechazarCuenta();
}
}
else
{
System.out.print("REGISTRO LLENO");
}
}
public static void rechazarCuenta()
{
cantidad--;
persona[cantidad]=null;
System.out.println("\t\t***CUENTA RECHAZADA***");
}
public static void eliminar_cuenta()
{
Scanner umss=new Scanner(System.in);
String contrasenia;
System.out.print("Ingrese su contrasenia: ");
contrasenia=umss.next();
int pos=buscar(contrasenia);
if(pos==-1)
{
System.out.println("Contrasenia incorrecta...");
}
else
{
for(int c=pos;c< cantidad-1;c++)
{
persona[c][/c]

=persona

[c language="+1"][/c]

;
}
cantidad--;
persona

[cantidad]=null;
System.out.println("CUENTA ELIMINADA");
}
}
public static int buscar(String contra)
{
int res=-1;
for(int c=0;c< cantidad;c++)
{
if(persona[c][/c]

.getContrasenia().equals(contra))
{
res=c;
}
}
return res;
}
public static void ordenar()
{
for(int c=0;c&lt; cantidad-1;c++)
{
for(int k=c+1;k&lt; cantidad;k++)
{
if(persona

[c][/c]

.getCodigo() >persona[k].getCodigo())
{
Persona aux=persona

[c][/c]

;
persona

[c][/c]

=persona[k];
persona[k]=aux;
}
}
}
}
public static int buscar1(int codigo)
{
int res=-1;
for(int c=0;c< cantidad;c++)
{
if(persona

[c][/c]

.getCodigo()==codigo)
{
res=c;
}
}
return res;
}
public static int buscar2(int ci)
{
int res=-1;
for(int c=0;c&lt; cantidad;c++)
{
if(persona

[c][/c]

.getCi()==ci)
{
res=c;
}
}
return res;
}
public static void modificar_cuenta()
{
Scanner umss=new Scanner(System.in);
System.out.print("¿Usted desea Depositar o Retirar de su cuenta(D/R)?\n::::::::: ");
String decision=umss.next();
if(decision.equals("D"))
{
System.out.print("\t\tIngrese su número de CI: ");
int ci=umss.nextInt();
int pos=buscar2(ci);
if(pos==-1)
{
System.out.println("Su número de CI es incorrecto...");
}
else
{
Persona p=persona[pos];
System.out.print("Ingrese el monto que usted desee depositar: ");
double monto_depositar=umss.nextDouble();
p.setMontoDeposito(monto_depositar);
}
}
else
{
if(decision.equals("R"))
{
System.out.print("\t\tIngrese su contraseña: ");
String cont=umss.next();
System.out.print("\t\tIngrese su número de CI: ");
int carnet=umss.nextInt();
int pos1=buscar(cont);
int pos2=buscar2(carnet);
if((pos1==-1) || (pos2==-1))
{
System.out.println("Datos incorrectos... Acción cancelada...");
}
else
{
Persona per=persona[pos1];
System.out.print("Ingrese el monto que usted desea retirar: ");
double monto_retiro=umss.nextDouble();
per.setMontoRetiro(monto_retiro);
}
}
}
}
public static void administracion()
{
Scanner umss=new Scanner(System.in);
System.out.print("Para cambiar su contraseña, ingrese su contraseña actual: ");
String contrasenia=umss.next();
int pos=buscar(contrasenia);
if(pos==-1)
{
System.out.print("\tIngrese el número de su CI: ");
int ci=umss.nextInt();
System.out.print("\tIngrese su codigo: ");
int codigo=umss.nextInt();
int pos1=buscar2(ci);
int pos2=buscar1(codigo);
if((pos1==-1) || (pos2==-1))
{
System.out.println("Datos incorrectos, no se cambiará su contraseña\n");
}
else
{
Persona p1=persona[pos1];

System.out.print("Teclee su nueva contraseña: ");
String new_cont=umss.next();
p1.setContrasenia(new_cont);
System.out.print("Teclee M si desea saber su monto, caso contrario presione cualquier tecla: ");
String decision=umss.next();
if(decision.equals("M"))
{
System.out.println("Monto actual: "+p1.getMonto());
}
}
}
else
{
Persona individuo=persona[pos];
System.out.print("Código de cuenta: ");
int cod=umss.nextInt();
System.out.print("Ingrese su CI: ");
int ci=umss.nextInt();
if((individuo.getCodigo()==cod) &amp;&amp; (individuo.getCi()==ci))
{
System.out.print("Ingrese su nueva contraseña: ");
String new_Cont=umss.next();
individuo.setContrasenia(new_Cont);
System.out.print("Teclee M si desea saber su monto, caso contrario presione cualquier tecla: ");
String decision=umss.next();
if(decision.equals("M"))
{
System.out.println("Monto actual: "+individuo.getMonto());
}
}
else
{
System.out.println("Datos incorrectos, contraseña no se cambiara");
}
}
}
}
/*
public class Persona
{
private int codigo;
private int ci;
private String nombre;
private String apellido;
private double monto;
private String contrasenia;

public Persona(int cod,int ci,String nom,String apellido,double monto,String contrasenia)
{
codigo=cod;
this.ci=ci;
nombre=nom;
this.apellido=apellido;
this.monto=monto;
this.contrasenia=contrasenia;
}
public int getCodigo()
{
return codigo;
}
public int getCi()
{
return ci;
}
public String getNombre()
{
return nombre;
}
public String getApellido()
{
return apellido;
}
public double getMonto()
{
return monto;
}
public String getContrasenia()
{
return contrasenia;
}
public void setContrasenia(String cont)
{
contrasenia=cont;
}
public void setMontoDeposito(double montoDepositar)
{
monto=monto+montoDepositar;
}
public void setMontoRetiro(double montoRetiro)
{
monto=monto-montoRetiro;
}
}
*/

[/java]

0 comentarios :