1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
   | #include<stdio.h>
#include<conio.h>
typedef struct date {
        int jour;
        int mois;
        int an;
        } Date;
typedef struct etudiant {
        int mat;
        char nom[20];
        char prenom[20];
        Date date_naiss;
        float moy;
        } Etudiant;
 
Date saisie_date() {
     Date d;
     printf("Donner le jour :");
     scanf("%d",&d.jour);
     printf("donner le mois :");
     scanf("%d",&d.mois);
     printf("Donner l annnee :");
     scanf("%d",&d.an);
     return(d);
     }
Etudiant saisie_etudiant(){
         Etudiant e;
         printf("le nom :");
         gets(e.nom);
         printf("le prenom :");
         gets(e.prenom);
         printf("le matricule :");
         scanf("%d",&e.mat);
         e.date_naiss=saisie_date();
         printf("la moyenne :");
         scanf("%f",&e.moy);
         return(e);
         }
void affiche_etudiant(Etudiant e){
     printf("le matricule est : %d\t",e.mat);
     printf("\tle nom est : %s\t",e.nom);
     printf("\tle prenom est : %s\t",e.prenom);
     printf("\tla date de naissance est : %d/%d/%d\t",e.date_naiss.jour,e.date_naiss.mois,e.date_naiss.an);
     printf("\tla moyenne : %0.02f\t",e.moy);
     }
typedef struct classe {
       int dim;
       Etudiant T[1000];
       }classe;
classe saisie_plusieurs(){
       classe c ;
        int i;
        for(i=0;i<c.dim;i++)
        {c.T[i]=saisie_etudiant();}
        return c;
        }
 
void affiche_tous(classe c){
     int i;
     for(i=0;i<c.dim;i++)
     {printf("Matricule : %d",c.T[i].mat);
     printf("Nom : %s",c.T[i].nom);
     printf("Prenom : %s",c.T[i].prenom);
     printf("Moyenne : %f",c.T[i].moy);
     printf("Date de naissance : %d/%d/%d",c.T[i].date_naiss.jour,c.T[i].date_naiss.mois,c.T[i].date_naiss.an);
     }}
void affiche_admis(classe c){
     int i;
     for(i=0;i<c.dim;i++)
     {if(c.T[i].moy>=10)
     affiche_tous(c);
     } }
void rech_matricule(classe c){
     int i;
     for(i=0;i<c.dim;i++)
     printf("entrer le matricule recherché :");
     scanf("%d",&c.T[i].mat);
     affiche_tous(c);
     }
classe affiche_major(void){
     classe c;
     int i;
     float m;
     m=0;
     for(i=0;i<c.dim;i++)
 
     m=c.T[i].moy;
 
 
int compare_date(Date x,y){
    if(x.an>y.an) return 1;
    else if(x.an<y.an) return 2;
    else if(x.mois>y.mois) return 1;
    else if(x.mois<y.mois) return 2;
    else if(x.jour>y.jour) return 1;
    else if(x.jour<y.jour) return 2;
    else return 0;
}
void tri_table(classe *te){
     int n,k; Etudiant aux;
     n=te;
     for(i=O;i<=n;i++){
                       k=i;
                       for(j=i+1;j<=n-1;j++)
                       if(compare_date(Etudiant[k].date_naiss,Etudiant[j].date_naiss)==1)k=j;
                       }
     aux=Etudiant[i];
     Etudiant[i]=Etudiant[k];
     Etudiant[k]=aux;
}
main(){
       int i;
       switch(i)
       case 1 : printf("Saisir un nouveu etudiant");   
       case 2 : printf("Afficher tous les etudiants");
       case 3 : printf("Afficher admis");
       case 4 : printf("Recherche par matricule");
       case 5 : printf("Recherche par nom");
       case 6 : printf("Afficher le nom et le prenom du major");
       case 7 : printf("Trier les etudiants par leur date de naissance"); 
       }
       } | 
Partager