Sie sind auf Seite 1von 5

Exerccio de Estrutura de dados Java Fila

Obs.: Esse projeto foi um exerccio realizado em sala de aula da matria de Estrutura de dados com o Prof Frederico Augusto Siqueira Gentil Aqui est sendo relatado um pequeno exemplo de Fila de espera de um consultrio mdico desenvolvido em Java, usando a ferramenta Eclipse. Foi levado em considerao que os pacientes so registrados na fila assim que chegam a sala de espera e ficam aguardando o chamado do mdico, que obedece a ordem de chegada. O programa deve permitir: Inserir um paciente na fila de espera; Chamar o paciente para ser atendido; Verificar se a fila est cheia ou vazia; Verificar o prximo paciente a ser atendido; Informar quantos pacientes existem na fila de espera.

Exemplo de Fila resolvido


1. Com o eclipse j aberto clique em File/new/Java project

2. Em Project name informe o nome do projeto. Nesse caso iremos colocar Consultorio e clique em finish.

3. Dentro do projeto consultrio, existe uma pasta chamada de src, clique nela com o boto direito, new/Class. Informe o nome da classe, nesse caso informe Menu para que possamos criar o menu do projeto. Obs.: Lembre-se que o nome de classe sempre deve iniciar com letra maiscula.

4. Depois que a classe estiver criada voc ir adicionar o cdigo abaixo.

************ MENU ******************


import javax.swing.JOptionPane; public class Menu { public static void main(String[] args) { int item; int codPaciente; // String nmPaciente; MetodosQueue metodosQueue = new MetodosQueue(10); do{ //inicio do enquanto item = Integer.parseInt(JOptionPane.showInputDialog(null,"******************************\n" + "** MENU DE OPES **\n" + "* 1 - Inserir Paciente*\n" + "* 2 - Chamar o Paciente p/ ser atendido *\n" + "* 3 - Fila cheia ou vazia?* \n"+ "* 4 - Prximo Paciente a ser atendido *\n" + "* 5 - Quantidade de Pacientes na fila*\n" + "* 6 - Sair *\n" + "******************************\n" + "Digite sua opo: \n", "Consultrio Mdico", JOptionPane.INFORMATION_MESSAGE));

switch (item) { //inicio do case case 1: { //cadastrar correspondencias if (!metodosQueue.isFull()) { codPaciente = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o Cdigo do paciente", "Consultrio Mdico!", JOptionPane.INFORMATION_MESSAGE)); // nmPaciente = JOptionPane.showInputDialog("Informe o nome do paciente:"); metodosQueue.insert(codPaciente); }else{ JOptionPane.showMessageDialog(null, "Fila cheia! "); } } break; case 2: { //remover paciente // delete item from stack if (!metodosQueue.isEmpty()) { long value = metodosQueue.remove(); JOptionPane.showMessageDialog(null, "Paciente chamado para ser atendido: " + value); } } break; case 3: { if (metodosQueue.isEmpty()) { JOptionPane.showMessageDialog(null, "Fila vazia!"); }else{ if (metodosQueue.isFull()) { JOptionPane.showMessageDialog(null, "Fila cheia!"); }else{ JOptionPane.showMessageDialog(null, "A Fila no est cheia, mas tambm, no est vazia!"); } } } break; case 4: { if (!metodosQueue.isEmpty()) { long value = metodosQueue.peekFront(); // identificar o proximo. JOptionPane.showMessageDialog(null, "Proxima da fila: " + value);

} } break; case 5: { long value = metodosQueue.size(); // qtd de pacientes na fila JOptionPane.showMessageDialog(null, "Quantidade de pacientes na fila: " + value); } break; default:{ if (item != 6) { JOptionPane.showMessageDialog(null, "Valor invlido, digite novamente!"); } else { if (item ==6) JOptionPane.showMessageDialog(null, "Voc est saindo do programa!"); } } break; } } while (item != 6); } }

5. Crie mais uma classe usando o mesmo procedimento usado anteriormente, porm, dessa vez ir colocar o nome de MetodosQueue. *************** METODOS *********
class MetodosQueue { private int maxSize; private long[] queArray; private int front; private int rear; private int nItems; //-------------------------------------------------------------public MetodosQueue(int s) // constructor { maxSize = s; queArray = new long[maxSize]; front = 0; rear = -1; nItems = 0; } //-------------------------------------------------------------public void insert(long j) // put item at rear of queue { if(rear == maxSize-1) // deal with wraparound rear = -1; queArray[++rear] = j; // increment rear and insert nItems++; // one more item } //-------------------------------------------------------------public long remove() // take item from front of queue { long temp = queArray[front++]; // get value and incr front if(front == maxSize) // deal with wraparound front = 0; nItems--; // one less item return temp; } //-------------------------------------------------------------public long peekFront() // peek at front of queue { return queArray[front];

} //-------------------------------------------------------------public boolean isEmpty() // true if queue is empty { return (nItems==0); } //-------------------------------------------------------------public boolean isFull() // true if queue is full { return (nItems==maxSize); } //-------------------------------------------------------------public int size() // number of items in queue { return nItems; } }

6. Crie mais uma classe usando o mesmo procedimento usado anteriormente, porm, dessa vez ir colocar o nome de Consultorio.

************ CONSULTORIO ******************


import javax.swing.JOptionPane;

public class Consultorio { private Integer codPaciente; private String nmPaciente; public Integer getCodPaciente() { return codPaciente; } public void setCodPaciente(Integer codPaciente) { this.codPaciente = codPaciente; } public String getNmPaciente() { return nmPaciente; } public void setNmPaciente(String nmPaciente) { this.nmPaciente = nmPaciente; } public void displayConsultorio(){ JOptionPane.showMessageDialog(null, "Cdigo do Paciente: "+ codPaciente); } }

//

// // // // // //

7. Abra a classe Menu e clique na tecla F11 e o seu projeto Consultorio em swing ser executado. Bom trabalho!

Das könnte Ihnen auch gefallen