Advertisement
MarceloSousa

Pilha 2

Mar 23rd, 2014
362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4.  
  5.  
  6. void sobre_aplicativo(void);
  7. void Inserir(void);
  8. void Alterar(void);
  9. void Consultar (void);
  10. void Listar(void);
  11.  
  12. struct Pilha
  13. {
  14.     int Id;
  15.     int Valor;
  16.     struct Pilha *Proximo;
  17. };
  18.     struct Pilha *Primeiro = (struct Pilha*) NULL;
  19.     struct Pilha *Ultimo = (struct Pilha*) NULL;
  20.     struct Pilha *Atual = (struct Pilha*) NULL;
  21.  
  22.  
  23. int main(void) {
  24.     setlocale(LC_ALL, "Portuguese");
  25.  
  26.  
  27.  
  28.     int Opcao = 1;
  29.     do {
  30.         system("cls");
  31.         printf(" #######################\n");
  32.         printf("#1 - Inserir Valor      #\n");
  33.         printf("#2 - Alterar Valor      #\n");
  34.         printf("#3 - Excluir Valor      #\n");
  35.         printf("#4 - Consultar Valor    #\n");
  36.         printf("#5 - Listar Valor       #\n");
  37.         printf("#6 - Sobre o Aplicativo #\n");
  38.         printf("#0 - Sair               #\n");
  39.         printf(" #######################\n");
  40.         scanf("%d", &Opcao);
  41.  
  42.  
  43.     switch(Opcao){
  44.         case 1: Inserir(); break;
  45.         case 2: Alterar(); break;
  46.         case 3: Excluir(); break;
  47.         case 4: Consultar(); break;
  48.         case 5: Listar(); break;
  49.         case 6: sobre_aplicativo();break;
  50.         case 0: break;
  51.         default: printf("Opção Invalida!");
  52.  
  53.         }
  54.     }      while (Opcao != 0);
  55.     return 0;
  56. }
  57.  
  58. void Inserir (){
  59.  
  60.  
  61.  
  62.             if (Primeiro == (struct Pilha*) NULL) {
  63.                     printf("Entrou no If");
  64.                     getch();
  65.                 Atual = Primeiro = Ultimo = (struct Pilha*) malloc(sizeof (struct Pilha));
  66.                 Atual-> Id = 1;
  67.             } else {
  68.                 printf("Entrou no Else");
  69.                     getch();
  70.                 Ultimo-> Proximo = (struct Pilha*) malloc(sizeof (struct Pilha));
  71.                 Atual = Ultimo-> Proximo;
  72.                 Atual-> Id = Ultimo-> Id + 1;
  73.                 Ultimo = Atual;
  74.             }
  75.  
  76.             Atual-> Proximo = (struct Pilha*) NULL;
  77.  
  78.             int Valor;
  79.             printf("Informe o Valor: ");
  80.             scanf("%d", &Valor);
  81.             Atual-> Valor = Valor;
  82.  
  83.         Atual = Primeiro;
  84.  
  85.  
  86.  
  87. }
  88.  
  89. void Alterar (void){
  90.  
  91.  Atual = Primeiro;
  92.             int verificaID, Valor;
  93.  
  94.             printf("Informe o Id: ");
  95.             scanf("%d", &verificaID);
  96.  
  97.  
  98.             while (Atual != (struct Pilha*) NULL)
  99.             {
  100.                 if (Atual-> Id == verificaID)
  101.                 {
  102.                     printf("Informe o novo Valor: ");
  103.                     scanf("%d",&Valor);
  104.                     Atual-> Valor = Valor;
  105.                     break;
  106.                 }
  107.                 else{
  108.                     printf("ID não encontrado");
  109.                     break;
  110.                 }
  111.                 Atual = Atual-> Proximo;
  112.             }
  113.             system("pause");
  114. }
  115.  
  116. void Excluir (void){
  117.  
  118.     if (Primeiro == (struct Pilha*) NULL)
  119.                 return(0);
  120.  
  121.             if (Primeiro == Ultimo)
  122.             {
  123.                 Atual = Primeiro;
  124.                 free(Atual);
  125.                 Atual = Primeiro = Ultimo = (struct Pilha*) NULL;
  126.  
  127.             }
  128.  
  129.             Atual = Primeiro;
  130.  
  131.             while(Atual-> Proximo != Ultimo)
  132.                 Atual = Atual-> Proximo;
  133.  
  134.             free(Ultimo);
  135.             Ultimo = Atual;
  136.             Atual-> Proximo = (struct Pilha*) NULL;
  137.  
  138. }
  139.  
  140. void Consultar (void){
  141.  
  142. Atual = Primeiro;
  143.             int verificaID;
  144.  
  145.             printf("Informe o ID: ");
  146.             scanf("%d", &verificaID);
  147.  
  148.             while (Atual != (struct Pilha*) NULL)
  149.             {
  150.                 if (Atual-> Id == verificaID)
  151.                 {
  152.                     printf("ID: %d | Valor %d\n", Atual-> Id, Atual-> Valor);
  153.                 }
  154.                 Atual = Atual-> Proximo;
  155.             }
  156.  
  157.             system("pause");
  158. }
  159.  
  160. void Listar(void){
  161.  
  162.     while (Atual != (struct Pilha*) NULL) {
  163.             printf("ID: %d | Valor %d\n", Atual-> Id, Atual-> Valor);
  164.             Atual = Atual-> Proximo;
  165.  
  166.         }
  167.            system("pause");
  168. }
  169.  
  170. void sobre_aplicativo(void){
  171.  
  172.     printf("Aplicação inicia no dia 19/03/2014\n");
  173.     printf("Autores: \n");
  174.     printf("Marcelo Wender Sousa do Nascimento\n");
  175.     printf("Marina Moreno\n");
  176.     printf("Jhonatan\n\n");
  177.     system("Pause");
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement