Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nanynhamj

Classe Fila

Recommended Posts

Olá!

Estou tentando resolver esse exercício mas não estou conseguindo.

Alguém pode me ajudar?

Construa um programa, utilizando a Classe Fila , que simule o atendimento em uma Clínica. O atendimento é realizado através de senha retirada na entrada da Clínica. As senhas podem ser de (A) - Atendimento Normal, (P) - Atendimento Preferencial, e ® - Entrega de resultados. Para cada tipo de atendimento é gerado uma senha com um número seqüencial, iniciando de 1. O programa deverá permitir a chamada de cada fila. Clique aqui e veja um exemplo de implementação desta fila.

Compartilhar este post


Link para o post
Compartilhar em outros sites

3 filas então:

* (A)

* (P)

* (.R)

 

Fila = FIFO (Primeiro a chegar, primeiro a sair);

 

Oq você não entendeu na implementação?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

O programa principal deve conter um MENU. A dúvida é na lógica a ser usada para que nas opções de 1 a 3 criar as senhas A1, P1 e R1/ A2, P2 e R2 e depois de escolhida a opção chamar as senhas que foram criadas nas opções de 4 a 6.

class Node {
  public:
  
    int info;
    Node *prox;
    
    Node() {            
      prox = 0;
    }
    
    Node(int _info, Node* _prox = 0) {  
      info = _info;
      prox = _prox;
    }
};

class Fila {

  private:
  
    Node *inicio, *final;
  
  public:
  
    Fila() {
       inicio = final = 0;
    }
    void limpar();
    bool estaVazia();
    void colocar(int);
    int retirar();
    int consultar();
    int tamanhoFila();
};



bool Fila::estaVazia() {
  return(inicio==0);
}



void Fila::colocar(int info) {
  if (estaVazia()) {
    inicio = final = new Node(info);  
  } else {   
    final->prox = new Node(info);
    final = final->prox;
  }
}



int Fila::retirar(){
  if (!estaVazia()) {  
    int info = inicio->info;
    Node* tmp = inicio;
    inicio = inicio->prox;
    delete tmp;
    return(info);
  } else {
    throw("Fila vazia!!");  
  }
}



int Fila::consultar() {
  return(inicio->info);
}



void Fila::limpar() {
  while(inicio != 0) {
    Node* tmp = inicio;
    inicio = inicio->prox;
    delete tmp;
  }
  final = 0;
}


  
int Fila::tamanhoFila() {
  int tam_fila = 0;
  if (inicio != 0) {
      Node *p;
      for (p = inicio; p!= 0; p = p->prox){
           tam_fila++;
      }
      return (tam_fila);
  } else {
      throw("Erro: Fila vazia!!");
  } 
}


#include<iostream>
#include "Fila.h"

main(){
       
       int opcao;
       do{
           
       cout<<" *MENU* ";
       cout<<"(1) Criar Fila de Atendimento";
       cout<<"(2) Criar Fila Preferencial";
       cout<<"(3) Criar Fila Resultados";
       cout<<"(4) Chamar Senha de Atendimento";
       cout<<"(5) Chamar Senha de Preferencial";
       cout<<"(6) Chamar Senha de Resulatdos";
       cout<<"(7) Sair";
       cout<<"Digite a opcao:";
       cin>>opcao;
       }
       while(opcao!= 7){
                     switch(opcao){
                     case 1:
                          cout<<" Senha Atentimento";
                          break;
                     case 2:
                          cout<<"Senha Preferencial";
                          break;
                     case 3:
                          cout<<"Senha Resultados";
                          break;
                     case 4:     
                          cout<<"Chamar senha:";
                          break;
                     case 5:
                          cout<<"Chamar senha:";
                     case 6:
                          cout<<"Chamar senha:";
                          
                     default: 
               cout << "\n...Opcao Invalida " << endl;
               system ("pause");
               break; 
          }  
                          
                     }
                     system ("pause");
                     }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano não entendi sua dúvida..

você não sabe criar a fila??

Detalhe que fica + facil poder te ajudar.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho a classe fila pronta, eu não estou conseguindo é fazer o programa principal para criar e chamar as senhas a partir da classe fila, desconsidera o main para baixo, foi só uma tentativa que não deu certo, o programa deve ter um menu de opções para o usuário escolher a senha( de 1 a 3), depois (de 4 a 6) as opções para chamar as senhas criadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora crie as filas então, algo assim:

Fila atendimento, preferencial, resultados;
ai veja os construtores td certinho para a Fila ser iniciada e comece..

você fez digamos o "mais" dificil, oq pretende agora? eu acho que ainda não entendi sua real dúvida.

 

[]s

 

--

http://www.goulart.pro.br/progs_ex/clas01.txt

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.