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
| //Ci-dessous la structure qui comporte l'ensemble des renseignements fournis par un élève.
typedef struct Eleve Eleve;
struct Eleve
{
char nom[30];
char prenom[30];
int age;
int sexe;
/*
.. */
};
//Ci-dessous la procédure qui permet de recueillir les informations entrées par l'utilisateur
int input(Eleve *eleve, int i)
{
eleve = malloc(NBELEVES * sizeof(*eleve));
int choice = 0;
do{
if(choice == 2)
break;
system("cls");
printf("ETUDIANT %d\n\n", i+1);
printf(" SECTION A \n");
printf("INFORMATIONS PERSONNELLES\n\n");
printf("Nom\n\n");
fflush(stdin);
fgets(eleve[i].nom, sizeof eleve[i].nom, stdin);
search(eleve[i].nom);
printf("\n\n");
printf("Prenom\n\n");
fflush(stdin);
fgets(eleve[i].prenom, sizeof eleve[i].prenom, stdin);
search(eleve[i].prenom);
printf("\n\n");
do{
printf("Age\n\n");
receive(&eleve[i].age);
printf("\n\n");
}while(eleve[i].age < 10 || eleve[i].age > 80);
/*
. */
i++;
do{
printf("\n\nCONTINUER LA SAISIE ====> 1\n");
printf("QUITTER LA FENETRE DE SAISIE ====> 2\n\n");
receive(&choice);
}while(choice != 1 && choice != 2);
}while(choice == 1);
FILE *fichier = fopen("base.bin", "ab");//Après enregistrement jouvre le fichier pour ajouter les nouvelles données.
if(fichier == NULL)
exit(EXIT_FAILURE);
fwrite(eleve, sizeof(*eleve), i, fichier);
fclose(fichier);
system("cls");
return i;
}
//Ci-dessous la procédure qui permet de recueillir les informations contenues dans le fichier externe
void output(Eleve *eleve, int n)
{
int i = 0;
FILE *fichier = fopen("base.bin", "rb");
if(fichier == NULL) exit(EXIT_FAILURE);
fread(eleve, sizeof(*eleve), n, fichier);
fclose(fichier);
}
//Ci-dessous la procédure qui permet d'afficher le profil d'un étudiant figurant dans la base
void display_profiles(Eleve *eleve, int n)
{
int choix = 0, i;
eleve = malloc(NBELEVES * sizeof(*eleve));
if(eleve == NULL) exit(EXIT_FAILURE);
output(eleve, n);
do{
printf("Veuillez saisir l'indice correspondant pour afficher le profil de l'etudiant de votre choix\n\n");
printf("| PRENOMS | NOMS | INDICES |\n\n");
for(i = 0; i < n; i++)
{
printf("| %8s %6s %2d\n", eleve[i].prenom, eleve[i].nom, i+1);
}
printf("\n\n");
receive(&choix);
}while(choix < 1 && choix > n);
/*
.
*/
} Cest à ce niveau que je Remarque que la base nest pas correctement mise à jour. |
Partager