Advertisement
MarceloSousa

Pilha

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