Guest User

Untitled

a guest
Apr 26th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. void funcao4(char arq[]){
  2. int categ, total, i, fez_troca, aux, k;
  3. char resp, nomecateg;
  4. tipoexpositor expositor;
  5. tipoexpositor categoria[100];
  6. FILE *fp;
  7.  
  8. total=0;
  9. i=0;
  10.  
  11. fp = fopen(arq, "rb");
  12. if(!fp) {
  13. printf("Arquivo inexistente\n");
  14. }
  15. else{
  16. do{
  17. printf("Digite a categoria que deseja consultar:");
  18. scanf("%d", &categ);
  19. while((categ<=0)||(categ>3)){
  20. printf("**ERRO** A categoria deve estar entre 1 e 3.\n");
  21. printf("Digite a categoria novamente:");
  22. scanf("%d", &categ);
  23. }
  24. while(fread(&expositor, sizeof(tipoexpositor), 1, fp)!=0){
  25. if (expositor.categoria==categ){
  26. total++;
  27.  
  28. //categoria[i].nome = expositor.nome;
  29. for(k=0; k<= strlen(expositor[i].nome); k++){
  30. categoria[i].nome[k]=expositor.nome[k]
  31. }
  32. categoria[i].num_estande = expositor.num_estande;
  33. categoria[i].atuacao = expositor.atuacao;
  34. categoria[i].categoria = expositor.categoria;
  35. categoria[i].num_colaboradores = expositor.num_colaboradores;
  36.  
  37. i++;
  38.  
  39. }
  40. }
  41.  
  42. fez_troca=1;
  43. while(fez_troca){
  44. fez_troca=0;
  45. for(j=0; j<=(total-2); j++){
  46. if(categoria[j].num_estande>categoria[j+1].num_estande){
  47. aux=categoria[j].num_estande;
  48. categoria[j].num_estande=categoria[j+1].num_estande;
  49. categoria[j+1].num_estande=aux;
  50.  
  51. for(j=0;j <= strlen(categoria[i].nome); j++){
  52. aux1[j] = categoria[i].nome[j];
  53. categoria[i].nome[j] = categoria[i+1].nome[j];
  54. categoria[i+1].nome[j] = aux1[j];
  55. }
  56.  
  57. categoria[i+1].nome[j] = '\0';
  58. categoria[i].nome[j] = '\0';
  59. for(j=0;j <= strlen(categoria[i].atuacao); j++){
  60. aux1[j] = categoria[i].atuacao[j];
  61. categoria[i].atuacao[j] = categoria[i+1].atuacao[j];
  62. categoria[i+1].atuacao[j] = aux1[j];
  63.  
  64. }
  65. categoria[i+1].atuacao[j] = '\0';
  66. categoria[i].atuacao[j] = '\0';
  67. fez_troca=1;
  68. }
  69. }
  70.  
  71. if(categ==1){
  72. nomecateg="ouro";
  73. }
  74. if (categ==2){
  75. nomecateg="prata";
  76. }
  77. if (categ==3){
  78. nomecateg="bronze";
  79. }
  80.  
  81. printf("\n\nCATEGORIA: %d- %s", categ, nomecateg);
  82. printf("\nTOTAL DE EXPOSITORES: %d", total);
  83. printf("\nESTANDE\tEXPOSITOR\tRAMO\tCOLABORACAO\n");
  84. for(j=0; j<total; j++){
  85. printf("categoria[j].num_estande");
  86. printf("\tcategoria[j].nome");
  87. printf("\tcategoria[j].atuacao");
  88. printf("\tcategoria[j].num_colaboradores\n");
  89. }
  90.  
  91. printf("\n\nDeseja consultar mais categorias?");
  92. scanf("%s", &resp);
  93. while((resp!='s')||(resp!='S')&&(resp!='n')||(resp!='N')){
  94. printf("**ERRO** Digite 's' para sim ou 'n' para nao:");
  95. scanf("%s", &resp);
  96. }
  97. }while ((resp=='s')||(resp=='S'));
  98. fclose(fp);
  99. }
  100.  
  101. }
Add Comment
Please, Sign In to add comment