ulvis.paste.net

Paste Search Dynamic
Recent pastes
struct struct_alunos
  1. #define TOTAL_ALUNOS 30
  2.  
  3. struct struct_alunos {
  4.      char nome[30];
  5.      int ra;
  6.      char turma[20];
  7.      char email[150];
  8.      float nota[3][5];
  9. };
  10.  
  11. int i_corrente = 0;
  12.  
  13. main()
  14. {
  15.       struct struct_alunos alunos[TOTAL_ALUNOS], aux;
  16.      
  17.       int op, i, j, k, op2;
  18.       int ra, pontos, bimestre, disciplina;
  19.       float valor_arredondado, valor_floor, valor_acrescentado;
  20.      
  21.       do {
  22.           limpa();
  23.          
  24.           cabecalho("ALUNOS ANHANGUERA");
  25.           printf("\n [1] Inclusao");
  26.           printf("\n [2] Alteracao");
  27.           printf("\n [3] Consulta por RA");
  28.           printf("\n [4] Ordenacao");
  29.           printf("\n [5] Listagem");
  30.           printf("\n [6] Apagar alunos");
  31.           printf("\n [7] Sair");
  32.           printf("\n Opcao: ");
  33.           scanf("%d", &op);
  34.           limpa();
  35.          
  36.           switch (op)
  37.           {
  38.                  // Inclusao
  39.                  case 1 :
  40.                       cabecalho("INCLUIR ALUNO");
  41.                       incluir("Nome",   'n', &alunos);
  42.                       incluir("RA",     'r', &alunos);
  43.                       incluir("Turma",  't', &alunos);
  44.                       incluir("E-mail", 'e', &alunos);
  45.                      
  46.                       cabecalho("NOTAS");
  47.                      
  48.                       for (i = 0; i < 5; i++) {
  49.                           for (j = 0; j < 2; j++) {
  50.                                 printf("Nota[%d][%d]: ", i+1, j+1);
  51.                                 scanf("%f", &alunos[i_corrente].nota[j][i]);
  52.                           }
  53.                           alunos[i_corrente].nota[3][i] = (alunos[i_corrente].nota[0][i] * 0.4) + (alunos[i_corrente].nota[1][i] * 0.6);
  54.                           printf("-----\n");
  55.                       }
  56.                      
  57.                       i_corrente++;
  58.                       break;
  59.                      
  60.                  // Alteracao
  61.                  case 2 :
  62.                       cabecalho("ALTERAR");
  63.                      
  64.                       printf("\n [1] Alterar dados do alunos");
  65.                       printf("\n [2] Acrescentar pontos para alunos");
  66.                       printf("\n [3] Arredendoar medias");
  67.                       printf("\n Opcao: ");
  68.                       scanf("%d", &op2);
  69.                       printf("\n");
  70.                      
  71.                       if (op2 == 1) {
  72.                      
  73.                           printf("Digite o RA para alterar: ");
  74.                           scanf("%d", &ra);
  75.                          
  76.                           for (i = 0; i < i_corrente; i++) {
  77.                               if (alunos[i].ra == ra) {
  78.                                     alterar("Nome",   'n', &alunos, i);
  79.                                     alterar("Turma",  't', &alunos, i);
  80.                                     alterar("E-mail", 'e', &alunos, i);
  81.                                     break;
  82.                               }
  83.                           }
  84.                       }
  85.                       else if (op2 == 2) {
  86.                            printf("Quantos pontos vai acrescentar? ");
  87.                            scanf("%d", &pontos);
  88.                            
  89.                            printf("Qual bimestre? ");
  90.                            scanf("%d", &bimestre);
  91.                            --bimestre;
  92.                            
  93.                            printf("Qual disciplina? ");
  94.                            scanf("%d", &disciplina);
  95.                            --disciplina;
  96.                            
  97.                           for (i = 0; i < i_corrente; i++) {
  98.                                k = alunos[i].nota[bimestre][disciplina];
  99.                                k = k + pontos;
  100.                                alunos[i].nota[bimestre][disciplina] = k;
  101.                                alunos[i].nota[3][disciplina] = (alunos[i].nota[0][disciplina] * 0.4) + (alunos[i].nota[1][disciplina] * 0.6);
  102.                           }
  103.                       }
  104.                       else {
  105.                           for (i = 0; i < i_corrente; i++) {
  106.                               for (j = 0; j < 5; j++) {
  107.                                   valor_floor = floor(alunos[i].nota[3][j]);
  108.                                   if ((alunos[i].nota[3][j] - valor_floor) >= 0.7) {
  109.                                        valor_acrescentado = 1;
  110.                                   }
  111.                                   else if ((alunos[i].nota[3][j] - valor_floor) >= 0.5) {
  112.                                        valor_acrescentado = 0.5;
  113.                                   }
  114.                                   else {
  115.                                        valor_acrescentado = 0;
  116.                                   }
  117.                                   alunos[i].nota[3][j] = (valor_floor + valor_acrescentado);
  118.                               }
  119.                           }
  120.                       }
  121.                      
  122.                       break;
  123.                      
  124.                  // Consulta por RA
  125.                  case 3 :
  126.                       cabecalho("CONSULTA POR RA");
  127.                       printf("Digite o RA para alterar: ");
  128.                       scanf("%d", &ra);
  129.                      
  130.                       for (i = 0; i < i_corrente; i++) {
  131.                           if (alunos[i].ra == ra) {
  132.                                 printf("\nNome: %s\n", alunos[i].nome);
  133.                                 printf("RA: %d\n", alunos[i].ra);
  134.                                 printf("Turma: %s\n", alunos[i].turma);
  135.                                 printf("Email: %s\n\n", alunos[i].email);
  136.                                 pausa();
  137.                                
  138.                                 break;
  139.                           }
  140.                       }
  141.                      
  142.                       break;
  143.                      
  144.                  // Ordenacao
  145.                  case 4 :
  146.                       cabecalho("ORDENACAO");
  147.                       for (i = 0; i < i_corrente; i++) {
  148.                             for (j = i+1; j < i_corrente; j++) {
  149.                                 if (strcmp(alunos[i].nome, alunos[j].nome) == 1) {
  150.                                       // ordena nome
  151.                                       strcpy(aux.nome, alunos[i].nome);
  152.                                       strcpy(alunos[i].nome, alunos[j].nome);
  153.                                       strcpy(alunos[j].nome, aux.nome);
  154.                                      
  155.                                       // ordena ra
  156.                                       aux.ra = alunos[i].ra;
  157.                                       alunos[i].ra = alunos[j].ra;
  158.                                       alunos[j].ra = aux.ra;
  159.                                      
  160.                                       // ordena turma
  161.                                       strcpy(aux.turma, alunos[i].turma);
  162.                                       strcpy(alunos[i].turma, alunos[j].turma);
  163.                                       strcpy(alunos[j].turma, aux.turma);
  164.                                      
  165.                                       // ordena email
  166.                                       strcpy(aux.email, alunos[i].email);
  167.                                       strcpy(alunos[i].email, alunos[j].email);
  168.                                       strcpy(alunos[j].email, aux.email);
  169.                                      
  170.                                 }
  171.                             }
  172.                       }
  173.                      
  174.                       exibir(alunos);
  175.                       pausa();
  176.                      
  177.                       break;
  178.                      
  179.                  // Listagem
  180.                  case 5 :
  181.                       cabecalho("LISTAGEM");
  182.                       exibir(alunos);
  183.                       pausa();
  184.                      
  185.                       break;
  186.                      
  187.                  // Apagar
  188.                  case 6 :
  189.                       i_corrente = 0;
  190.                       break;
  191.           }
  192.          
  193.       } while (op != 7);
  194. }
  195.  
  196. exibir ( struct struct_alunos* alunos_pass )
  197. {
  198.       int i, j, k;
  199.       for (i = 0; i < i_corrente; i++) {
  200.             printf("Nome: %s\n", alunos_pass[i].nome);
  201.             printf("RA: %d\n", alunos_pass[i].ra);
  202.             printf("Turma: %s\n", alunos_pass[i].turma);
  203.             printf("Email: %s\n", alunos_pass[i].email);
  204.             printf("\n- NOTAS \n\n");
  205.             for (k = 0; k < 5; k++) {
  206.                 for (j = 0; j < 2; j++) {
  207.                     printf("Nota[%d][%d]: %.1f \n", i+1, j+1, alunos_pass[i].nota[j][k]);
  208.                 }
  209.                 printf("Media: %.1f \n\n", alunos_pass[i].nota[3][k]);
  210.             }
  211.             printf("----------------------------------\n");
  212.       }
  213. }
  214.  
  215. incluir (char label[100], int field, struct struct_alunos* alunos_pass)
  216. {
  217.       printf("%s: ", label);
  218.       switch (field)
  219.       {
  220.              case 'n' : scanf("%s", &alunos_pass[i_corrente].nome); break;
  221.              case 'r' : scanf("%d", &alunos_pass[i_corrente].ra); break;
  222.              case 't' : scanf("%s", &alunos_pass[i_corrente].turma); break;
  223.              case 'e' : scanf("%s", &alunos_pass[i_corrente].email); break;
  224.       }
  225. }
  226.  
  227. alterar (char label[100], int field, struct struct_alunos* alunos_pass, int i)
  228. {
  229.       printf("%s: ", label);
  230.       switch (field)
  231.       {
  232.              case 'n' : scanf("%s", &alunos_pass[i].nome); break;
  233.              case 't' : scanf("%s", &alunos_pass[i].turma); break;
  234.              case 'e' : scanf("%s", &alunos_pass[i].email); break;
  235.       }
  236. }
  237.  
  238. limpa ()
  239. {
  240.       system("CLS");
  241. }
  242.  
  243. pausa()
  244. {
  245.        system("PAUSE");
  246. }
  247.  
  248. cabecalho (char titulo[100])
  249. {
  250.       printf("---------------------------------------\n");
  251.       printf("%s\n", titulo);
  252.       printf("---------------------------------------\n\n");
  253. }
Parsed in 0.087 seconds