Boa noite pessoal, preciso de uma grande ajuda de vcs manjadores em java, to terminando um código para um trabalho da faculdade, como não sou muito bom em java meu código está uma bagunça e preciso organizar com outras classes e métodos mas estou totalmente travado e não sei como avançar =/. (A classe main tem que ficar apenas com os cases, enquanto o restante tem q ir para um outro arquivo java)
Segue o código:
[code]import javax.swing.JOptionPane;
public class PedidosFila {
private static class FILA {
public int num;
public FILA prox;
}
public static void main(String[] args) {
String[][] pedido =
{
{“1 - hamburguer”, “2 - cachorro quente”, “3 - batata frita”, “4 - açai”}
};
String cardapio="";
FILA inicio = null;
FILA fim = null;
FILA aux;
FILA anterior;
int op, numero, achou, auxnum, ped = 0;
do { op = Integer.parseInt(JOptionPane.showInputDialog(null,"n" +
" OPÇÕES:n" +
"n" +
"1 - Escolher pedido e entrar na filan" +
"2 - Consultar fila n" +
"3 - Inserir no final da fila n" +
"4 - Remover da fila n"+
"5 - Esvaziar a fila n" +
"6 - Sair *n" +
"n" +
"Digite sua opção: n",
JOptionPane.INFORMATION_MESSAGE));
switch (op) {
case 1: {
for (int i=0; i<pedido.length; i++){
for(int j=0; j<pedido[i].length; j++){
cardapio += pedido[i][j]+" ";
}
}
JOptionPane.showMessageDialog(null,"Cardápio: n"+cardapio);
ped = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o número do pedido: ", JOptionPane.INFORMATION_MESSAGE));
if(ped>=1&&ped<5){
auxnum = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite uma senha para inserir na fila: ", JOptionPane.INFORMATION_MESSAGE));
FILA novo = new FILA();
novo.num = auxnum;
if (inicio == null) {
inicio = novo;
fim = inicio;
novo.prox = null;
} else {
novo.prox = inicio;
inicio = novo;
}
JOptionPane.showMessageDialog(null, "Senha inserida com sucesso ");
} else {
JOptionPane.showMessageDialog(null, "Opção inválida ");
}break;
}
case 2: {
if (inicio == null) {
JOptionPane.showMessageDialog(null, "Fila vazia ");
} else {
JOptionPane.showMessageDialog(null, "nClientes na fila:n ");
aux = inicio;
while (aux != null) {
JOptionPane.showMessageDialog(null, aux.num + "; ");
aux = aux.prox;
}
}break;
}
case 3: {
auxnum = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite a senha para ser inserido no fim da fila: ", JOptionPane.INFORMATION_MESSAGE));
FILA novo = new FILA();
novo.num = auxnum;
if (inicio == null) {
// a lista estava vazia e o elemento inserido será o primeiro e o último
inicio = novo;
fim = novo;
novo.prox = null;
} else {
// a lista já contém elementos e o novo elemento será inserido no fim da lista
fim.prox = novo;
fim = novo;
fim.prox = null;
}
JOptionPane.showMessageDialog(null, "Senha inserida no final da fila");
break; }
case 4: {
if (inicio == null) {
JOptionPane.showMessageDialog(null, "Fila vazia ");
} else {
numero = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite a senha para ser removida: ", JOptionPane.INFORMATION_MESSAGE));
aux = inicio;
anterior = null;
achou = 0;
while (aux != null) {
if (aux.num == numero) {
achou = achou + 1;
if (aux == inicio) {
inicio = aux.prox;
aux = inicio;
} else if (aux == fim) {
anterior.prox = null;
fim = anterior;
aux = null;
} else {
anterior.prox = aux.prox;
aux = aux.prox;
}
} else {
anterior = aux;
aux = aux.prox;
}
}
if (achou == 0) {
JOptionPane.showMessageDialog(null, "Numero não encontrado");
} else if (achou == 1) {
JOptionPane.showMessageDialog(null, "Removido 1 vez ");
} else {
JOptionPane.showMessageDialog(null, "Numero removido " + achou + " vezes");
}
}break;
}
case 5: {
if (inicio == null) {
JOptionPane.showMessageDialog(null, "Fila vazia");
} else {
inicio = null;
JOptionPane.showMessageDialog(null, "Fila esvaziada");
}break;
}
case 6: {
break;
}
}
}while (op != 6);
}
}[/code]