Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- //Se o sistema for Windows adiciona determinada biblioteca e definindo comandos
- #ifdef WIN32
- #include <conio.h>
- #define LIMPA_TELA system("cls")
- //Senão for Windows (se for Linux)
- #else
- #include <ncurses.h>
- #define LIMPA_TELA system("/usr/bin/clear")
- #endif
- //Espera 3 segundos
- #define ESPERA sleep(2)
- //Estrutura da lista que será criada
- typedef struct Fila
- {
- int valor;
- struct Fila *proximo;
- } Dados;
- void insere();
- void exclui();
- void mostra();
- void mostra_erro();
- //Inicializando os dados da lista
- Dados *principal = NULL;
- Dados *final = NULL;
- int main()
- {
- char escolha;
- //Laço que irá mostrar o menu esperando uma opção (char)
- do
- {
- //Limpando a tela, e mostrando o menu
- LIMPA_TELA;
- printf("Escolha uma opção: \n");
- printf("\t1 - Inserir valor na Fila\n");
- printf("\t2 - Remover valor da Fila\n");
- printf("\t3 - Mostrar valores da Fila\n");
- printf("\t9 - Sair\n\n");
- printf("Resposta: ");
- scanf("%c", &escolha);
- switch(escolha)
- {
- //Inserindo
- case '1':
- insere();
- break;
- //Excluindo
- case '2':
- if(principal!=NULL)
- {
- exclui();
- }
- else
- {
- printf("\nA Fila está vazia!\n");
- getchar();
- }
- break;
- case '3': //Mostrando
- if(principal!=NULL)
- {
- mostra();
- }
- else
- {
- printf("\nA Fila está vazia!\n");
- getchar();
- }
- break;
- case '9':
- printf("------>Terminal de Informação<------\n\n");
- ESPERA;
- exit(0);
- break;
- //Se foi algum valor inválido
- default:
- mostra_erro();
- break;
- }
- //Impedindo sujeira na gravação da escolha
- getchar();
- }
- while (escolha > 0); //Loop Infinito
- }
- //Inserção
- void insere()
- {
- int val;
- LIMPA_TELA;
- printf("Insira o valor a ser inserido: ");
- scanf("%d",&val);
- Dados *atual = (Dados*)malloc(sizeof(Dados));
- atual -> valor = val;
- atual -> proximo = NULL;
- //se o principal estiver vazio, será o atual
- if(principal == NULL)
- {
- principal = final = atual;
- }
- //senão, o próximo valor que será o atual
- else
- {
- final->proximo=atual;
- final=atual;
- }
- printf("\nValor inserido!\n");
- getchar();
- }
- //Exclusão
- void exclui()
- {
- Dados *auxiliar;
- printf("\nExclusão: \n");
- //o auxiliar será o próximo da principal
- auxiliar=principal->proximo;
- //limpando a principal
- free(principal);
- //a principal será a auxiliar
- principal=auxiliar;
- printf("\nValor excluido!\n");
- getchar();
- }
- //Mostrando
- void mostra()
- {
- Dados *nova=principal;
- LIMPA_TELA;
- //laço de repetição para mostrar os valores
- for (; nova != NULL; nova = nova->proximo)
- {
- printf("%5d", nova->valor);
- }
- getchar();
- }
- void mostra_erro()
- {
- LIMPA_TELA;
- printf("\nDigite uma opção válida!\n");
- getchar();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement