terça-feira, 6 de dezembro de 2011

POO Java AutomatedTellerMachine

Classe AutomatedTellerMachine

import java.util.Scanner;
public class AutomatedTellerMachine {
public static void main(String[] args) {                
                // x é do laço while
                int x=1;
                int p=0;
          
Conta[] minhasContas = new Conta[5];
Scanner input = new Scanner ( System.in );
                populaVetorContas(minhasContas, 5);
                boolean achou = false;
                // laço de repetição nao ira sair pois o numero x nao é alterado ja tem um valor fixo.
while (x!=0){
                    // invoca o método para popular a base (vetor) de contas
                    // passa por parâmetro o vetor para ser populado e a quantidade de posições                 
                    //tela de boas vindas do Usuario
                    System.out.println("+-------------------------------+");
                    System.out.println("| Bem vindo Ao caixa Eletronico |");
                    System.out.println("+-------------------------------+");
                    System.out.println("|Numero da conta:               |");
                    // vai ler os dados informados pelo usuario;
                    int num = input.nextInt();
                    System.out.println("|Senha da conta:                |");
                    int sen = input.nextInt();
                    System.out.println("+-------------------------------|");
                    // busca o numero da conta e a senha na base (vetor de contas)
                    
                    
                    Conta c = new Conta();
                    for (int i = 0; i < 5; i++) {
c = minhasContas[i];
                        
                        //verifica se a o numero da conta e senha do usuario confere;
if (c.numero == num && c.senha == sen) {
                            p=i;
                            achou = true;
                            break;
}
                    }
                    // verifica se a busca encontrou ou não o numero e senha de conta
                    if (achou) {
                        
                        //efetuado novo laço de repetição da conta desejada
                        int a=0;
                        while (a!=5){
                            //Conta clin = new Conta();
                            //clin.detalhe();
                            
                            System.out.println("\nConta encontrada no ATM\n");
                            System.out.println("+-------------------------------+");
                            System.out.println("|        Menu Cliente                    |");
                            System.out.println("+---+--------------------------+");
                            System.out.println("| 1 | Saldo                                  |");
                            System.out.println("| 2 | Saque                                 |");
                            System.out.println("| 3 | Deposito                             |");
                            System.out.println("| 4 | Transferencia                      |");
                            System.out.println("| 5 | Fim de sessao do ATM      |");
                            System.out.println("+---+--------------------------+");
                            System.out.println("\nEscolha uma Opção: ");
                            a = input.nextInt();
                            
                            if (a==1){
                                System.out.println("seu saldo é: ");
                                c.saldo();    
                            }
                            
                            if (a==2){
                                c.saca();
                                
                            }
                            if (a==3){
                                c.depositar();
                                
                            }
                            if (a==4){
                                int testa = 0;
                            Conta co = new Conta();
                            
                            System.out.println("\n+---------------------------------+\n");
                            
                            do {
                                
                                System.out.println("Conta de destino: ");
                                float conta_destino = input.nextInt();
                                float valor;
                                
                                for (int i = 0; i < 5; i++)
                                {
                                    co = minhasContas[i];
                                    if (co.numero == conta_destino)
                                    {
                                        ++testa;
                                        valor = c.transfere();
                                        
                                        co.saldo = co.saldo + valor;
                                        c = minhasContas[p];                                      
                                    }
                                }
                                if (testa == 0)
                                {
                                    System.out.print("\nConta não encontrada no ATM!");
                                    System.out.print("\nDigite novamente a conta de  destino\n\n!");
                                }
                            } while (testa == 0);
                            System.out.println("\n+---------------------------------+\n");
                            
                                
                            }
                        }
                        
                    } else {
System.out.println("\nConta NÃO encontrada");
                        System.out.println("Confira numero da Conta e Senha\n");
                    }
                    System.out.println("\nATM Finalizado");
                }
            }
            
public static void populaVetorContas(Conta minhasContas[], int qtdContas) {
// dados dos objetos conta
// cada posição do vetor corresponde a um objeto Conta
int numerosConta[] = {1,2,3,4,5};
int senhasConta[] = {11,22,33,44,55};
float limitesConta[] = {1000,2000,3000,4000,5000};
float saldosConta[] = {10,0,20,30,40};
// dados dos objetos cliente
// cada posição do vetor corresponde a um objeto cliente
// do atributo titular da conta
String nomesCliente[] = {"Astolfo","Baruk","Rubião","Fernando","Adriano"};
int cpfsCliente[] = {033,034,035,036,037};
// define os objetos e atribui ao vetor
for (int i = 0; i < qtdContas; i++) {
// cria objeto conta
Conta conta = new Conta ();
// definie os valores dos atributos
                        
conta.numero = numerosConta[i];
conta.senha = senhasConta[i];
conta.limite = limitesConta[i];
conta.saldo = saldosConta[i];
                       
// cria objeto cliente 
Cliente cliente = new Cliente();
// define os valores dos atributos
cliente.nome = nomesCliente[i];
cliente.cpf = cpfsCliente[i];
// define o objeto cliente no atributo titular da conta
conta.titular = cliente;
minhasContas[i] = conta;
}
}
     
}


Classe Conta

import java.util.Scanner;
public class Conta {
int numero;
int senha;
float limite;
float saldo;
        String nome;
        int cpf;
Cliente titular;
    
        
/*public void detalhe(){
            System.out.println("Nome "+ this.titular);
            System.out.println("CPF"+this.cpf);
        }
            
        */
        //deposita
        public void depositar(){
            System.out.println("+---------------------------------+\n");
            
            Scanner input = new Scanner (System.in);
             float valor = 0;
            
            System.out.println("Valor do Depósito: ");
            valor = input.nextFloat();
            
            if (valor != 0)
            {
                this.saldo = (float) (this.saldo + valor);
                System.out.println("\nDepósito efetuado com sucesso!\n");
            }
            
            System.out.println("+---------------------------------+\n\n");
        }
// saca()
        public void saca(){
            int opcao=0;
            float valor=0;
            while(opcao!=6){
                Scanner input = new Scanner (System.in);
                System.out.println("+-------------------------+5");
                System.out.println("|       Tela saque        |");
                System.out.println("+-------------------------+");
                System.out.println("| 1 | Sacar RS20,00       |");
                System.out.println("| 2 | Sacar RS40,00       |");
                System.out.println("| 3 | Sacar RS60,00       |");
                System.out.println("| 4 | Sacar RS100,00      |");
                System.out.println("| 5 | Sacar outros valores|");
                System.out.println("| 6 | Cancelar saque      |");
                System.out.println("+-------------------------+");
                System.out.println("informe o codigo: ");
                opcao = input.nextInt();

                if (opcao == 1)
                {
                    valor = 20;
                    opcao = 6;
                }
                if (opcao == 2)
                {
                    valor = 40;
                    opcao = 6;
                }
                if (opcao == 3)
                {
                    valor = 60;
                    opcao = 6;
                }
                if (opcao == 4)
                {
                    valor = 100;
                    opcao = 6;
                }
                if (opcao == 5)
                {
                    System.out.println("\n\nValor do Saque: ");
                    valor = input.nextFloat();
                    opcao = 6;
                }                
                if (valor > this.saldo+this.limite)
                {
                    System.out.println("\n\nO valor do seu saque deve ser menor que o saldo e o limite!\n");
                    System.out.println("Escolha outro valor!");
                    opcao = 6;
                }
                 if (valor <= this.saldo+this.limite && valor != 0)
                {
                    this.saldo = this.saldo - valor;
                    System.out.println("\nSaque de R$"+ valor +" efetuado com sucesso!\n");
                    opcao = 6;
                }
                
                if (opcao == 6)
                {
                    System.out.println("Voltando ao menu principal...");
                    opcao = 6;
                }
            }
        }
// transfere()
        public float transfere(){
            float valor=1;
            
            Scanner input = new Scanner (System.in);
            int aux=1;
            while(aux!=0){
                
                System.out.println("Valor da Transferência: ");
                valor = input.nextFloat();

                if (valor > this.saldo+this.limite)
                {
                    System.out.println("\n\nO valor da sua transferência deve ser menor que o saldo e o limite!\n");
                    
                }
                if (valor <= this.saldo+this.limite && valor != 0)
                {
                    this.saldo = this.saldo - valor;
                    
                    System.out.println("\n\nTransferência feita com sucesso!\n");
                }
                aux=0;
            }
            return valor;
        }
// getSaldo()
        public void saldo(){
            System.out.println("Saldo : "+ this.saldo);
           
        }

 
}

Nenhum comentário:

Postar um comentário