Existem diferentes formas de manipulação de itens em estruturas lineares. Uma das formas de manipulação é a "fila", que implementa o conceito de FIFO (First In, First Out), no qual o primeiro elemento que entra é o primeiro que sai. Muitas vezes, o controle de execução dos processos em um sistema operacional é gerenciado utilizando este conceito, para que o sistema possa atender de forma satisfatória, e sob uma determinada ordem, diversas tarefas que são executadas simultaneamente.
A seguir, propomos outra tarefa que também é gerenciada deste modo: um supermercado possui 3 filas de carrinhos (caixas) que vão chegando e são atendidos quando chega a sua vez.
O que deve ser realizado na questão:
1) Primeiramente defina um tipo abstrato de dados (TAD) para comportar os dados de um carrinho: um identificador numérico, o nome do cliente (com máximo de 30 caracteres); o número de produtos; e o valor total da compra.
2) Em
Soluções para a tarefa
Resposta:
#include <stdio.h>
#include <stdlib.h>
typedef struct cliente {
int cod;
char nome [40];
} Cliente;
typedef struct fila {
Clientes clientes [1000];
int inicio;
int fim;
} Fila;
typedef struct registro {
Cliente c;
float vlpago;
float vlcobrado;
float troco;
}
Registro;
Fila caixa1;
Fila caixa2;
Fila caixa3;
Registro reg_caixa1 [1000];
Registro reg_caixa2 [1000];
Registro reg_caixa3 [1000];
// inicialização das variaveis
int caixa1, caixa2, caixa3;
printf("MENU DE opções:\n\n");
printf("Escolha o caixa no qual deseja fazer a simulacao\n");
printf("1 para caixa 1 | 2 para o caixa 2 | 3 para o caixa 3 | 4 para sair\n");
Op:
printf("Opcao: ");fflush(stdin);
switch(getche())
{
case '1' : caixa1();
break;
case '2' : caixa2();
break;
case '3' : caixa3();
break;
case '4' : exit(0);
break;
case '5' : gravar();
break;
default : printf("Invalido!\n\n");
system("PAUSE");
return 0;
}
Explicação: