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 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
| #include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
typedef struct eleve
{
int numel;
char nom[50];//50 caracteres maximun pour le nom
int age;
// float note;
}
eleve ;
typedef struct matiere
{
int nummat;
char nommat[15];
int coeff;
}
matiere;
typedef struct note
{
int nummel;
char nomel[50];
char nommat[15];
float noteel;
float moyenne;
}
note;
/*******************************************************************************/
void nouvel_eleve (FILE *fichier, char *nom_fichier)
{
eleve student;
nom_fichier="eleve.dat";
fichier = fopen(nom_fichier,"a+");
printf("\n saisie eleve");
printf("\nNOM: ");
scanf("%s",&student.nom);
fwrite(&student,sizeof(eleve),1,fichier);
printf("\nLeleve %s ",student.nom);
printf(" a ete bien enregistre \n");
printf("Appuyer pour sortir");
fclose(fichier);
getch();
}
/***********************************************************************/
void saisi_mat(FILE *fichier2,char *nom2_fichier2)
{
matiere mat;
nom2_fichier2="matiere.dat";
fichier2=fopen(nom2_fichier2,"a+");
printf("Saisisser les matieres\n");
scanf("%s",&mat.nommat);
fwrite(&mat,sizeof(matiere),1,fichier2);
printf("Appuyer pour sortir");
fclose(fichier2);
getch();
}
/**********************************************************************/
void lire_eleve(FILE *fichier,char *nom_fichier)
{
eleve student;
matiere mat;
int i=1;
//nom2_fichier2="matiere.dat";
//fichier2=fopen(nom2_fichier2,"a+");
nom_fichier="eleve.dat";
fichier=fopen(nom_fichier,"a+");
printf("Voici le liste des eleves enregistres\n");
while(fread(&student,sizeof(eleve),1,fichier)!=0)// retourne un entier different de 0 donc le fichier contient quelelque choz
{
printf("eleve no %d \n",i);
i++;
printf(" %s ",student.nom);
//fwrite(&student,sizeof(eleve),1,fichier);
}
fclose(fichier);
getch();
}
/************************************************************************************/
void saisi_note(FILE *fichier,char *nom_fichier,FILE *fichier2,char *nom2_fichier2,FILE *fichier3,char *nom3_fichier3)
{
eleve student;
matiere mat;
note not;
nom_fichier="eleve.dat";
nom2_fichier2="matiere.dat";
nom3_fichier3="note.dat";
fichier=fopen(nom_fichier,"r");
fichier2=fopen(nom2_fichier2,"r");
fichier3=fopen(nom3_fichier3,"a+");
//if(fread(&student,sizeof(eleve),1,fichier) && fread(&mat,sizeof(matiere),1,fichier2)!=0)// test si les fichiers ne sont pas vides
//{
while(fread(&student,sizeof(eleve),1,fichier)&& fread(&mat,sizeof(matiere),1,fichier2)&& fread(¬,sizeof(note),1,fichier3)!=0)// meme test que le if mais en fesant une boucle
{
printf("eleve :");
//printf("%d",&student.numel);
printf("%s",&student.nom);
printf("%s",&mat.nommat);
scanf("%d",¬.noteel);
printf("\n");
fwrite(¬,sizeof(note),1,fichier3);// ecriture dans le fichiers notes des infos saisies
}
printf("Enregistrement reussi!!!\n");
fclose(fichier);
fclose(fichier2);
fclose(fichier3);
//}else{ // si le fichier est vide alors...
// printf("Un des fichiers Eleve ou Matiere est vide veuiller le renseigner dabord merki!!!");
// }
// fwrite(&mat,sizeof(matiere),1,fichier2);
printf("Appuyer sur une touche pour retourner au menu.");
getch();
}
/**************************************************************************************/
int main()
{
FILE *fichier, *fichier2,*fichier3;
char nom[10],nom2[10],nom3[10];/* nom du fichier */
char choix;
do
{
system("cls");
printf("CREATION DUn FICHIER ELEVE ---> 1\n");
printf("LECTURE DU FICHIER ELEVE ---> 2\n");
printf("Saisie note ELEVE ---> 3\n");
printf("Saisie matiere -->4\n");
printf("SORTIE CONSOLE ---> S\n\n");
printf("VOTRE CHOIX: ");
choix = (char)getchar();
switch(choix)
{
case '1':nouvel_eleve(fichier,nom);
break;
case '2':lire_eleve(fichier,nom);
break;
case '3':saisi_note(fichier,nom,fichier2,nom2,fichier3,nom3);
break;
case'4':saisi_mat(fichier,nom);
}
}
while ((choix!='S') && (choix!='s'));
printf("Appuyer pour quitter l'espace de travail");
getch();
} |
Partager