Celà n'enregistre pas [:(!],grrrr

cs_oceane67 Messages postés 50 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 21 juin 2004 - 5 avril 2004 à 10:57
lpikachu58 Messages postés 351 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 6 mai 2004 - 6 avril 2004 à 15:51
voilà, mon programme n'enregistre toujours pas, je ne sais pas pourquoi, surtout qu'il fait comme si c'etait le cas, je desepesere,
voici mon programme( desole il est un peu long)

#include<conio.h>
#include<stdio.h>
#include
#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 ;
char res;

void main()
{
// 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 || nb>=max)
// { 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)
{ cout<<"\n montant credite?";
cin>>mont;
cout<<"\n etes vous sur du montant?(O/N):";
cin>>res;
}
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].appro=Tfamilles[i].appro+ mont;
cout<<"voulez vous entrer un autre approvisionnement?(O/N):";
cin>> res2;
}while(res2=='o');
enr=0 ;
cout<< Tfamilles[i].appro ;
}

/* Option 3 */
void chequesemis()
{
i=0;
int j;
cout<<"\n lorsque la saisie est terminee ,taper 0 dans le no de bungalow";
do
{ i=0;
cout<<"\n entrer le no de bungalow:";
cin>>i;
if(i!=0)
{
cout<<"\n entrer le no d'ordre";
cin>>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;
i=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;
}
i=i+1;
} while(i!=max);
enr=0;
}

/* Option 5 */
void releve()
{
i=0;
int i,j;
//char res;
//cout<<"\n voulez vous enregistrer vos donnees auparavant?(O/N)";
//cin>>res;
//if(res==0)
//{
// enregistrement();
// }
cout<<"\n entrer le no du bungalow";
cin>>i;
j=0;
while (j==max2)
{
if(Tcheques[i][j]!=0)
{
cout<<"\n no du cheque:"<> nb;
// Tfamilles[nb].nom="";
Tfamilles[nb].appro=0;
Tfamilles[nb].nbpers=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;

}
}

6 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
5 avril 2004 à 12:38
tu ouvre 2 fois de suite le fichier "chèques.dat" (à la 2ème y'a surement un pb de partage.)
0
cs_oceane67 Messages postés 50 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 21 juin 2004
5 avril 2004 à 13:08
non dans le fichiers famille ça n'enregistre pas non plus, le probleme ne vient pas de là( mais c'est vrai je l'ai mis deux fois, je l'ai modifie, mercioceane
0
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
5 avril 2004 à 14:03
Il reste toujours un Tcheques[i,j]==0; dans initialiser.

Tes indices commencent parfois à 0 parfois à 1.
Ils devraient tous commencer à 0.

Tu ouvres (ouvrais) deux fois le fichier avec .dat et .datt

Mais à part ça, ça enregistre bien des choses dans le fichier.

pourquoi utiliser conio.h pour getch alors que tu as un menu ?

Quel compilateur utilises-tu pour ne pas pouvoir
mettre #include au lieu de #include

Tu devrais éviter d'utiliser du C++ (cout, cin ),
et des formes plus C ( fopen, fprintf, ... )
0
lpikachu58 Messages postés 351 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 6 mai 2004 2
6 avril 2004 à 15:04
dis si tu utilisais les CFile les CString serait beaucoup plus simple

be linux
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_oceane67 Messages postés 50 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 21 juin 2004
6 avril 2004 à 15:16
je ne connais pas. je ne sais pas m'en servir et ne sait en quoi ça consiste.
oceane
0
lpikachu58 Messages postés 351 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 6 mai 2004 2
6 avril 2004 à 15:51
cherche
CString machaine = "un essai"
CFile monfichier.open("c:\\monfichier.dat",CFile::modeCreate|CFile::modeRead);
monfichier.Write(machaine,machaine.getlength());

be linux
0
Rejoignez-nous