DEVOIR LIBRE : LANGUAGE C Siham ayad CNE :A137005295 année universitaire :2021/
DEVOIR LIBRE : LANGUAGE C Siham ayad CNE :A137005295 année universitaire :2021/2022 Pour 50 étudiants on a : void initialiser(char tableau[200][30]) { tableau[0][0]='\0'; // pour initialiser le tableau } 1 void ajouter_etudiants(char tableau[200][30],char *nom,char *prenom,char *filiere,char *niveau) { int i=0; for(i=0;i<200;i++) { if(tableau[i][0]=='\0') break; } strcpy(tableau[i],nom); strcpy(tableau[i+1],prenom); strcpy(tableau[i+2],filiere); strcpy(tableau[i+3],niveau); tableau[i+4][0]='\0'; } 2 void affichage(char tableau[200][30]) { int i,j,k; for(i=0;i<200;i++) { if(tableau[i][0]=='\0') break; } printf("%15s|%15s|%15s|%15s|\n","nom","Prenom","Filiere","Niveau"); for(k=0;k<i;k) { printf("%15s|%15s|%15s|%15s|\n",tableau[k],tableau[k+1],tableau[k+2],tableau[k+3]); k+=4; } } 3 void affichage_par_niveau(char tableau[200][30],char *niveau) { int i,j,k; for(i=0;i<200;i++) { if(tableau[i][0]=='\0') break; } printf("%15s|%15s|%15s|%15s|\n","nom","Prenom","Filiere","Niveau"); for(k=0;k<i;k) { if(strcmp(tableau[k+3],niveau)==0) { printf("%15s|%15s|%15s|%15s|\n",tableau[k],tableau[k+1],tableau[k+2],tableau[k+3]); } k+=4; } } 4 void affichage_par_filiere(char tableau[200][30],char *filiere) { int i,j,k; for(i=0;i<200;i++) { if(tableau[i][0]=='\0') break; } printf("%15s|%15s|%15s|%15s|\n","nom","Prenom","Filiere","Niveau"); for(k=0;k<i;k) { if(strcmp(tableau[k+2],filiere)==0) { printf("%15s|%15s|%15s|%15s|\n",tableau[k],tableau[k+1],tableau[k+2],tableau[k+3]); } k+=4; } } 5 int comparer(char *A,char *B) { int i; for(i=0;i<strlen(A);i++) { if(A[i]<B[i]) { return 1; break; } if(A[i]>B[i]) { return 0; break; } } } void trier(char tableau[200][30]) { int i,j,k,min; char temp[30]; for(i=0;i<200;i++) { if(tableau[i][0]=='\0') break; } for(j=0;j<i;j) { min=j; for(k=j;k<i;k) { if(comparer(tableau[k],tableau[min])==1) { min=k; } k+=4; } strcpy(temp,tableau[min]); strcpy(tableau[min],tableau[j]); strcpy(tableau[j],temp); //----------------------- strcpy(temp,tableau[min+1]); strcpy(tableau[min+1],tableau[j+1]); strcpy(tableau[j+1],temp); //----------------------- strcpy(temp,tableau[min+2]); strcpy(tableau[min+2],tableau[j+2]); strcpy(tableau[j+2],temp); //----------------------- strcpy(temp,tableau[min+3]); strcpy(tableau[min+3],tableau[j+3]); strcpy(tableau[j+3],temp); j+=4; } } 6 void chercher_par_nom(char tableau[200][30],char *nom) { int i,j,k; for(i=0;i<200;i++) { if(tableau[i][0]=='\0') break; } printf("%15s|%15s|%15s|%15s|\n","nom","Prenom","Filiere","Niveau"); for(k=0;k<i;k) { if(strcmp(tableau[k],nom)==0) { printf("%15s|%15s|%15s|%15s|\n",tableau[k],tableau[k+1],tableau[k+2],tableau[k+3]); } k+=4; } } 7 void corriger(char tableau[200][30],char *nom,char *prenom) { int i,j,k; for(i=0;i<200;i++) { if(tableau[i][0]=='\0') break; } for(k=0;k<i;k) { if(strcmp(tableau[k],nom)==0 && strcmp(tableau[k+1],prenom)==0) { printf("Saisir les nouvelles donnees : NOM|PRENOM|FILIERE|NIVAEU \n"); scanf("%s%s%s%s",tableau[k],tableau[k+1],tableau[k+2],tableau[k+3]); } k+=4; } } 8 void supprimer(char tableau[200][30],char *nom,char *prenom) { int i,j,k,p=0; for(i=0;i<200;i++) { if(tableau[i][0]=='\0') break; } for(k=0;k<i;k) { if((strcmp(tableau[k],nom)==0)) { p=1; for(j=k;j<i-4;j) { strcpy(tableau[j],tableau[j+4]); strcpy(tableau[j+1],tableau[j+5]); strcpy(tableau[j+2],tableau[j+6]); strcpy(tableau[j+3],tableau[j+7]); k+=4; j+=4; } } k+=4; } if(p==1) { tableau[j][0]='\0'; } } 9 void enregestrer(char tableau[200][30]) { int i,j,k; FILE *P=NULL; P=fopen("liste_etudiants.txt","a"); for(i=0;i<200;i++) { if(tableau[i][0]=='\0') break; } fprintf(P,"%15s|%15s|%15s|%15s|\n","nom","Prenom","Filiere","Niveau"); for(k=0;k<i;k) { fprintf(P,"%15s|%15s|%15s|%15s|\n",tableau[k],tableau[k+1],tableau[k+2],tableau[k+3]) ; k+=4; } fclose(P); } 10 int main() { int i=11; char tab[200][30],nom[30],prenom[30],filiere[30],niveau[30]; initialiser(tab); while(i!=10) { printf("1- Ajouter un etudiant\n"); printf("2- Afficher tous les etudiants\n"); printf("3- Afficher les etudiants par niveau\n"); printf("4- Afficher les etudiants par filiere.\n"); printf("5- Trier tous les etudiants par nom\n"); printf("6- Chercher un etudiant par nom\n"); printf("7- Corriger les données d un etudiant\n"); printf("8- Supprimer un etudiant.\n"); printf("9- Enregistrer toutes les donnees des etudiants dans un fichier.\n"); printf("10- Quitter\n"); scanf("%d",&i); switch (i) { case 1: { printf("Saisir les donnees : NOM|PRENOM|FILIERE|NIVEAU \n"); scanf("%s%s%s%s",nom,prenom,filiere,niveau); ajouter_etudiants(tab,nom,prenom,filiere,niveau); break; } case 2: { affichage(tab); break; } case 3: { printf("saisir le niveau: "); scanf("%s",niveau); affichage_par_niveau(tab,niveau); break; } case 4: { printf("saisir le filiere "); scanf("%s",filiere); affichage_par_filiere(tab,filiere); break; } case 5: { trier(tab); break; } case 6: { printf("entre le nom d'etudiant: "); scanf("%s",nom); chercher_par_nom(tab,nom); break; } case 7: { printf("entre le nom et le prenom d'etudiant: "); scanf("%s%s",nom,prenom); corriger(tab,nom,prenom); break; } case 8: { printf("entre le nom et le prenom d'etudiant: "); scanf("%s%s",nom,prenom); supprimer(tab,nom,prenom); break; } case 9: { enregestrer(tab); break; } case 10: { break; } } } } uploads/Litterature/ devoir-libre 2 .pdf
Documents similaires










-
37
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Sep 05, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.0498MB