Pessoal, estou com dificuldades em um trabalho de java da faculdade meu professor me pediu um trabalho, para analisar 5 operações de um programa com inserção, remoção, alteração, busca e listagem. Preciso de uma análise do código a seguir, análise das operações de como funciona. Quem poder me ajudar ficarei super grata!!!
O código em java abaixo :
public class data{
private String nome;
private int fone;
private data prox;
public data (String a, int b, data c){
nome=a;
fone=b;
prox=c;
}
public String getNome(){
return nome;
}
public void setFone(int a){
fone=a;
}
public int getFone(){
return fone;
}
public data getProx(){
return prox;
}
public void setProx(data a){
prox=a;
}
}
public class agenda{
private data inicio;
//private data aux;
void inserir(data a){
if(inicio==null){ //teste de início de lista
this.inicio=a;
}else{ //se não for o inicio
data aux=inicio;
data ant=null;
while (aux!=null) { //encontrar o fim da lista
ant=aux;
aux=aux.getProx();
}
a.setProx(null);
ant.setProx(a);
} // else inicio lista
}// fim do método
boolean excluir() {
if (inicio==null) return false;
else {
inicio=inicio.getProx();
return true; // em qualquer caso de exclusão, será retornado verdadeiro
} //fim do else de teste vazio
} //fim do método excluir
String listar(){
String a="Nome \t Telefone";
data aux=inicio;
while (aux!=null) {
a+="\n"+aux.getNome()+"\t"+String.valueOf(aux.getFone());
aux=aux.getProx();
}//fim do while
return a;// retorna o String com o relatório
}//fim do método listar
String buscar (String nome){
String a=" ";
data aux=this.inicio;
data ant=null;
while ((nome.compareToIgnoreCase(aux.getNome())!=0)&&(aux!=null)){ //roda enquanto nao achar o nome ou chegar no fim da lista
ant=aux;
aux=aux.getProx();
if (aux==null) break;//inibe erro de nullpoint
}
if (aux!=null) a="Nome:"+aux.getNome()
+"\nTelefone:"+String.valueOf(aux.getFone());
return a;
}//fim do método buscar
boolean alterar (String a, int b{
if (inicio==null) return false;
else {
data aux=inicio;
data ant;
while ((a.compareToIgnoreCase(aux.getNome())!=0)&&(aux!=null)){ //roda enquanto não achar o nome ou chegar no fim da lista
ant=aux;
aux=aux.getProx();
if (aux==null) break; //inibe erro de nullpointer exception
}//fim do while
if(aux==null) return false;
else {
aux.setFone( b;
return true;
}//fim do else (encontrar elemento)
}//fim do else
}//fim do método alterar
data criaObjeto(String a, int b, data c){
data d=new data(a,b,c);
return;
}//fim do método cria objeto
}//fim da classe
import java.util.Scanner;
public class programa {
public static void main(String args[]){
byte op;
String nome,b;
int cont=0;
Scanner entrada= new Scanner(System.in);
agenda exemplo=new agenda();
do{
System.out.println("\nAgenda (Fila Encadeada) \nOpções: \n1-Inserir Contato\n2-Excluir Contato\n3-Alterar Número \n4Listar Contatos \n5-Buscar contato \n0-SAIR");
op=entrada.nextByte();
entrada.nextLine();
if(op!=0){
switch(op){
case 1:
int c;
++cont
System.out.println("Entre com o "+cont+"+nome:");
b=entrada.nextLine();
System.out.println("Entre com o número de telefone:");
c=entrada.nextInt();
exemplo.inserir(exemplo.criaObjeto(b,c,null));
break;
case 2:
if(exemplo.excluir()){
System.out.println("Elemento foi excluído com sucesso!");
--cont;
}//fim do IF
else System.out.println("Não existem elementos cadastrados");
break;
case 3:
System.out.println("Entre com o NOME que deseja alterar o número de telefone:");
b=entrada.nextLine();
int w;
System.out.println("Entre com o novo NÚMERO:");
w=entrada.nextInt();
if (exemplo.alterar(b,w)) System.out.println(b+" teve o seu telefone alterado!");
break;
case 4: System.out.println(exemplo.listar());
break;
case 5:
String k;
System.out.println("Entre com o nome desejado:");
b=entrada.nextLine();
k=exemplo.buscar( b );
if (k.comprareToIgnoreCase(" ") ==0) System.out.println("Contato não encontrado");
else System.println(k);
break;
default: System.out.println("Opção Inválida!!!");
}//Fim do SWITCH
}//Fim do IF
}while (op!=0);//fim do while
System.out.println("Obrigado por usar o Programa!!!");
}//fim do método menu
}