Estou fazendo um programa de uma companhia area que irá fazer um voo com apenas 7 lugares.
Para que seja reservado, é necessário coletar as informações tais como nome, telefone e cpf ou cnpj, e no caso, caso tenha vaga, inserir o cliente na reserva, caso não deverá ficar na fila de espera.
Pensei em usar duas filas para implementar, porém não sei como fazer.
private static void ReservarPassagem(Cliente[] clientes, int posicao) {
String tipo = showInputDialog("É pessoa Física (F) ou pessoa Júridica(J)");
if(tipo.equalsIgnoreCase("F")) {
String nome = showInputDialog("Nome do cliente");
String telefone = showInputDialog("Telefone do cliente");
String CPF = showInputDialog("Informe o CPF");
Cliente_PF cliente = new Cliente_PF(nome, telefone, CPF);
clientes[posicao] = new Cliente_PF(nome, telefone, CPF);
}else {
if(tipo.equalsIgnoreCase("J")) {
String nome = showInputDialog("Nome da Razão Social");
String telefone = showInputDialog("Telefone para contato");
String CNPJ = showInputDialog("Informe o CNPJ");
Cliente_PJ cliente = new Cliente_PJ(nome, telefone, CNPJ);
clientes[posicao] = new Cliente_PJ(nome, telefone, CNPJ);
}else {
showMessageDialog(null, "Opção inválida", "ALERTA", ERROR_MESSAGE);
}
}
}
package br.xpto.fila;
import br.xpto.cliente.Cliente;
public class FilaClientes {
public class No{
Cliente dado;
No prox;
}
private Cliente ini;
private Cliente fim;
public void init() {
ini = fim = null;
}
public boolean isEmpty() {
if (ini==null && fim==null)
return true;
else
return false;
}
public void enqueue(Cliente novo) {
novo.prox = null;
if (isEmpty())
ini = novo;
else
fim.prox = novo;
fim = novo;
}
public Cliente dequeue() {
Cliente valor = ini;
ini = ini.prox;
if (ini==null)
fim = null;
return valor;
}
}