#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<conio.h>
#define MAX 10
typedef struct {
char nom[MAX] ;
char prenom[MAX] ;
char age[MAX] ;
} persone ;
void EchangerNom( persone *pX, persone *pY ) {
persone r = *pX;
*pX = *pY;
*pY = r; //Tri par nom
}
void triNom(persone s[], int n){
int i,j;
int imin; /* index of minimum */
for (i=0; i<n; i++) {
imin=i;
for (j=i+1; j<n; j++) if (strcmp(s[j].nom,s[imin].nom)<0) imin=j;
EchangerNom(&s[i],&s[imin]);
}
}
void EchangerAge( persone *pX, persone *pY ) {
persone r = *pX;
*pX = *pY; //tri Age
*pY = r;
}
void triAge(persone s[], int n){
int i,j;
int imin;
for (i=0; i<n; i++) {
imin=i;
for (j=i+1; j<n; j++) if (strcmp(s[j].age,s[imin].age) < 0 ) imin=j;
EchangerAge(&s[i],&s[imin]);
}
}
main(){
FILE *trinom , *triage ;
char fich1[21] , fich2[21] ;
persone *t ; // tableau de structure qui contient age nom et prenom
int cmtr ; // compteur =)
int n ;
int choix;
int age ;
do
{
system("cls");
printf("1--------entrez le nom prenom et l'age de persone----\n");
printf("2------------trie par nom -----________________----- \n");
printf("2------------trie par age----_----______________---- \n");
printf("4------------Sortir-----------------------------------\n");
printf(" Votre choix(1,2,3,4)\n");
scanf("%d",&choix) ;
switch(choix)
{ case 1 :
printf("le nom du fichier la ou les noms et la 1ere lettre du prenom en majuscul :");
scanf("%20s",fich1) ;
trinom = fopen(fich1,"w");
if (trinom != NULL )
printf("votre fichier est cree avec succes !\n");
printf("---------------------------------------------------------------\n");
printf("le nom du fichier là ou les information seront trie par age ? :");
scanf("%s",fich2);
triage = fopen(fich2,"w");
if (triage != NULL )
printf("fichier de tri age est cree avec succes !\n");
printf("-----------------------------------------------------------------\n");
printf("combien des utilisateurs voulez vous stocker ? :");
scanf("%d",&n);
t=(persone*)malloc(n*sizeof(persone));
for(cmtr=0 ; cmtr < n ; cmtr ++){
printf("Entrez le nom et le prenom et l'age de l'utilisateur numero %d :\n",cmtr+1);
scanf("%s %s %d",&t[cmtr].nom,&t[cmtr].prenom,&t[cmtr].age) ;
case 2:
triNom(t,n);
for(cmtr=0; cmtr<n ; cmtr++){
fprintf(trinom,"%d - ",cmtr+1);
fprintf(trinom," le nom est : ");
fprintf(trinom,t[cmtr].nom);
fprintf(trinom," - ");
fprintf(trinom,"le prenom est : ");
fprintf(trinom,t[cmtr].prenom);
fprintf(trinom," - ");
fprintf(trinom,"l'age est : ");
fprintf(trinom, t[cmtr].age ) ;
fprintf(trinom,"\n");
}
case 3:
triAge(t,n);
for(cmtr=0; cmtr<n ; cmtr++){
fprintf(triage,"%d - ",cmtr+1);
fprintf(triage," le nom est : ");
fprintf(triage,t[cmtr].nom);
fprintf(triage," - ");
fprintf(triage,"le prenom est : ");
fprintf(triage,t[cmtr].prenom);
fprintf(triage," - ");
fprintf(triage,"l'age est : ");
fprintf(triage, t[cmtr].age ) ;
fprintf(triage,"\n");
}
printf("------------------------------------------------\n");
for(cmtr = 0 ; cmtr < n ; cmtr++){
printf("%s - %s - %s\n",t[cmtr].nom,t[cmtr].prenom,t[cmtr].age);
}
case 4:
printf(" Bye Bye \n");
while(choix!=4);
}
}