Olá pessoal!
Sou iniciante em Java, e garrei na resolução de um trabalho da Faculdade!!! (mais precisamente na parte do menu de opções…)
Enunciado: Criar um sistema de Agenda Telefônica. O projeto devo possuir no mínimo 3 classes:
Contato (Código, Nome e Telefone); Agenda (aceitar no máximo 10 registros); Principal
(main com o menu de opções – ver métodos da classe Agenda).
A classe Agenda deve possuir 6 métodos:
1 - listarTodos();
2 - inserirContato(contato); //não deve aceitar telefones repetidos
3 - editarContato(telefone, contato);
4 - apagarContato(telefone);
5 - apagarTodos();
6 - imprimirMemoria(); //imprimir mensagem: 2/10
Agora segue tudo o que já fiz!
Classe Contato:
`
public class Contato {
private int codigo;
private String nome;
private String telefone;
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
}`
Classe Agenda:
`import java.util.ArrayList;
import java.util.Scanner;
public class Agenda {
ArrayList<Contato> registros = new ArrayList<Contato>();
int tamanhoMaximo = 10;
public void listarTodos() {
if (this.registros.size() == 0) {
System.out.println("**********************************************");
System.out.println("A lista está vazia!");
System.out.println("**********************************************\n");
} else {
for (int i = 0; i < registros.size(); i++) {
System.out.println("**********************************************");
System.out.println("Código: " + registros.get(i).getCodigo());
System.out.println("Nome: " + registros.get(i).getNome());
System.out.println("Telefone: "
+ registros.get(i).getTelefone());
System.out.println("**********************************************\n");
}
}
}
public void inserirContato(Contato contato) throws ListaCheiaException {
int tamanhoLista = this.registros.size();
if (tamanhoLista < this.tamanhoMaximo) {
this.registros.add(contato);
} else {
throw new ListaCheiaException();
}
}
public void editarContato(String telefone, Contato contato) {
for (int i = 0; i < this.registros.size(); i++) {
if (this.registros.get(i).getTelefone() == telefone) {
this.registros.get(i).setCodigo(contato.getCodigo());
this.registros.get(i).setNome(contato.getNome());
return;
}
}
System.out.println("**********************************************");
System.out.println("Registro Não Encontrado.");
System.out.println("**********************************************\n");
}
public void apagarContato(Contato contato) {
this.registros.remove(contato);
}
public void apagarTodos() {
this.registros.clear();
}
public void imprimirMemoria() {
int memoria = this.registros.size();
System.out.println("Memória: " + memoria + "/10");
}
}`
Classe Principal:
`public class Principal {
public static void main(String[] args) throws ListaCheiaException {
Agenda agenda = new Agenda();
MenuDeOpcoes menu = new MenuDeOpcoes();
Contato c1 = new Contato();
Contato c2 = new Contato();
Contato c3 = new Contato();
Contato c4 = new Contato();
Contato c5 = new Contato();
Contato c6 = new Contato();
Contato c7 = new Contato();
Contato c8 = new Contato();
Contato c9 = new Contato();
Contato c10 = new Contato();
Contato c11 = new Contato();
c1.setCodigo(1);
c1.setNome("Monteiro Lobato");
c1.setTelefone("(31) 7544-9025");
c2.setCodigo(2);
c2.setNome("Machado de Assis");
c2.setTelefone("(31) 9212-8472");
c3.setCodigo(3);
c3.setNome("Jorge Amado");
c3.setTelefone("(31) 9407-4701");
c4.setCodigo(4);
c4.setNome("Vinícius de Moraes");
c4.setTelefone("(31) 9349-7413");
c5.setCodigo(5);
c5.setNome("Carlos Drummond de Andrade");
c5.setTelefone("(31) 9125-5578");
c6.setCodigo(6);
c6.setNome("Cecília Meirelles");
c6.setTelefone("(31) 9889-1800");
c7.setCodigo(7);
c7.setNome("Paulo Coelho");
c7.setTelefone("(31) 9730-1254");
c8.setCodigo(8);
c8.setNome("Érico Veríssimo");
c8.setTelefone("(31) 9685-1510");
c9.setCodigo(9);
c9.setNome("Graciliano Ramos");
c9.setTelefone("(31) 8807-4528");
c10.setCodigo(10);
c10.setNome("Guimarães Rosa");
c10.setTelefone("(31)8910-0470");
try {
agenda.inserirContato(c1);
agenda.inserirContato(c2);
agenda.inserirContato(c3);
agenda.inserirContato(c4);
agenda.inserirContato(c5);
agenda.inserirContato(c6);
agenda.inserirContato(c7);
agenda.inserirContato(c8);
agenda.inserirContato(c9);
agenda.inserirContato(c10);
} catch (ListaCheiaException e) {
System.out.println(e.getMessage());
}
menu.menu();
}
}`
Classe MenuDeOpcoes:
`import java.awt.Menu;
import java.util.Scanner;
public class MenuDeOpcoes {
Agenda agenda;
private String telefone;
public void menu() throws ListaCheiaException {
Scanner scan = new Scanner(System.in);
System.out.println("***********************************************************");
System.out.println("******************** AGENDA TELEFÔNICA ********************");
System.out.println("***********************************************************\n");
System.out.println("***********************************************************");
System.out.println("Informe a alternativa desejada referente ao menu abaixo:\n");
System.out.println("1 - Listar os contatos");
System.out.println("2 - Inserir novo contato");
System.out.println("3 - Editar contato");
System.out.println("4 - Apagar contato");
System.out.println("5 - Apagar todos os contatos existentes");
System.out.println("6 - Mostrar memória");
String opcao = scan.next();
if (opcao.equals("1")) {
agenda.listarTodos();
} else if (opcao.equals("2")) {
Contato contato = null;
agenda.inserirContato(contato);
} else if (opcao.equals("3")) {
Contato contato = null;
agenda.editarContato(telefone, contato);
} else if (opcao.equals("4")) {
Contato contato = null;
agenda.apagarContato(contato);
} else if (opcao.equals("5")) {
agenda.apagarTodos();
} else if (opcao.equals("6")) {
agenda.imprimirMemoria();
} else {
System.out.println("Opção inválida!!!\nDigite novamente:");
}
}
}`
E por fim (ufá!) Classe ListaCheiaException:
`public class ListaCheiaException extends Exception {
public ListaCheiaException() {
super("Lista Cheia!");
}
}`
Galera, ao escolher uma opção do menu, aparece sempre o mesmo erro. E testando as funções separadamente, elas funcionam!!! Detalhe: Criei uma Exception, pois o exercício solicita no mínimo uma…
Por favor, se alguém puder me ajudar ficarei imensamente agradecido!!!