bonjour, c'est encore moi, je n'arrive decidement pas a trouver pourquoi mon programme n'enregistre pas dans les fichiers, c'est la grosse panique, desole mon programme est long, mais j'ai vraiment besoin d'aide merci.
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
#include<string.h>
#define max 19
#define max2 51
/* Prototypes */
void nouvellesfamilles();
void approvisionnement();
void chequesemis();
void solde();
void releve();
void chargement();
void enregistrement();
void depart();
void initialiser();
/* Nom des fichiers */
FILE * familles;
FILE * cheques;
/* Variables */
typedef struct
{
int no;
char nom[20];
int nbpers;
int appro;
}Tenrfamilles;
Tenrfamilles Tfamilles[20];
int Tcheques[max2][max];
int bungalow[20];
int i,enr,j ;
char res;
void main()
{ j=0;
// chargement();
initialiser();
int choix;
do
{
cout<<"\n Gestion des comptes cheques club.";
cout<<"\n 1- saisir la liste des nouvelles familles.";
cout<<"\n 2- saisir un approvisionnement de compte." ;
cout<<"\n 3- Saisir les cheques emis de la journee.";
cout<<"\n 4- lister les familles dont le solde est negatif." ;
cout<<"\n 5- lister le releve de compte d'une famille" ;
cout<<"\n 6- sauvegarder les donnees sur le disque.";
cout<<"\n 7- enregistrer les departs";
cout<<"\n 0 quitter le programme." ;
cout<<"\n votre choix ?";
cin>>choix;
switch(choix)
{case 1:nouvellesfamilles();
break;
case 2:approvisionnement();
break;
case 3:chequesemis();
break;
case 4:solde();
break;
case 5:releve();
break;
case 6:enregistrement();
break;
case 7: depart();
break;
}
} while(choix!=0);
if (enr==0)
{
cout<<"\n vous n'avez pas enregistre vos modifications,souhaitez vous le faire?(O/N)";
cin>>res;
if(res==0)
{
enregistrement();
}
cout<<"\n au revoir";
}
getch();
}
/* option 1*/
void nouvellesfamilles()
{
int nb;
char rep;
rep='o';
nb=1;
i=0;
while( rep=='o')
{
/** on verifie que le bungalow est vide **/
while(i==1)
{ cout<<" rentre dans la boucle";
nb++;
if(Tfamilles[nb].nom == " ")
{
i=1;
}
}
if(nb>=max)
{
cout<<"\n le village vacances est complet, vous ne pouvez plus rajouter de famille.";
cout<<"\n ";
rep='n';
}
else
{
cout<< "\n bungalow no "<< nb;
cout<<"\n entrer le nom:";
cin>>Tfamilles[nb].nom;
cout<<"\n entrer le nombre de personnes:";
cin>>Tfamilles[nb].nbpers;
nb=nb++;
cout<<"\n voulez vous entrer une autre famille?(o/n)" ;
cin>> rep;
}
}
enr=0 ;
}
/* Option 2*/
void approvisionnement()
{int mont,i,r;
char rep[20];
char res,res2;
do
{
i=1;
do
{
cout<<"\n entrer le nom:";
cin>>rep;
do
{ if (strcmp(Tfamilles[i].nom, rep)==0)
{
do
{
cout<<" bungalow numero "<<i;
cout<<"\n montant credite?";
cin>>mont;
cout<<"\n etes vous sur du montant?(O/N):";
cin>>res;
}
while ( res=='n');
}
else
{ cout<< "\n ce nom ne correspond a aucun bungalow." ;
}
i=i+1;
}
while(strcmp(Tfamilles[i].nom, rep)==0 && i<=max);
}
while (strcmp(Tfamilles[i].nom, rep)==1);
Tfamilles[i-1].appro=Tfamilles[i-1].appro+ mont;
cout<<"voulez vous entrer un autre approvisionnement?(O/N):";
cin>> res2;
}while(res2=='o');
enr=0 ;
cout<< Tfamilles[i-1].appro ;
}
/* Option 3 */
void chequesemis()
{
i=1;
j=0;
cout<<Tfamilles[i].appro ;
cout<<"\n lorsque la saisie est terminee ,taper 0 dans le no de bungalow";
do
{
cout<<"\n entrer le no de bungalow:";
cin>>i;
// verification des cheques existants//
do
{
j++;
cout<<"\n ordre numéro:"<<j;
cout<<"\n sommes: "<<Tcheques[i][j];
}
while(Tcheques[i][j]!=0);
if(i!=0)
{
cout<<"\n cheque no: ";
cout<<j;
cout<<"\n entrer le montant du cheque:";
cin>>Tcheques[i][j];
Tfamilles[i].appro= Tfamilles[i].appro -Tcheques[i][j];
cout<< Tfamilles[i].appro ;
}
}
while ( i!=0);
enr=0;
}
/* Option 4 */
void solde()
{
int i,pos;
i=1;
pos=1;
do
{
if(Tfamilles[i].appro<0)
{
cout<<"\n bungalow no"<<Tfamilles[i].no;
cout<<"\n nom:"<<Tfamilles[i].nom;
cout<<"\n approvisionnement:"<<Tfamilles[i].appro;
pos=0;
}
i=i+1;
} while(i!=max);
enr=0;
if(pos==1)
{
cout<<"\n Aucun bingalow n'a le solde negatif";
}
}
/* Option 5 */
void releve()
{
i=0;
int i,j;
cout<<"\n entrer le no du bungalow";
cin>>i;
j=0;
while (j<=max2)
{
if(Tcheques[i][j]!=0)
{
cout<<"\n no du cheque:"<<i<<"\t";
cout<<" \n montant du cheque:"<<Tcheques[i][j];
j=j+1;
}
else
{
cout<<"\n il n'y a pas ou plus de cheque emis";
j=max2;
}
}
enr=0;
}
/* Option 6:Enregistrements */
void enregistrement()
{
int i,j;
for(i=1;i<=max;i=i+1)
{
cout<<Tfamilles[i].nom;
cout<<Tfamilles[i].nbpers;
cout<<Tfamilles[i].appro;
}
if( ( familles=fopen("familles.dat","w"))==NULL)
{
perror("le fichier familles n'existent pas");
}
for(i=0;i<=max;i=i+1)
{
fprintf(familles,"%d %s %d %d ",i,Tfamilles[i].nom,Tfamilles[i].nbpers,Tfamilles[i].appro);
}
fclose(familles);
if( ( familles=fopen("cheques.dat","w"))==NULL)
{
perror("le fichier cheques n'existe pas");
}
for(i=0;i<=max2;i=i+1)
{for (j=0;j<=max2;j=j+1)
{fprintf(cheques,"%d ",Tcheques[i][j]);
}
}
fflush(familles);
cout<<"enregistrement fini";
enr=1;
fclose(cheques);
}
/* Options 7 */
void depart()
{ int nb,i,j;
cout<<"\n entrez le nom du bungalow desormais disponible:";
cin>> nb;
// Tfamilles[nb].nom=="";
Tfamilles[nb].appro=0;
Tfamilles[nb].nbpers=0;
for(i=0;i<=max2;i=i+1)
{
for (j=0;j<=max2;j=j+1)
{
Tcheques[i][j]=0;
}
}
}
/* Chargement */
void chargement()
{
int i,j;
i=0;
familles=fopen("familles.dat","r");
while (!feof (familles))
{
fscanf(familles,"%d %s %d %d ",&Tfamilles[i].no,&Tfamilles[i].nom,&Tfamilles[i].nbpers,&Tfamilles[i].appro);
i=i+1;
}
fclose(familles);
cheques=fopen("cheques.dat","r");
while (!feof(cheques))
{
for(i=1;i<=max2;i=i+1)
{for (j=1;j<=max2;j=j+1)
{fscanf(cheques,"%d ",&Tcheques[i][j]);
}
}
}
fclose(cheques);
}
// initialiser//
void initialiser()
{ int i,j;
for(i=0;i<=max2;i=i+1)
{
for (j=0;j<=max2;j=j+1)
{
Tcheques[i][j]=0;
}
}
for(i=1;i<=max;i=i+1)
{
Tfamilles[i].no=i;
//Tfamilles[i].nom=" ";
Tfamilles[i].nbpers=0;
Tfamilles[i].appro=0;
}
}