A maior rede de estudos do Brasil

Como Fazer esse Programa em C++?

Desenvolva um programa que utiliza os conceitos de fila circular.
Faça a simulação de duas filas de um banco.
Uma fila é para clientes normais e outro é para clientes com prioridade (grávidas, idosos, etc).
Utilize números para identificar clientes normais e letras para identificar clientes com prioridade.

O programa deverá identificar o tipo de cliente e colocar na fila específica.
São 2 caixas no banco.
Um para cada tipo de cliente.
O caixa de prioridade somente atenderá clientes normais se não existir clientes com prioridade.

Exemplo:
Chegadas:
Chegou 1 - Fila Normal
Chegou 2 - Fila Normal
Chegou A - Fila Prioridade
Chegou 3 - Fila Normal
Chegou B - Fila Prioridade
Chegou 4 - Fila Normal
Chegou 5 - Fila Normal
Chegou 6 - Fila Normal
Chegou C - Fila Prioridade
Chegou 7 - Fila Normal

Atendimentos:
Caixa Normal - Atende 1
Caixa Prioridade - Atende A
Caixa Normal - Atende 2
Caixa Prioridade - Atende B
Caixa Normal - Atende 3
Caixa Prioridade - Atende 4
Caixa Normal - Atende 5
Caixa Prioridade - Atende 6
Caixa Normal - Atende 7
Caixa Prioridade - Atende C

Você precisa de um menu com as seguintes opções:

1 - Inserir na Fila (Identifique a fila por numero ou letra)
2 - Próximo Caixa Normal
3 - Próximo Caixa Prioridade
4 - Ver fila Normal
5 - Ver fila Prioridade


4 resposta(s) - Contém resposta de Especialista

User badge image

RD Resoluções Verified user icon

Há mais de um mês

Para a resolução desse problema foram utilizados conhecimentos em linguagem C e algoritmos.


#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <time.h>

#include <stdlib.h>

typedef struct {

char nome[100];

int numFila;

int senha;

}normal;

typedef struct {

char nome[100];

int numFila;

int senha;

}preferencial;

normal filaNormal[10];

preferencial filaPreferencial[10];

int senha,cont,cont2;

int menor = 0;

int ind=0;

for (tamanho=0;tamanho < 10;tamanho++){

if (menor > vetor[tamanho]) {

menor = vetor[tamanho];

}

}

return menor;

int ordena_Vetor(int vetor[]){

int i,x,j,ind,temp;

int retorno=0;

for (i=0;i<10;i++){

for(j=i+1;j<10;j++){

if( vetor[j] < vetor[i]){

temp = vetor[j];

vetor[j] = vetor[i];

vetor[i] = temp ;

}

}

}

return senha;

}

int existe_Espaco(int vetor[],int posicao){

int vazio[10];

if(vazio[posicao]=='0')

return 1;

else

return 0;

}

int chamar_Senha(int vetor[]){

int num,i,retorno = 0;

int vazio[10];

int vet[10];

for(i=0; i<10; i++) {

if (vazio[i]=='O'){

vetor[i]=num;

vazio[i]='X';

retorno=1;

break;

}

}

return retorno;

}

int main (){

srand(time(NULL));

int tipo_Fila,i ;

int resultadoFila;

char op;

int fila_Preferencial[10] = {0,0,0,0,0,0,0,0,0,0};

int fila_Normal[10]= {0,0,0,0,0,0,0,0,0,0};

do{

op='n';

printf("Digite qual fila deseja entrar:\n");

printf(" 1 - Para a fila normal\n");

printf(" 2 - Para a fila preferencial\n");

printf(" 3 - Listar Todos\n");

printf(" 0 - Para encerrar o programa\n\n");

printf("Resposta: ");

scanf("%d", &tipo_Fila);

if (tipo_Fila == 1){

int i=0;

printf("Digite seu nome:");

scanf("%s",&filaNormal[cont].nome);

printf("Bem vindo a fila %s\n", filaNormal[cont].nome);

printf("voce esta na fila de espera normal e o numero do seu ticket e : ");

filaNormal[cont].senha=senha;

printf("%d",senha);

cont++;

senha++;

}

if(tipo_Fila == 2){

printf("Digite seu nome:");

scanf("%s", &filaPreferencial[cont2].nome);

printf("Bem vindo a fila %s\n", filaPreferencial[cont2].nome);

filaPreferencial[cont2].senha=senha;

printf("Você está na fila de espera preferencial e numero do seu ticket e : ");

printf("%d",senha);

cont2++;

senha++;

}

if(tipo_Fila==3){

for(i=0;i<cont;i++){

if(strcmp(filaNormal[0].nome,"")!= 0&&i==0)printf("FilaNormal\n");

printf("Nome ----> %s\n",filaNormal[i].nome );

printf("Senha ---> %d\n\n",filaNormal[i].senha);

}

for(i=0;i<cont2;i++){

if(strcmp(filaPreferencial[0].nome,"")!= 0&&i==0)

printf("FilaPreferencial\n");

printf("Nome ----> %s\n",filaPreferencial[i].nome );

printf("Senha ---> %d\n\n",filaPreferencial[i].senha);

}

}

if(tipo_Fila == 0){

exit(0);

}

printf("\nPegar outra senha S/N ");

fflush(stdin);

scanf("%c",&op);

}while(op=='s');

}

Para a resolução desse problema foram utilizados conhecimentos em linguagem C e algoritmos.


#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <time.h>

#include <stdlib.h>

typedef struct {

char nome[100];

int numFila;

int senha;

}normal;

typedef struct {

char nome[100];

int numFila;

int senha;

}preferencial;

normal filaNormal[10];

preferencial filaPreferencial[10];

int senha,cont,cont2;

int menor = 0;

int ind=0;

for (tamanho=0;tamanho < 10;tamanho++){

if (menor > vetor[tamanho]) {

menor = vetor[tamanho];

}

}

return menor;

int ordena_Vetor(int vetor[]){

int i,x,j,ind,temp;

int retorno=0;

for (i=0;i<10;i++){

for(j=i+1;j<10;j++){

if( vetor[j] < vetor[i]){

temp = vetor[j];

vetor[j] = vetor[i];

vetor[i] = temp ;

}

}

}

return senha;

}

int existe_Espaco(int vetor[],int posicao){

int vazio[10];

if(vazio[posicao]=='0')

return 1;

else

return 0;

}

int chamar_Senha(int vetor[]){

int num,i,retorno = 0;

int vazio[10];

int vet[10];

for(i=0; i<10; i++) {

if (vazio[i]=='O'){

vetor[i]=num;

vazio[i]='X';

retorno=1;

break;

}

}

return retorno;

}

int main (){

srand(time(NULL));

int tipo_Fila,i ;

int resultadoFila;

char op;

int fila_Preferencial[10] = {0,0,0,0,0,0,0,0,0,0};

int fila_Normal[10]= {0,0,0,0,0,0,0,0,0,0};

do{

op='n';

printf("Digite qual fila deseja entrar:\n");

printf(" 1 - Para a fila normal\n");

printf(" 2 - Para a fila preferencial\n");

printf(" 3 - Listar Todos\n");

printf(" 0 - Para encerrar o programa\n\n");

printf("Resposta: ");

scanf("%d", &tipo_Fila);

if (tipo_Fila == 1){

int i=0;

printf("Digite seu nome:");

scanf("%s",&filaNormal[cont].nome);

printf("Bem vindo a fila %s\n", filaNormal[cont].nome);

printf("voce esta na fila de espera normal e o numero do seu ticket e : ");

filaNormal[cont].senha=senha;

printf("%d",senha);

cont++;

senha++;

}

if(tipo_Fila == 2){

printf("Digite seu nome:");

scanf("%s", &filaPreferencial[cont2].nome);

printf("Bem vindo a fila %s\n", filaPreferencial[cont2].nome);

filaPreferencial[cont2].senha=senha;

printf("Você está na fila de espera preferencial e numero do seu ticket e : ");

printf("%d",senha);

cont2++;

senha++;

}

if(tipo_Fila==3){

for(i=0;i<cont;i++){

if(strcmp(filaNormal[0].nome,"")!= 0&&i==0)printf("FilaNormal\n");

printf("Nome ----> %s\n",filaNormal[i].nome );

printf("Senha ---> %d\n\n",filaNormal[i].senha);

}

for(i=0;i<cont2;i++){

if(strcmp(filaPreferencial[0].nome,"")!= 0&&i==0)

printf("FilaPreferencial\n");

printf("Nome ----> %s\n",filaPreferencial[i].nome );

printf("Senha ---> %d\n\n",filaPreferencial[i].senha);

}

}

if(tipo_Fila == 0){

exit(0);

}

printf("\nPegar outra senha S/N ");

fflush(stdin);

scanf("%c",&op);

}while(op=='s');

}

User badge image

Estudante PD

Há mais de um mês

Que tal tentar fazer? Não sei C++, então não posso ajudar, mas seguem algumas dicas:

O livro "Estruturas de dados" das professoras Renata Galante e Nina te dão uma boa visão de como montar algoritmos de listas/filas (fila é um tipo de lista com algumas restrições na inserção e retirada de elementos) em qualquer linguagem de programação, pois estão escritos em pseudocódigo.

Nesta thread (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) há uma lista com bons livros sobre C++ para iniciantes.

o/

User badge image

Andre Smaira

Há mais de um mês

Para a resolução desse problema foram utilizados conhecimentos em linguagem C e algoritmos.


#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <time.h>

#include <stdlib.h>

typedef struct {

char nome[100];

int numFila;

int senha;

}normal;

typedef struct {

char nome[100];

int numFila;

int senha;

}preferencial;

normal filaNormal[10];

preferencial filaPreferencial[10];

int senha,cont,cont2;

int menor = 0;

int ind=0;

for (tamanho=0;tamanho < 10;tamanho++){

if (menor > vetor[tamanho]) {

menor = vetor[tamanho];

}

}

return menor;

int ordena_Vetor(int vetor[]){

int i,x,j,ind,temp;

int retorno=0;

for (i=0;i<10;i++){

for(j=i+1;j<10;j++){

if( vetor[j] < vetor[i]){

temp = vetor[j];

vetor[j] = vetor[i];

vetor[i] = temp ;

}

}

}

return senha;

}

int existe_Espaco(int vetor[],int posicao){

int vazio[10];

if(vazio[posicao]=='0')

return 1;

else

return 0;

}

int chamar_Senha(int vetor[]){

int num,i,retorno = 0;

int vazio[10];

int vet[10];

for(i=0; i<10; i++) {

if (vazio[i]=='O'){

vetor[i]=num;

vazio[i]='X';

retorno=1;

break;

}

}

return retorno;

}

int main (){

srand(time(NULL));

int tipo_Fila,i ;

int resultadoFila;

char op;

int fila_Preferencial[10] = {0,0,0,0,0,0,0,0,0,0};

int fila_Normal[10]= {0,0,0,0,0,0,0,0,0,0};

do{

op='n';

printf("Digite qual fila deseja entrar:\n");

printf(" 1 - Para a fila normal\n");

printf(" 2 - Para a fila preferencial\n");

printf(" 3 - Listar Todos\n");

printf(" 0 - Para encerrar o programa\n\n");

printf("Resposta: ");

scanf("%d", &tipo_Fila);

if (tipo_Fila == 1){

int i=0;

printf("Digite seu nome:");

scanf("%s",&filaNormal[cont].nome);

printf("Bem vindo a fila %s\n", filaNormal[cont].nome);

printf("voce esta na fila de espera normal e o numero do seu ticket e : ");

filaNormal[cont].senha=senha;

printf("%d",senha);

cont++;

senha++;

}

if(tipo_Fila == 2){

printf("Digite seu nome:");

scanf("%s", &filaPreferencial[cont2].nome);

printf("Bem vindo a fila %s\n", filaPreferencial[cont2].nome);

filaPreferencial[cont2].senha=senha;

printf("Você está na fila de espera preferencial e numero do seu ticket e : ");

printf("%d",senha);

cont2++;

senha++;

}

if(tipo_Fila==3){

for(i=0;i<cont;i++){

if(strcmp(filaNormal[0].nome,"")!= 0&&i==0)printf("FilaNormal\n");

printf("Nome ----> %s\n",filaNormal[i].nome );

printf("Senha ---> %d\n\n",filaNormal[i].senha);

}

for(i=0;i<cont2;i++){

if(strcmp(filaPreferencial[0].nome,"")!= 0&&i==0)

printf("FilaPreferencial\n");

printf("Nome ----> %s\n",filaPreferencial[i].nome );

printf("Senha ---> %d\n\n",filaPreferencial[i].senha);

}

}

if(tipo_Fila == 0){

exit(0);

}

printf("\nPegar outra senha S/N ");

fflush(stdin);

scanf("%c",&op);

}while(op=='s');

}

User badge image

Andre Smaira

Há mais de um mês

Para a resolução desse problema foram utilizados conhecimentos em linguagem C e algoritmos.


#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <time.h>

#include <stdlib.h>

typedef struct {

char nome[100];

int numFila;

int senha;

}normal;

typedef struct {

char nome[100];

int numFila;

int senha;

}preferencial;

normal filaNormal[10];

preferencial filaPreferencial[10];

int senha,cont,cont2;

int menor = 0;

int ind=0;

for (tamanho=0;tamanho < 10;tamanho++){

if (menor > vetor[tamanho]) {

menor = vetor[tamanho];

}

}

return menor;

int ordena_Vetor(int vetor[]){

int i,x,j,ind,temp;

int retorno=0;

for (i=0;i<10;i++){

for(j=i+1;j<10;j++){

if( vetor[j] < vetor[i]){

temp = vetor[j];

vetor[j] = vetor[i];

vetor[i] = temp ;

}

}

}

return senha;

}

int existe_Espaco(int vetor[],int posicao){

int vazio[10];

if(vazio[posicao]=='0')

return 1;

else

return 0;

}

int chamar_Senha(int vetor[]){

int num,i,retorno = 0;

int vazio[10];

int vet[10];

for(i=0; i<10; i++) {

if (vazio[i]=='O'){

vetor[i]=num;

vazio[i]='X';

retorno=1;

break;

}

}

return retorno;

}

int main (){

srand(time(NULL));

int tipo_Fila,i ;

int resultadoFila;

char op;

int fila_Preferencial[10] = {0,0,0,0,0,0,0,0,0,0};

int fila_Normal[10]= {0,0,0,0,0,0,0,0,0,0};

do{

op='n';

printf("Digite qual fila deseja entrar:\n");

printf(" 1 - Para a fila normal\n");

printf(" 2 - Para a fila preferencial\n");

printf(" 3 - Listar Todos\n");

printf(" 0 - Para encerrar o programa\n\n");

printf("Resposta: ");

scanf("%d", &tipo_Fila);

if (tipo_Fila == 1){

int i=0;

printf("Digite seu nome:");

scanf("%s",&filaNormal[cont].nome);

printf("Bem vindo a fila %s\n", filaNormal[cont].nome);

printf("voce esta na fila de espera normal e o numero do seu ticket e : ");

filaNormal[cont].senha=senha;

printf("%d",senha);

cont++;

senha++;

}

if(tipo_Fila == 2){

printf("Digite seu nome:");

scanf("%s", &filaPreferencial[cont2].nome);

printf("Bem vindo a fila %s\n", filaPreferencial[cont2].nome);

filaPreferencial[cont2].senha=senha;

printf("Você está na fila de espera preferencial e numero do seu ticket e : ");

printf("%d",senha);

cont2++;

senha++;

}

if(tipo_Fila==3){

for(i=0;i<cont;i++){

if(strcmp(filaNormal[0].nome,"")!= 0&&i==0)printf("FilaNormal\n");

printf("Nome ----> %s\n",filaNormal[i].nome );

printf("Senha ---> %d\n\n",filaNormal[i].senha);

}

for(i=0;i<cont2;i++){

if(strcmp(filaPreferencial[0].nome,"")!= 0&&i==0)

printf("FilaPreferencial\n");

printf("Nome ----> %s\n",filaPreferencial[i].nome );

printf("Senha ---> %d\n\n",filaPreferencial[i].senha);

}

}

if(tipo_Fila == 0){

exit(0);

}

printf("\nPegar outra senha S/N ");

fflush(stdin);

scanf("%c",&op);

}while(op=='s');

}

Essa pergunta já foi respondida por um dos nossos especialistas