Agenda!

6 respostas
A
Boa tarde pessoal, estou com um trabalho de facul no qual eu tenho que criar uma agenda simples, só que eu fiquei travado em uma parte dele. Aqui está o código : CLASSE PESSOA
package menu;

public class Pessoa {
    String[] nome = new String[100];
    String[] email = new String[100];
    long[] tel = new long[100];
}
CLASSE AGENDA
package menu;

import java.util.Scanner;

public class Agenda {
    Scanner in = new Scanner(System.in);
    Menu menu = new Menu();
    Pessoa pessoas = new Pessoa();
    public void insereamigo(){
        int op;
         for (int i = 0; i < 100; i++) {               
            System.out.println("Digite o nome da pessoa: ");
            pessoas.nome[i] = in.next();
            System.out.println("Digite o telefone da pessoa: ");
            pessoas.tel[i] = in.nextLong();
            System.out.println("Digite o email da pessoa: ");
            pessoas.email[i] = in.next();
            System.out.println("Digite 1 para continuar ou 0(zero) para voltar pro menu: ");
            op = in.nextInt();
            if(op == 0){
                menu.menu();
                break;
           }
          }
        }
    public void consultatel(){
         String nome;
         System.out.println("Digite o nome da pessoa: ");
         nome = in.next();
         for (int i = 0; i < pessoas.nome.length; i++) {
            if(nome.equalsIgnoreCase(pessoas.nome[i])){
               int ind = i; // aqui eu peguei o índice do vetor que tem a string que eu quero
             for (int j = 0; j < pessoas.tel.length; j++) {
               System.out.println("Tel: "+pessoas.tel[ind]);
               break;
             }
            System.out.println("Digite 1 para continuar ou 0(zero) para voltar pro menu: ");
            int op = in.nextInt();
            if(op == 0){
            menu.menu();
            break;
            }
           }else{
               System.out.println("A pessoa não está cadastrada!");
               menu.menu();
               break;
           }            
        } 
    }
    public void consultaemail(){
        
    }
}
CLASSE MENU
package menu;

import java.util.Scanner;

public class Menu {

    public void menu(){
        Scanner in = new Scanner(System.in);
        Agenda agenda = new Agenda();
        int op;
        System.out.println("Escolha uma opção:\n"
                + "1 - Inserir um novo amigo\n"
                + "2 - Consultar telefone\n"
                + "3 - Consultar email\n"
                + "4 - Remover amigo\n"
                + "5 - Sair");
        op = in.nextInt();
        switch(op){
            case 1 :
                agenda.insereamigo();
                break;
            case 2 :
                agenda.consultatel();
                break;
            case 3 :
                
            case 4 :
                
            case 5 :
                System.out.println("FIM");
                break;
            default :
                System.out.println("Opção incorreta!");                
        }
    }
    
    public static void main(String[] args) {
        Menu menu = new Menu();
        menu.menu();
}
}

Estou com problemas no método consultatel, pois quando eu insiro um novo amigo e retorno para o menu e aperto para consultar o telefone, aparece sempre que "A pessoa não está cadastrada".

Escolha uma opção:
1 - Inserir um novo amigo
2 - Consultar telefone
3 - Consultar email
4 - Remover amigo
5 - Sair
1
Digite o nome da pessoa: 
joao
Digite o telefone da pessoa: 
46846
Digite o email da pessoa: 
ffllgo
Digite 1 para continuar ou 0(zero) para voltar pro menu: 
0
Escolha uma opção:
1 - Inserir um novo amigo
2 - Consultar telefone
3 - Consultar email
4 - Remover amigo
5 - Sair
2
Digite o nome da pessoa: 
joao
A pessoa não está cadastrada!
Escolha uma opção:
1 - Inserir um novo amigo
2 - Consultar telefone
3 - Consultar email
4 - Remover amigo
5 - Sair

Agradeço desde já a colaboração de vocês.

6 Respostas

diogogama

Já debugou? o que vem na variável in.next que vc chama no consultaTel()?

A

Já tentei, mas não consegui. Essa variável está recebendo o nome que será digitado pelo usuário, se esse nome estiver armazenado em algum vetor ele irá mostrar o telefone senão irá mostrar a mensagem “A pessoa não está cadastrada”.

diogogama

Pelo código eu vi o que chega, quero saber se realmente ta chegando isso, pois eu acho que está acumulando escritos do teclado… acho que não deve está resetando ou zerando ele.

por isso queria saber o que chega escrito na função.

Phelps
<blockquote> if(op == 0){

menu.menu();

break;

}

}else{

System.out.println(“A pessoa não está cadastrada!”);

menu.menu();

break;

} </blockquote>

Essa parte está mal organizada, se entendi bem, esse else vem no if de cima, pois você está dizendo no código que se ele não quiser voltar pro menu, a pessoa não está cadastrada, percebe?

A


Essa parte está mal organizada, se entendi bem, esse else vem no if de cima, pois você está dizendo no código que se ele não quiser voltar pro menu, a pessoa não está cadastrada, percebe?

Phelps o else tá fazendo parte do primeiro if .

if(nome.equalsIgnoreCase(pessoas.nome[i])){ // if principal int ind = i; // aqui eu peguei o índice do vetor que tem a string que eu quero for (int j = 0; j < pessoas.tel.length; j++) { System.out.println("Tel: "+pessoas.tel[ind]); break; } System.out.println("Digite 1 para continuar ou 0(zero) para voltar pro menu: "); int op = in.nextInt(); if(op == 0){ menu.menu(); break; }// fim do if acima }// fim do if principal else{ System.out.println("A pessoa não está cadastrada!"); menu.menu(); break; }

Janerson

Amigo vamos lá

classe pessoa esta toda errada

Pense “Uma pessoa tem UM nome” entao pq vc declarou uma array de nomes na classe Pessoa?
email e telefone uma pessoa tem muitos…mas nome nao

na sua classe pessoa faça assim

public class Pessoa {  
    String nome ;  
    String email;  
    long tel  ;  
}

e sua classe Agenda dessa maneira

public class Agenda {  
    Scanner in = new Scanner(System.in);  
    Menu menu = new Menu();  
    Pessoa[] pessoas = new Pessoa[100];

depois é só mudar os métodos para inserir e consultar

Criado 25 de julho de 2013
Ultima resposta 26 de jul. de 2013
Respostas 6
Participantes 4