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
|
main()
{
int i,n; // compteur et nombre à enregistrer
char nomfich[21]; // nom de fichier
FILE * sortie; // flux de manipulation de fichier
cel tete,cour; // tete et cour pour la creation de la liste chaine
char car;
struct def bloc; // variable permettant de boucler le programme
tete=NULL; //deb comme debut
cour=NULL;
i=0;
printf("\nDonnez le nom du fichier a creer: ");
scanf("%s",nomfich); //gets(nomfich);
essai:printf("\nEntrer le nombre de personne que vous voulez enregistrer: ");
scanf("%d",&n);
if(n<=0){
printf("\nVous ne pouvez enregistrer vos donnees!");
goto essai;
}
else
{
sortie=fopen(nomfich,"w"); //ecriture dans le fichier
while (i<n)
{
/* le pb est la malgré le gets je ne récupère pas le nom. il 2*gets !!
voir fichier joins */
// gets(bloc.nom);
printf("\n nom : ");
gets(bloc.nom);
printf("prenom : ");
gets(bloc.prenom);
printf(" age : ");
scanf("%d",&bloc.age);
printf(" note physique : ");
scanf("%f",&bloc.ph);
printf(" note mathematique : ");
scanf("%f",&bloc.ma);
printf(" note chimie : ");
scanf("%f",&bloc.ch);
fwrite(&bloc,sizeof(bloc),1,sortie);
i++;
}
fclose(sortie);
}
printf("\n\nChoisir le mode d'affichage que vous desirez voir!!!");
rep:printf("\n1- pour imprimer les donnees du fichier");
printf("\n2- pour imprimer les donnees de la liste selon une insertion en tete");
printf("\n3- pour imprimer les donnees de la liste selon une insertion en queue\n\n");
scanf("%d",&i);
if (i==1)
{
lecture(nomfich,&n);
//goto fin;
}
else if (i==2)
{
ajoutete(nomfich,&tete,&n);
// goto fin;
}else if (i ==3)
{
ajoutqueue(nomfich,&tete,&n);
//goto fin;
}else
{
printf("Erreur de saisir du choix");
goto rep;
}
cour=tete;
while(cour!=NULL)
{
printf("\n\nnom : %s",cour->nom);
printf("\nprenom : %s",cour->prenom);
printf("\nage : %d",cour->age);
printf("\nmoyenne: %.2f",cour->moy);
cour=cour->svt;
}
free(cour);
free(tete);
fin: printf("\n\nDesirez-vous reprendre l'execution du programme? o/n\n");
fin2: printf("\n\nTaper une touche pour quitter le programme. . . ");
getch();
} |
Partager