Advertisement
BrunoG92

Lista encadeada de alunos

May 14th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.01 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int opcao, opcao2 = 0;
  5. char pesquisa [40];
  6.  
  7.  struct curso // struct para  curso
  8. {
  9.     char Nome[40]; // nome do curso
  10.     char Sigla[5]; // sigla do curso
  11.     int Periodos;  //qtde de periodos do curso
  12. };
  13.  
  14.  struct aluno // struct para  aluno
  15. {
  16.     char Nome[40];
  17.     aluno *prox;
  18.  
  19.     struct curso Curso;
  20. };
  21. int main()
  22. {
  23.     aluno *valores,
  24.     *v1, *v2;
  25.     valores = (aluno *)malloc(sizeof(aluno));
  26.     v1 = valores;
  27.     v2 = valores;
  28.     while (opcao !=4)
  29.     {
  30.  
  31.         system ("cls");
  32.         printf("1 - Cadastrar aluno \n");
  33.         printf("2 - Pesquisar aluno \n");
  34.         printf("3 - Sair\n");
  35.         printf("4 - Alunos Cadastrados \n");
  36.         printf("->");
  37.         scanf("%d", &opcao);
  38.         switch (opcao)
  39.         {
  40.         case 1:
  41.  
  42.             while (opcao2 != 2)
  43.             {
  44.                 fflush(stdin);
  45.                 printf("Cadastro de aluno selecionado\n");
  46.                 printf("Digite o nome do aluno: ");
  47.                 fgets(v1->Nome, 40, stdin);
  48.                 //COMENTADO PARA FACILITAR O TESTE //
  49.                  /* printf("Informe o curso do aluno: ");
  50.                 fgets(v1->Curso.Nome, 40, stdin);
  51.                 printf("Informe a sigla do curso: ");
  52.                 fgets(v1->Curso.Sigla, 5, stdin);
  53.                 printf("Informe a quantidade de periodos do curso: ");
  54.                 scanf("%d", &v1->Curso.Periodos); */
  55.                 system ("cls");
  56.                 printf("Cadastrar novamente ? 1- Sim |2- Nao \n");
  57.                 printf ("->");
  58.                 scanf("%d", &opcao2);
  59.                 if (opcao2 == 1)
  60.                 {
  61.                     v1->prox = (aluno *)malloc(sizeof(aluno));
  62.                     v1 = v1->prox;
  63.                 }
  64.             }
  65.             printf("Cadastro concluido com sucesso. Voltando ao menu principal... \n");
  66.             break;
  67.         case 2:
  68.            
  69.             fflush(stdin);
  70.             printf("Pesquisar aluno selecionado\n");
  71.             printf("Digite o nome do aluno: ");
  72.             fgets(pesquisa,40,stdin);
  73.            
  74.                 if (strcmp (v1->Nome,pesquisa)==0)
  75.                 {
  76.                     printf ("Aluno encontrado. Segue os dados abaixo: \n");
  77.                     printf ("Nome : %s",v1->Nome);
  78.                     //DESCOMENTAR QUANDO ESTIVER FUNCIONAL A PESQUISA//
  79.                      /* printf ("Curso:%s", v1->Curso.Nome);
  80.                     printf ("Sigla: %s",v1->Curso.Sigla);
  81.                     printf ("Quantidade de periodos: %s",v1->Curso.Periodos); */
  82.                 }
  83.                  else
  84.             {
  85.                 printf ("Aluno nao encontrado \n");
  86.                break;
  87.             }
  88.    
  89.            
  90.         case 3:
  91.  
  92.             printf("Obrigado por utilizar esse programa");
  93.             return 0;
  94.         case 4:
  95.  
  96.             system("cls");
  97.             printf("Exibir alunos \n");
  98.             while (v2->prox != NULL)
  99.             {
  100.                 printf("\n\nNome: %s", v2->Nome);
  101.                 v2 = v2->prox;
  102.             }
  103.         }
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement