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
|
#include<stdio.h>
#include<string.h>
struct etud
{
char nom[10];
char pren[10];
int moy;
};
int lire_moyenne (char const *fname, char const *n, char const *p)
{
int moy = -1;
FILE *k = fopen (fname, "r");
if (k != NULL)
{
struct etud e;
while (fread (&e, sizeof e, 1, k) == 1)
{
if (strcmp (e.nom, n) == 0 && strcmp (e.pren, p) == 0)
{
moy = e.moy;
break;
}
}
fclose (k);
}
return moy;
}
static void ajout (char const *fname)
{
FILE *p = fopen (fname, "a");
if (p != NULL)
{
struct etud e;
printf ("donnez le nom et le prenom et moyenne:\n");
scanf ("%s%s%d", e.nom, e.pren, &e.moy);
fwrite (&e, sizeof e, 1, p);
fclose (p);
}
}
static void consultation (char const *fname)
{
char nom[10], pre[10];
int m;
printf ("donnez le nom et le prenom de l etudiant a consulter :\n");
scanf ("%s%s", nom, pre);
m = lire_moyenne (fname, nom, pre);
if (m != -1)
{
printf ("la moyenne de %s %s est %d\n", nom, pre, m);
}
else
{
printf ("%s %s est inconnu\n", nom, pre);
}
}
int main (void)
{
int quitter = 0;
while (!quitter)
{
static char const *fname = "etudiant.dat";
int ch;
printf ("1 - Ajouter un etudiant\n"
"2 - Consulter la moyenne\n"
"3 - Quitter\n");
scanf ("%d", &ch);
getchar ();
switch (ch)
{
case 1:
ajout (fname);
break;
case 2:
consultation (fname);
break;
case 3:
quitter = 1;
break;
}
}
return 0;
} |
Partager