Advertisement
Devastano

Untitled

Nov 17th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.52 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define TAMANHOVETOR 10
  5. #define TAMANHOCAMPO 50
  6.  
  7. typedef struct ficha
  8. {
  9.     char Nome[TAMANHOCAMPO];
  10.     char Sexo[TAMANHOCAMPO];
  11.     float Altura;
  12.     int Colocacao;
  13.     char estadocivil[TAMANHOCAMPO];
  14. }FICHA;
  15.  
  16. int LerDados(FICHA Atletas[TAMANHOVETOR]);
  17. void ExibirFichas(FICHA Atletas[TAMANHOVETOR], int QuantidadeAtletas);
  18. void SalvarNovoArquivo(FICHA Atletas[TAMANHOCAMPO]);
  19.  
  20. int main()
  21. {
  22.  
  23.     int Opcao;
  24.     int QuantidadeAtletas;
  25.     FICHA Atletas[TAMANHOVETOR];
  26.     do{
  27.         printf("********************************* \n");
  28.         printf("MENU DE OPCAO: \n");
  29.         printf("\t  [1]: Carregar arquivo e exibir\n");
  30.         printf("\t  [2]: Ordenar dados e exibir\n");
  31.         printf("\t  [3]: Pesquisar dados e exibir\n");
  32.         printf("\t  [4]: Gravar os dados ORDENADOS\n");
  33.         printf("\t  [0]: Sair do programa\n");
  34.         printf("\t  Sua opcao: ");scanf("%i", &Opcao);
  35.         if (Opcao == 1)
  36.         {
  37.             QuantidadeAtletas = LerDados(Atletas);
  38.             ExibirFichas(Atletas, QuantidadeAtletas);
  39.         }
  40.         /* Opcao: Ordenar dados e exibir */
  41.         else if(Opcao == 2)
  42.         {
  43.             system("cls");
  44.             printf("Ordenar os dados e exibir: \n\n");
  45.         }
  46.         /* Opcao: Pesquisa (Binária) de dados e exibir */
  47.         else if(Opcao == 3)
  48.         {
  49.             system("cls");
  50.             printf("Pesquisar dados e exibir: \n\n");
  51.         }
  52.         /* Opcao: Gravar os dados ORDENADOS (Opcional) */
  53.         else if(Opcao == 4)
  54.         {
  55.             system("cls");
  56.             printf("Gravar os dados ORDENADOS (Opcional): \n\n");
  57.             SalvarNovoArquivo(Atletas);
  58.         }
  59.         /* Opcao: Sair do Programa */
  60.         else if(Opcao == 0)
  61.         {
  62.             system("cls");
  63.             printf("FIM DO PROGRAMA.\n\n\n");
  64.         }
  65.     }while(Opcao);
  66.     return 0;
  67. }
  68. int LerDados(FICHA Atletas[TAMANHOVETOR])
  69. {
  70.     int i = 0;
  71.     char C;
  72.     int QuantidadeAtletas = 0;
  73.     int Campo = 1;
  74.     FILE *Arquivo;
  75.     char Auxiliar[TAMANHOCAMPO];
  76.     system("cls");
  77.     printf("Dados do arquivo: \n\n");
  78.     Arquivo = fopen("Arquivo.txt", "r");
  79.     if (Arquivo == 0){
  80.         printf("Erro na abertura do arquivo.\n\n\n");
  81.         fclose(Arquivo);
  82.     }
  83.     else
  84.     {
  85.         i = 0; QuantidadeAtletas = 0; Campo = 1;
  86.         do
  87.         {
  88.             C = getc(Arquivo);
  89.             if (C != '\n' && C != EOF)
  90.             {
  91.                 Auxiliar[i] = C;
  92.                 i++;
  93.             }
  94.             else
  95.             {
  96.                 Auxiliar[i] = '\0';
  97.                 switch (Campo)
  98.                 {
  99.                     case 1:
  100.                         strcpy(Atletas[QuantidadeAtletas].Nome, Auxiliar);
  101.                         break;
  102.                     case 2:
  103.                         strcpy(Atletas[QuantidadeAtletas].Sexo, Auxiliar);
  104.                         break;
  105.                     case 3:
  106.                         Atletas[QuantidadeAtletas].Altura = atof(Auxiliar);
  107.                         break;
  108.                     case 4:
  109.                         Atletas[QuantidadeAtletas].Colocacao = atoi(Auxiliar);
  110.                         break;
  111.                     case 5:
  112.                         strcpy(Atletas[QuantidadeAtletas].estadocivil, Auxiliar);
  113.                         Campo = 0;
  114.                         QuantidadeAtletas++;
  115.                 }
  116.                     Campo++;
  117.                     i = 0;
  118.             }
  119.         }while (C != EOF);
  120.         fclose(Arquivo);
  121.     }
  122.     return QuantidadeAtletas;
  123. }
  124. void ExibirFichas(FICHA Atletas[TAMANHOVETOR], int QuantidadeAtletas)
  125. {
  126.     int i;
  127.     for (i = 0; i < QuantidadeAtletas; i++)
  128.     {
  129.         printf("Nadador %i:\n", i + 1);
  130.         printf("\t  Nome     : %s\n", Atletas[i].Nome);
  131.         printf("\t  Sexo     : %s\n", Atletas[i].Sexo);
  132.         printf("\t  Altura   : %.2f\n", Atletas[i].Altura);
  133.         printf("\t  Colocacao: %i\n", Atletas[i].Colocacao);
  134.         printf("\t  Estado Civil: %s\n", Atletas[i].estadocivil);
  135.     }
  136. }
  137.  
  138. void SalvarNovoArquivo(FICHA Atletas[TAMANHOCAMPO])
  139. {
  140.     FILE *Arquivo;
  141.     Arquivo = fopen("Arquivo.txt", "w");
  142.     int i;
  143.     for(i = 0; i < TAMANHOCAMPO; i++) {
  144.         fprintf(Arquivo, "%s\n", Atletas[i].Nome);
  145.         fprintf(Arquivo, "%s\n", Atletas[i].Sexo);
  146.         fprintf(Arquivo, "%.2f\n", Atletas[i].Altura);
  147.         fprintf(Arquivo, "%i\n", Atletas[i].Colocacao);
  148.         fprintf(Arquivo, "%s\n", Atletas[i].estadocivil);
  149.     }
  150.     fclose(Arquivo);
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement