Caixa eletrônico usando a classe Hashtable

Publicado por Perfil removido 27/06/2007

[ Hits: 8.071 ]

Download 2824.4205




O uso da classe Hashtable geralmente causa muitas dúvidas nos iniciantes em Java.

Livros de Java são caros e a internet é muita escassa de informações sobre essa classe. Eu mesmo comprovei fazendo diversas buscas de todos os tipos em sites de busca de renome.

Assim, espero que esse script possa ajudar programadores que possuem dúvidas semelhantes às que eu tive.

  



Esconder código-fonte

//Classe principal que contém o método main.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class CashDispenser {

      public static void main(String[] args) {
              int opcao = 0, sair=0;
              BufferedReader ler = new BufferedReader(new InputStreamReader(System.in));
              HashtableCliente banco = new HashtableCliente();
   do {
                      try {
      printMenu();
      opcao = Integer.parseInt(ler.readLine());

      switch (opcao) {

      case 0: // Cadastro
      {
      String nome, senha, conta, agencia;
      System.out.println("Nome:");
      try {
      nome = ler.readLine();

                  System.out.println("Conta:");
      conta = ler.readLine();
      System.out.println("Agencia:");
      agencia = ler.readLine();
      System.out.println("Senha:");
      senha = ler.readLine();
                 Cliente novoCliente = new Cliente(nome, conta, agencia,senha);
                  banco.inserirCliente(novoCliente);
                     } catch (IOException e) {
            e.printStackTrace();
      }
   }
   break;

   case 1: // Depositar
   {
   String verificaagencia, verificaconta;
                float verificaquantia;
     System.out.println("Agencia:");
   try {
                   verificaagencia = ler.readLine();
      System.out.println("Conta:");
      verificaconta = ler.readLine();
      System.out.println("Valor:");
      verificaquantia = Float.parseFloat(ler.readLine());

      if (banco.depositar(verificaconta, verificaagencia, verificaquantia))
      System.out.println("Operação realizada com sucesso.");
   else               System.out.println("Operação não realizada");
   System.out.println("Concluido");
   }catch (IOException e) {
   e.printStackTrace();
   }

               }
   break;

   case 2: {// Saldo

   String conta = null, agencia = null;
                 try {
                System.out.println("Conta:");
              conta= ler.readLine();
      System.out.println("Agencia:");
      agencia=ler.readLine();
      }catch (IOException e) {
      e.printStackTrace();
      }
      banco.verificarSaldo( conta, agencia);
      }
      break;

      case 3:{ //Sacar

      String conta = null, agencia = null;
      float valor=0;
      try {
      System.out.println("Conta:");
      conta= ler.readLine();
      System.out.println("Agencia:");
      agencia=ler.readLine();
      System.out.println("Digite o valor a ser sacado:");
      valor=Float.parseFloat(ler.readLine());
      } catch (IOException e) {
      e.printStackTrace();
      }

      if(banco.sacar(conta, agencia, valor)){
      System.out.println("Operação realizada com sucesso.\nRetire seu dinheiro.");
      }else{
                                System.out.println("Operação não realizada.");
      System.out.println("Saldo insuficiente.");
      }
      }
      break;

      case 4:{
      sair++;
      }
      break;

      }
      }catch(Exception e){}
      } while(sair==0);
   }
   public static void printMenu() {
      System.out.println("");
      System.out.println("-CASH DISPENSER- ");
      System.out.println("------Menu------");
      System.out.println("| <0> Cadastrar|");
      System.out.println("| <1> Depositar|");
      System.out.println("| <2> Saldo    |");
      System.out.println("| <3> Sacar    |");
      System.out.println("| <4> Sair     |");
      System.out.println("----------------");
      System.out.print("Escolha uma opção: ");
      System.out.println("");
   }
}




//Classe Cliente

public class Cliente {
   private String nome;
   private String senha;
   private String conta;
   private String agencia;
   private float saldo;

   public Cliente(String nome, String conta, String agencia, String senha){
      this.nome= nome;
      this.conta= conta;
      this.agencia= agencia;
      this.senha= senha;
   }

   public void imprimirDados() {
      System.out.println("Saldo:" + saldo);
   }

   public String getAgencia() {
      return agencia;
   }

   public void setAgencia(String agencia) {
      this.agencia = agencia;
   }

   public String getConta() {
      return conta;
   }

   public void setConta(String conta) {
      this.conta = conta;
   }

   public String getNome() {
      return nome;
   }

   public void setNome(String nome) {
      this.nome = nome;
   }

   public float getSaldo() {
      return saldo;
   }

   public void setSaldo(float saldo) {
      this.saldo = saldo;
   }

   public String getSenha() {
      return senha;
   }

   public void setSenha(String senha) {
      this.senha = senha;
   }

   public void imprimirsaldo(){
      System.out.println("Seu saldo e de: R$" + saldo);
   }
}



//Classe HashtableCliente

import java.util.Hashtable;
import java.util.Scanner;

public class HashtableCliente {

   Hashtable<String, Cliente> hashtable;

   Scanner ler = new Scanner(System.in);

   public HashtableCliente() {
      hashtable = new Hashtable<String, Cliente>();
   }

   public boolean check(Cliente cliente) {
      if (cliente == null)
         return false;
      if (cliente.getSenha().length() == 0)
         return false;
      if (cliente.getConta().length() == 0)
         return false;
      if (cliente.getAgencia().length() == 0)
         return false;

      return true;
   }

   public boolean inserirCliente(Cliente cliente) {
      if (check(cliente)) {
      String chave = cliente.getConta() + cliente.getAgencia();

      if(hashtable.get(chave)!=null){
      System.out.println("Cliente já existe...");
      return false;
      }
      hashtable.put(chave, cliente);
      return true;
      }
      return false;
   }

   public boolean sacar(String conta, String agencia, float valor){
      Cliente novoCliente = buscarCliente(conta, agencia);
      if (novoCliente != null) {
      if(novoCliente.getSaldo()>= valor){
      novoCliente.setSaldo(novoCliente.getSaldo() - Math.abs(valor));
      return true;
      }
      }else{
      }
      return false;
   }

   public Cliente buscarCliente(String conta, String agencia) {
      Object obj = hashtable.get(conta + agencia);
      if (obj != null) {
         if (obj instanceof Cliente) {
         Cliente novoCliente = (Cliente) obj;
         return novoCliente;
         }
      }
      return null;
   }

   public boolean depositar(String conta, String agencia, float valor) {
      Cliente novoCliente = buscarCliente(conta, agencia);
      if (novoCliente != null) {
      novoCliente.setSaldo(novoCliente.getSaldo() + Math.abs(valor));
         return true;
      } else
         return false;
   }

   public void verificarSaldo(String conta, String agencia) {

      Cliente cliente = buscarCliente(conta, agencia);

      if (cliente != null) {
         Scanner ler = new Scanner(System.in);
         System.out.println("Senha:");
         String s= ler.nextLine();
         if(cliente.getSenha().equals(s)){
            cliente.imprimirDados();
         }else{
         System.out.println("Senha Inválida");
             }
      }else{
      System.out.println("Operação não realizada.");
      }
   }
}

Scripts recomendados

Trabalhando com Cores

Gerando números randômicos

Loops rotulados

Retorno de nomes (com gráficos)

Como fazer um automato em Java


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts