lineoff

Untitled

May 4th, 2016
324
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //
  2. //  main.c
  3. //  Files
  4. //
  5. //  Created by Abdelali on 30/04/2016.
  6. //  Copyright © 2016 Abdelaali. All rights reserved.
  7. //
  8.  
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include <string.h>
  12. #define List "/Users/MacBook/Documents/workspace/xCode WorkPlace/Files/Files/List.txt"
  13. #define ListSorted "/Users/MacBook/Documents/workspace/xCode WorkPlace/Files/Files/ListSorted.txt"
  14. #define ListGradeA "/Users/MacBook/Documents/workspace/xCode WorkPlace/Files/Files/ListeNoteA.txt"
  15. #define ListGradeF "/Users/MacBook/Documents/workspace/xCode WorkPlace/Files/Files/ListeNoteF.txt"
  16.  
  17. typedef struct Etudiant {
  18.     char Nom[50];
  19.     char Prenom[50];
  20.     double Note;
  21. }Etd;
  22.  
  23. void ajouterEtd(int,Etd*,int*,int*);
  24. void trii(Etd*,int,Etd,int*);
  25.  
  26. int main(int argc, const char * argv[]) {
  27.     FILE* f = NULL;
  28.     FILE* FLS = NULL;
  29.     FILE* FLGA = NULL;
  30.     FILE* FLGF = NULL;
  31.     Etd* E;
  32.     Etd* Ehelp;
  33.    
  34.     Etd a;
  35.     //char c,b;
  36.     int n,i,pos=0;
  37.     int Ln=5,Lp=5;
  38.    
  39.     printf("Donner le nbr d'etudiant: ");
  40.     do{
  41.         scanf("%d",&n);
  42.     }while (n<1);
  43.    
  44.    
  45.     E=(Etd*)malloc(n*sizeof(Etd));
  46.     Ehelp=(Etd*)malloc(n*sizeof(Etd));
  47.    
  48.     ajouterEtd(n,E,&Ln,&Lp);
  49.    
  50.     f = fopen(List, "w");
  51.     if(!f){
  52.         fprintf(stderr, "Impossible d'ouvrire ou creer le fichier.");
  53.     }else{
  54.         fprintf(f,"Nom%*.*sPrenom%*.*sNote\n",Ln-(int)strlen("nom")+1,Ln-(int)strlen("nom")+1," ",Lp-(int)strlen("prenom")+1,Lp-(int)strlen("prenom")+1," ");
  55.     }
  56.     fclose(f);
  57.     f=fopen(List, "a");
  58.     if(!f){
  59.         fprintf(stderr, "Impossible d'ouvrire ou creer le fichier.");
  60.     }else{
  61.         for(i=0;i<n;i++){
  62.             fprintf(f,"%s%*.*s %s%*.*s %2.2lf\n",E[i].Nom,(Ln==strlen(E[i].Nom))?0:Ln-(int)strlen(E[i].Nom),(Ln==strlen(E[i].Nom))?0:Ln-(int)strlen(E[i].Nom)," ",E[i].Prenom,(Lp==strlen(E[i].Prenom))?0:Lp-(int)strlen(E[i].Prenom),(Lp==strlen(E[i].Prenom))?0:Lp-(int)strlen(E[i].Prenom)," ",E[i].Note);
  63.         }
  64.     }
  65.     fclose(f);
  66.    
  67.    
  68.     f=fopen(List, "r");
  69.     FLS = fopen(ListSorted, "w");
  70.     if(!FLS){
  71.         fprintf(stderr, "Impossible d'ouvrire ou creer le fichier.");
  72.     }else{
  73.         fprintf(FLS,"Nom%*.*sPrenom%*.*sNote\n",Ln-(int)strlen("nom")+1,Ln-(int)strlen("nom")+1," ",1+Lp-(int)strlen("prenom"),1+Lp-(int)strlen("prenom")," ");
  74.     }
  75.     fclose(FLS);
  76.    
  77.     fscanf(f, "%s %s %s",a.Nom,a.Prenom,a.Nom);
  78.     i=0;
  79.     while (!feof(f)) {
  80.         fscanf(f, "%s %s %lf",Ehelp[i].Nom,Ehelp[i].Prenom,&Ehelp[i].Note);
  81.         i++;
  82.     }
  83.    
  84.     trii(Ehelp, n, a,&pos);
  85.     FLS =fopen(ListSorted, "a");
  86.     for(i=0;i<n;i++){
  87.         fprintf(FLS,"%s%*.*s%s%*.*s%2.2lf\n",Ehelp[i].Nom,1+Ln-(int)strlen(Ehelp[i].Nom),1+Ln-(int)strlen(Ehelp[i].Nom)," ",Ehelp[i].Prenom,1+Lp-(int)strlen(Ehelp[i].Prenom),1+Lp-(int)strlen(Ehelp[i].Prenom)," ",Ehelp[i].Note);
  88.     }
  89.    
  90.     for(i=0;i<n;i++){
  91.         printf("%s\t%s\t%2.2lf\t%d\n",Ehelp[i].Nom,Ehelp[i].Prenom,Ehelp[i].Note,pos);
  92.     }
  93.    
  94.     fclose(FLS);
  95.     //free(Ehelp);
  96.     //Ehelp = (Etd*) malloc(pos*sizeof(Etd));
  97.    
  98.     FLGA = fopen(ListGradeA, "w");
  99.    
  100.     if(!FLGA){
  101.         fprintf(stderr, "Impossible d'ouvrire ou creer le fichier.");
  102.     }else{
  103.         fprintf(FLGA,"Nom%*.*sPrenom%*.*sNote\n",Ln-(int)strlen("nom")+1,Ln-(int)strlen("nom")+1," ",Lp-(int)strlen("prenom")+1,Lp-(int)strlen("prenom")+1," ");
  104.     }
  105.     FLGF = fopen(ListGradeF, "w");
  106.     if(!FLGF){
  107.         fprintf(stderr, "Impossible d'ouvrire ou creer le fichier.");
  108.     }else{
  109.         fprintf(FLGF,"Nom%*.*sPrenom%*.*sNote\n",Ln-(int)strlen("nom")+1,Ln-(int)strlen("nom")+1," ",Lp-(int)strlen("prenom")+1,Lp-(int)strlen("prenom")+1," ");
  110.     }
  111.  
  112.     //fclose(FLGA);
  113.     //FLGA = fopen(ListGradeA, "a");
  114.     for (i=0; i<n; i++) {
  115.         if(Ehelp[i].Note>=10)
  116.             fprintf(FLGA,"%s%*.*s%s%*.*s%2.2lf\n",Ehelp[i].Nom,1+Ln-(int)strlen(a.Nom),1+Ln-(int)strlen(a.Nom)," ",Ehelp[i].Prenom,1+Lp-(int)strlen(a.Prenom),1+Lp-(int)strlen(a.Prenom)," ",Ehelp[i].Note);
  117.         else
  118.             fprintf(FLGF,"%s%*.*s %s%*.*s %2.2lf\n",Ehelp[i].Nom,Ln-(int)strlen(a.Nom),Ln-(int)strlen(a.Nom)," ",Ehelp[i].Prenom,Lp-(int)strlen(a.Prenom),Lp-(int)strlen(a.Prenom)," ",Ehelp[i].Note);
  119.     }
  120.    
  121.     return 0;
  122. }
  123.  
  124. void trii(Etd* Ehelp,int n,Etd a,int* p){
  125.     int i,j;
  126.     for(i=0;i<n;i++){
  127.         if(Ehelp[i].Note>=10.0)
  128.             (*p)++;
  129.         for(j=i+1;j<n;j++){
  130.             if (Ehelp[i].Note<Ehelp[j].Note) {
  131.                 a.Note = Ehelp[i].Note;
  132.                 strcpy(a.Nom, Ehelp[i].Nom);
  133.                 strcpy(a.Prenom, Ehelp[i].Prenom);
  134.                
  135.                 Ehelp[i].Note = Ehelp[j].Note;
  136.                 strcpy(Ehelp[i].Nom, Ehelp[j].Nom);
  137.                 strcpy(Ehelp[i].Prenom, Ehelp[j].Prenom);
  138.                
  139.                 Ehelp[j].Note = a.Note;
  140.                 strcpy(Ehelp[j].Nom, a.Nom);
  141.                 strcpy(Ehelp[j].Prenom, a.Prenom);
  142.             }
  143.         }
  144.     }
  145. }
  146.  
  147.  
  148. void ajouterEtd(int n, Etd* E,int*Ln,int*Lp){
  149.     int i,j;
  150.     for(i=0;i<n;i++){
  151.         printf("Donner le nom d'etudiant N° %d:\n-> ",i+1);
  152.         getchar();
  153.         gets(E[i].Nom);
  154.         printf("Donner le prenom d'etudiant N° %d:\n-> ",i+1);
  155.         getchar();
  156.         gets(E[i].Prenom);
  157.         printf("Donner la note d'etudiant N° %d:\n-> ",i+1);
  158.         scanf("%lf",&E[i].Note);
  159.         *Ln = (int)strlen(E[0].Nom);
  160.         *Lp = (int)strlen(E[0].Prenom);
  161.         for(j=1;j<=i;j++){
  162.             if (*Ln<strlen(E[j].Nom)) {
  163.                 *Ln = (int)strlen(E[j].Nom);
  164.             }
  165.             if (*Lp<strlen(E[j].Prenom)) {
  166.                 *Lp = (int) strlen(E[j].Prenom);
  167.             }
  168.         }
  169.     }
  170. }
RAW Paste Data