Buscar

Uso de filas em estrutura de dados

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

/*
Lista 4
Data: 29/01/2018
Jonatan Mielke Fagundes
*/
#include <stdio.h>
#include <stdlib.h>
#include "Fila_de_pessoas.h"
int main()
{
 Fila *f;
 char nome[20], opcao, op;
 int dia, mes, ano, idade, criada = 0;
 inicio:
 printf("\n\tMENU\n");
 printf("\n[a] Criar uma fila");
 printf("\n[b] Inserir pessoa na fila");
 printf("\n[c] Retirar pessoa da fila");
 printf("\n[d] Imprimir fila");
 printf("\n[e] Mostrar pessoas com mais de 18 anos");
 printf("\n[f] Mostrar pessoas por dia, mes ou ano de nascimento");
 printf("\n[g] Sair do programa");
 printf("\n\nInforme a opcao desejada: ");
 fflush(stdin);
 scanf("%c", &opcao);
 switch(opcao){
 case 'a':
 if(criada == 0){
 f = fila_cria();
 criada = 1;
 }
 else
 {
 printf("\n\nFila ja existe.\n\n");
 }
 break;
 case 'b':
 printf("\n\nInforme o nome: ");
 scanf("%s", &nome);
 printf("Informe a idade: ");
 scanf("%d", &idade);
 printf("Informe o dia de nascimento: ");
 scanf("%d", &dia);
 printf("Informe o mes de nascimento: ");
 scanf("%d", &mes);
 printf("Informe o ano de nascimento: ");
 scanf("%d", &ano);
 fila_insere(f, nome, idade, dia, mes, ano);
 break;
 case 'c':
 fila_retira(f, nome, &idade, &dia, &mes, &ano);
 if(!fila_vazia(f)){
 printf("\n\nA pessoa abaixo foi retirada da lista:");
 printf("\n\nNome: %s", nome);
 printf("\nIdade: %d", idade);
 printf("\nData de Nascimento: %d/%d/%d\n\n", dia, mes, ano);
 }
 break;
 case 'd':
 fila_imprime(f);
 break;
 case 'e':
 fila_imprime_maiores(f);
 break;
 case 'f':
 inicio_imprime_especial:
 printf("\n\nComo voce deseja filtrar: ");
 printf("\n[a] Dia");
 printf("\n[b] Mes");
 printf("\n[c] Ano");
 printf("\n\nInforme a opcao desejada: ");
 fflush(stdin);
 scanf("%c", &op);
 switch (op){
 case 'a':
 printf("\n\nInforme o dia: ");
 scanf("%d", &dia);
 fila_imprime_especial(f, dia, op);
 break;
 case 'b':
 printf("\nInforme o mes (1 a 12): ");
 scanf("%d", &mes);
 fila_imprime_especial(f, mes, op);
 break;
 case 'c':
 printf("\nInforme o ano: ");
 scanf("%d", &ano);
 fila_imprime_especial(f, ano, op);
 break;
 default:
 printf("\nOpcao invalida!\n\n");
 goto inicio_imprime_especial;
 break;
 }
 break;
 case 'g':
 printf("\n\nO programa esta sendo encerrado...");
 fila_libera(f);
 printf("\nPrograma encerrado!\n\n");
 break;
 default:
 printf("\nOpcao invalida!\n\n");
 goto inicio;
 }
 while(opcao != 'g'){
 goto inicio;
 }
 return 0;
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando

Outros materiais