Advertisement
Guest User

Projeto Ordenação

a guest
Nov 25th, 2014
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.60 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct aluno{
  5.     char matr[20];
  6.     char nome[100];
  7.     int faltas;
  8.     float media;
  9. }Taluno;
  10.  
  11.  
  12. Taluno * criarvetor(int n);
  13. //void ordenacao(Taluno **turma[],int n);
  14.  
  15. int main()
  16. {
  17.     FILE*arq;
  18.     Taluno al;
  19.     int status;
  20.     Taluno*turma;
  21.     int n=10,i, resp;
  22.  
  23.     arq=fopen("turma.dat","a+b");
  24.     if(arq==NULL)
  25.         printf("\nErro na criacao do arquivo!");
  26.     else{
  27.  
  28.  
  29.        do{
  30.             printf("\nInforme o nome do aluno: ");
  31.             fgets(al.nome,99,stdin);fflush(stdin);
  32.             printf("\nInforme a matricula do aluno: ");
  33.             fgets(al.matr,19,stdin);fflush(stdin);
  34.             printf("\nFaltas do aluno: ");
  35.             scanf("%i",&al.faltas);fflush(stdin);
  36.             printf("\nMedia do aluno: ");
  37.             scanf("%f",&al.media);fflush(stdin);
  38.  
  39.             status=fwrite(&al,sizeof(Taluno),1,arq);
  40.             if(status==0){
  41.                 printf("\nErro na gravacao!");
  42.                 break;
  43.             }
  44.             printf("\nDeseja cadastrar outro aluno? ");
  45.             resp=toupper(getchar());fflush(stdin);
  46.         }while(resp=='S');
  47.  
  48.  
  49.  
  50.  
  51.         turma=criarvetor(n);
  52.         rewind(arq);
  53.         for(i=0;i<n;i++){
  54.             status=fread(&turma[i],sizeof(Taluno),1,arq);
  55.  
  56.            if(status==0){
  57.                 if(feof(arq)==0)
  58.                     printf("\nFim do arquivo!");
  59.                 else
  60.                     printf("\nErro na leitura!");
  61.             }
  62.         }
  63.         int i, j;
  64.         char chave[10];
  65.  
  66.         for(i=1;i<n;i++){
  67.  
  68.             strcpy(chave,turma[i].nome);
  69.  
  70.             j=i-1;
  71.             while(j>=0&&strcmp(turma[j].nome,chave)>0){
  72.                 strcpy(turma[j+1].nome,turma[j].nome);
  73.                 j=j-1;
  74.             }
  75.                 strcpy(turma[j+1].nome,chave);
  76.  
  77.     }
  78.  
  79.  
  80.  
  81.     }
  82.  
  83.  
  84.     return 0;
  85. }
  86.  
  87.  
  88. Taluno * criarvetor(int n){
  89.     Taluno * vetor;
  90.  
  91.     vetor=(Taluno *) malloc(n*sizeof(Taluno));
  92.     return vetor;
  93.  
  94. }
  95.  
  96. /*void ordenacao(Taluno **turma[],int n){
  97.     int i, j;
  98.     char chave[10];
  99.  
  100.     for(i=1;i<n;i++){
  101.         chave=*turma[i].nome;
  102.         j=i-1;
  103.         while(j>=0&&strcmp(*turma[j].nome,chave)>0){
  104.             turma[j+1].nome=*turma[j].nome;
  105.             j=j-1;
  106.         }
  107.         *turma[j+1].nome=chave;
  108.  
  109.     }
  110. }*/
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120. /* status=fread(&al,sizeof(Taluno),1,arq);
  121.             if(status==0){
  122.                 if(feof(arq)==0)
  123.                     printf("\nfim de arquivo!");
  124.                 else
  125.                     printf("\nErro na leitura!");
  126.             }
  127.             else{*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement