Preciso fazer um trabalho, o qual é uma lista que tem que listar pacientes que chegaram e remover os que sairam. acho q ta funcionando normal, mas na hora de exibir os nomes ele so mostra numeros. alguem ajuda?
nao sei se é erro na hora de armazenar os dados ou so exibir. ou os 2
#include <iostream>
using namespace std;
struct t_fila {
int dado;
struct t_fila *prox;
};
void Enfileirar(struct t_fila *, char);
int Desenfileirar(struct t_fila *);
int Vazia(struct t_fila *);
void Exibir(struct t_fila *);
int main(void)
{
char opcao, pausa, nome;
struct t_fila minha_fila;
minha_fila.prox = NULL;
do
{
system("cls");
cout << "=========================================" << endl;
cout << "||----Controle de atendimento Medico---||" << endl;
cout << "=========================================" << endl;
cout << " 1 - Listar paciente" << endl;
cout << " 2 - Confirmar atendimento de cliente" << endl;
cout << " 3 - Exibir lista de pacientes" << endl;
cout << " 0 - Sair" << endl;
cout << "=========================================" << endl;
cout << "Escolha uma opcao: ";
cin >> opcao;
system("cls");
switch (opcao)
{
case '1':
cout << "Digite o nome do paciente: ";
cin >> nome;
Enfileirar(&minha_fila, nome);
break;
case '2':
if (Vazia(&minha_fila))
cout << "Fila vazia!" << endl;
else
{
nome = Desenfileirar(&minha_fila);
cout << nome << endl;
cout << "desenfileirado!" << endl;
}
break;
case '3':
if (Vazia(&minha_fila))
cout << "Fila vazia!" << endl;
else
Exibir(&minha_fila);
break;
}
cout << "Digite 1 e tecle <Enter> para voltar as opções!";
cin >> pausa;
} while (opcao != '0');
return 0;
}
void Enfileirar(struct t_fila *ptr_fila, char nome)
{
struct t_fila *novo, *elemento;
novo = new t_fila;
//Verificar se a fila esta cheia.
if (novo == NULL)
cout << "Fila cheia!";
else
{
if (ptr_fila->prox == NULL)
{
novo->dado = nome;
novo->prox = NULL;
ptr_fila->prox = novo;
}
else
{
novo->dado = nome;
novo->prox = NULL;
elemento = ptr_fila;
while(elemento->prox != NULL)
elemento = elemento->prox;
elemento->prox = novo;
}
cout << "Enfileirado!" << endl;
}
}
void Exibir(struct t_fila *ptr_fila)
{
struct t_fila *elemento;
elemento = ptr_fila->prox;
while (elemento != NULL)
{
cout << elemento->dado << endl;
elemento = elemento->prox;
}
cout << "-----------------" << endl;
}
int Desenfileirar(struct t_fila *ptr_fila)
{
struct t_fila *elemento;
char nome;
elemento = ptr_fila->prox;
nome = elemento->dado;
ptr_fila->prox = elemento->prox;
delete elemento;
return nome;
}
int Vazia(struct t_fila *ptr_fila)
{
if (ptr_fila->prox == NULL)
return 1;
else
return 0;
}