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
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/
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');
}
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar