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);
           
        }

 
}

segunda-feira, 5 de dezembro de 2011

Brincando com matriz em C

Brincando com matriz: Seja a seguinte declaração float numeros[LINHA][COLUNA]. Escrever um
programa capaz de:
• Ler os elementos da matriz.
• Identificar o número de elementos iguais a zero em cada uma das linhas.
• Identificar o número de elementos iguais a zero em cada uma das colunas.
• Identificar o número de elementos pares em determinada linha (lida)
• Identificar o número de elementos pares em determinada coluna (lida)
• Calcular a média aritmética dos elementos de cada uma das linhas, armazenando esses valores em
um vetor.
• Identificar a linha que tem a maior media de seus elementos.
• Imprimir todos os resultados.





#include <stdio.h>
#include <stdlib.h>

int funcao()
{
    int i,j,l=0,cont=0,cont2=0,aux=0, contador=0,cont3=-1, aux4=0,contar=0, cont4=-1,cont5=0,valor, cont6=-1,aux2=0,cont7=-1, posicao=0, posi=0,cont8=1;
    float media1=0,maior=0,soma=0, valor2=0;

    printf("Informe o de linhas e colunas:\n");
    scanf("%d%d", &i,&j);
    system("cls");

    if ((i != 0) && (j != 0))
    {

        float numeros[i][j];
        float zero[i];
        float colunazero[j];
        int par[i];
        int parCol[j];
        float media[i];

        for (int c=0;c<j; c++)
        {
            colunazero[c]=0;
            parCol[c]=0;
        }

        for (int n=0;n<i; n++)
        {
            cont=cont+1;
            cont2=0;
            aux=0;
            cont6=-1;
            cont8=-1;
            aux2=0;
            soma=0;
            media1=0;

                for (int c=0;c<j; c++)
                {
                    cont2=cont2+1;
                    printf("Informe o valor da linha %d e coluna %d: ", cont,cont2);
                    scanf("%f", &numeros[n][c]);
                    cont6=cont6+1;
                    cont8=cont8+1;
                    cont5=0;
                    cont7=0;
                    valor=numeros[n][c];
                    valor2=numeros[n][c];

                    if (valor == 0)
                    {
                        aux=aux+1;
                        cont5=cont5+1;
                    }

                    colunazero[cont6]= cont5 + colunazero[cont6];

                    if (valor % 2 == 0)
                    {
                        aux2=aux2+1;
                        cont7=cont7+1;

                    }

                    parCol[cont8]=cont7 + parCol[cont8];

                    soma=soma+valor2;


                }

                if (aux > 0)
                {
                    zero[n]=aux;
                    aux4=aux4+1;
                }
                else
                {
                    zero[n]=0;
                }

                aux=0;

                if (aux2 > 0)
                {
                    par[n]=aux2;
                }
                else
                {
                    par[n]=0;
                }

                media1=(soma/j);

                media[n]=media1;

                if (media1 > maior)
                {
                    maior=media1;
                    l=cont;
                }




        }

        do
        {
            printf("\n\nEscolha a linha que deseja saber quantos elementos pares convitnha:\n");
            scanf("%d", &posicao);
            posi=posicao-1;

            if (posicao > i)
            {
                printf("\nA matriz nao possui essa linha, informe novamente:\n");
            }

        }while(posicao > i);

        int posicao2=0;
        int posi2=-1;

        do
        {
            printf("\nEscolha a coluna que deseja saber quantos elementos pares continha:\n");
            scanf("%d", &posicao2);
            posi2=posicao2-1;

            if (posicao2 > j)
            {
                printf("\nA matriz nao possui essa coluna, informe novamente:\n");
            }

        }while(posicao2 > j);


         printf("\n\n============================================================\n");
        do
        {
            cont3=cont3+1;
            contador=contador+1;


            if (zero[cont3] > 0)
            {
                printf("\nA linha %.0d possui %.0f elementos iguais a zero.",contador, zero[cont3]);
            }
            else
            {
                printf("\nA linha %.0d nao possui elementos iguais a zero.", contador);
            }

        } while (contador < i);

        printf("\n\n============================================================\n\n");

        do
        {
            cont4=cont4+1;
            contar=contar+1;

            if (colunazero[cont4] > 0)
            {
                printf("A coluna %.0d possui %.0f elementos iguais a zero.\n", contar, colunazero[cont4]);
            }
            else
            {
                printf("A coluna %.0d nao possui elementos iguais a zero.\n", contar);
            }

        } while (contar < j);

        printf("\n\n============================================================\n");

        if (par[posi] < 1)
        {
            printf("\n\nA linha %.0d nao contem elementos pares.\n", posicao);
        }
        else
        {
            printf("\n\nA linha %.0d contem %.0d elementos pares.\n ", posicao, par[posi]);
        }

        printf("\n\n============================================================\n\n");

        if (parCol[posi2] > 0)
        {
            printf("\n\nA coluna %.0d contem %.0d elementos pares.\n ", posicao2, parCol[posi2]);
        }
        else
        {
            printf("\n\nA coluna %.0d nao cotem elementos pares.\n", posicao2);
        }




        printf("\n\n============================================================\n\n");

        int contar2=0,cont9=-1;

        do
        {
            contar2=contar2+1;
            cont9=cont9+1;

            printf("A media da linha %.0d eh de: %.2f.\n", contar2, media[cont9]);


        } while (contar2 < i);

        printf("\n\n============================================================\n");

        printf("\n\nA linha com a maior media eh a %.0d com valor de %.2f.\n", l,maior);

        printf("\n\n============================================================\n\n");

    }
    else
    {
        printf("\nOs valores nao forma uma MATRIZ.\n");
    }



}

int main()
{
    funcao();
    return 0;
}

Cálculos com Matriz em C

Cálculos com Matriz: Dada uma matriz M, determine a linha de M que possui a maior soma de seus
elementos; Qual o menor elemento de M; Quantos elementos pares M possui; Quantos elementos são
divisíveis por 3 e Quantos zeros M contem.



#include <stdio.h>
#include <stdlib.h>


int funcao()
{
    int i,j,cont=0,cont2=0, aux=0,l=0, par=0, aux2=0, aux3=0;
    float soma=0, linha=0,menor=1000000000;

    printf("Informe o valor de linhas e colunas da matriz:\n");
    scanf("%d %d", &i,&j);

    system("cls");

    if ((i != 0) && (j !=0))
    {
        i=i-1;
        j=j-1;

        float M[i][j];
        float somas[i];

        for (int n=0;n<=i; n++)
        {
            cont=cont+1;
            cont2=0;



                for (int c=0;c<=j; c++)
                {

                    cont2=cont2+1;
                    printf("Informe o valor da linha %d e coluna %d: ", cont,cont2);
                    scanf("%f", &M[n][c]);

                    soma=M[n][c]+soma;

                    if (M[n][c] < menor)
                    {
                        menor=M[n][c];
                    }

                    par=M[n][c];

                    if (par % 2 == 0)
                    {
                        aux=aux+1;
                    }

                    if (par == 0)
                    {

                    }
                    else{
                        if (par % 3 == 0)
                        {
                            aux2=aux2+1;
                        }
                    }

                    if (par == 0)
                    {
                        aux3=aux3+1;
                    }



                }
                somas[n]=soma;
                soma=0;

                if (linha < somas[n])
                {
                    linha=somas[n];
                    l=cont;
                }


            }


            printf("\n\n\nA linha %.0d tem a maior soma com valor de: %.0f. \n", l, linha);
            printf("O menor elemento eh: %.0f. \n", menor);

            if (aux > 0)
            {
                   printf("A matriz possui %.0d elementos pares.\n", aux);
            }
            else
            {
                   printf("A matriz nao possui elementos pares.\n");
            }

            if (aux2 > 0)
            {
                    printf("A matriz possui %.0d elemento que sao divisiveis por 3.\n", aux2);
            }
            else
            {
                   printf("A matriz nao possui elementos divisiveis por 3.\n");
            }

            if (aux3 > 0)
            {
               printf("A matriz possui %.0d zero.\n", aux3);
            }
            else
            {
               printf("A matriz nao possui zero.\n");
            }
    }
    else
    {
        printf("\n\nEstes valores nao formam uma MATRIZ.\n\n");
    }
}



int main()
{
    system("color 0A");
    funcao();

    return 0;
}