Les fichiers en C à l'aide !!!!

Rose02 -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
j'ai écrit un code qui permet d'ajouter , de modifier, de supprimer, de rechercher et d'afficher les salariés d'une sociétés ... quant à l'ajout et la recherche ça marche mais pr le reste non plus ... est ce que quelqu'un peut me donner un ti pe de son temps pour me le corriger?? ... c'est très urgent !!!!
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,

Commence déjà par poster ton code, comme ça, on pourra t'aider plus facilement.
Et n'oublie pas d'inclure ton code dans la balise obtenue en cliquant sur le bouton de conservation de la mise en forme (à droite de souligner)
0
Rose02
 
bon voici le code :
 # include <conio.h>
# include <stdio.h>
# include <string.h>
/************** *  TYPE STRUCTURE ********************/
struct commercant
{
 char nom[20];
 char prenom[20];
 int matricule;
 float salaireFix;
 float slrNet;
 float ca;
}commerc,TabCom[10] ;
/**************** VARIABLES GLOBALES *******************/
int i,nbrCommercant;
FILE* f;
float ca,Sfix;
/**************** PROTOTYPES ***************************/
int menu();
void saisie();
void enregistrerCommercant(struct commercant Tabcom[10]);
float salaireNet(float Sfix,float ca);
void ajoutCommercant();
int rechercher();
void rechercheCommerc();
void modifierCommercant(struct commercant commerc);
void afficherCommercant();
void supprimer_commercant();
void enregistrerCommercant(struct commercant Tabcom[10]);
void tri_commercant();
void lire();
void enregComercant();
/****************   MAIN    ***************************/
int main()
{
int m;
do{
m=menu();
switch(m)
{
case 1 : ajoutCommercant();break;
case 2 : modifierCommercant(commerc);break;
case 3 : supprimer_commercant();break;
case 4 : rechercheCommerc();break;
case 5 : tri_commercant();
         afficherCommercant();break;
}
}while(m!=6);
}
/**************** MENU *******************************/
int menu()
{
int choix ;
       do{
           printf("~~~~~~~~~~ MENU ~~~~~~~~~~\n");
           printf(" 1 : Ajouter un employe \n");
           printf(" 2 : Modifier les informations d'un employe \n");
           printf(" 3 : Supprimer les informations d'un employe  \n");
           printf(" 4 : Rechercher un employe \n");
           printf(" 5 : Afficher les employes\n");
           printf(" 6 : Quitter\n");
           printf( "******************************************\n") ;
           printf( "Saisir votre choix  \n ");
           fflush;
           scanf("%d",&choix);
           } while ((choix<1) || (choix >6));
     return (choix);
}
/**************** SAISIE ******************************/
void saisie()
{char rep;
    printf("saisir le nom du commercant\n");
    scanf("%s",TabCom[nbrCommercant].nom);
    printf("saisir le prenom du commercant\n");
    scanf("%s",TabCom[nbrCommercant].prenom);
    printf("saisir le matricule du commercant\n");
    scanf("%d",&TabCom[nbrCommercant].matricule);
    printf("saisir le chiffre d'affaire du commercant\n");
    scanf("%f",&TabCom[nbrCommercant].ca);
    printf("saisir le salaire fixe du commercant\n");
    scanf("%f",&TabCom[nbrCommercant].salaireFix);
    TabCom[nbrCommercant].slrNet=salaireNet(TabCom[nbrCommercant].salaireFix,TabCom[nbrCommercant].ca);
    nbrCommercant++;
}
/**************** ENREGISTRER *************************/
void enregistrerCommercant()
{
int n;
f=fopen("c:\\Commercant.txt","a");
if (f != NULL)
{
n=sizeof(commerc);
fwrite(&TabCom,n,nbrCommercant ,f);
fclose(f);
}
else
{
   printf ("problemme d'ouverture du fichier");
}
}
/***************** SALAIRE NET****************/
float salaireNet(float Sfix,float ca)
{
float prime,Snet;
if(ca<50000)
{
prime=(ca*0.03);
}
else
{
prime=(ca*0.1);
}
Snet=(Sfix+prime);
return(Snet);
}
/*********************** AJOUT ***********************/
 void ajoutCommercant()
{
    char rep;
   struct commercant TabCom[10];
 do
 {
   saisie();
   printf("voulez vous ajouter un autre commercant? o ou n  \n");
   getchar();
   scanf("%c",&rep);
 } while(rep!='n');
   enregistrerCommercant();
}
/********************* LIRE*********************/
void lire()
{  int c;
nbrCommercant=0;
f=fopen("c:\\commercant.txt","r");

 c=fread(&TabCom[nbrCommercant],sizeof(TabCom),1,f);
 while (c!=0)
 {  nbrCommercant++;
  c=fread(&TabCom[nbrCommercant],sizeof(TabCom),1,f);
 }
 fclose(f);
}
/******************* Rechercher *******************/
int rechercher()
{
int i=0,trouve=0;
char name[20];
fflush;
printf("saisir le nom du commercant que vous recherchez ...\n");
scanf("%s",name);
 do
  {
    if (strcmp(TabCom[i].nom,name)==0)
     {
      trouve=1;
     }
  i++;
  } while((i<nbrCommercant)&&(trouve==0));
  i=i-1;
  return(trouve);
}
/******************* RECHERCHE COMMERçANT **********/
void rechercheCommerc()
{
lire();
if(rechercher()==1)
{

   printf("Les information du commercant sont :\n");
      printf("          Nom     : %s\n",TabCom[i].nom);
      printf("          Prenom  : %s\n",TabCom[i].prenom);
      printf("          Salaire fix : %f\n",TabCom[i].salaireFix);
      printf("          Salaire net : %f\n",TabCom[i].slrNet);
      printf("          Matricule : %d\n",TabCom[i].matricule);
      printf("          Chiffre d'affaire :%f\n",TabCom[i].ca);
}
else
   {
   printf( "Desole: Employe introuvable!!!!!\n\n");
   }
}
/******************* Enregistrer modifications ************/
void enregComercant()
{
f=fopen("c:commercant.txt","w");
fwrite(&TabCom,sizeof(commercant),nbrCommercant,f);
fclose(f);
}
/******************* MODIFIER *********************/
void modifierCommercant(struct commercant commerc)
{
int choix;
char rep;
    if(rechercher()==1)
    {
     do
     {
     printf("Donner le champs à modifier :\n 1:NOM \n 2:PRENOM \n 3:SALAIRE FIXE \n 4:MATRICULE\n 5:Chiffre d'affaire\n");
     scanf("%d",choix);
        switch(choix)
        {
        case 1:printf("saisir le nom\n");
               scanf("%s",TabCom[i].nom);break;
        case 2:printf("saisir le prenom\n");
               scanf("%s",TabCom[i].prenom);break;
        case 3:printf("saisir le salaire fixe du commercant\n");
               scanf("%f",&TabCom[i].salaireFix);
              TabCom[nbrCommercant].slrNet=salaireNet(TabCom[nbrCommercant].salaireFix,TabCom[nbrCommercant].ca);break;
        case 4:printf("saisir le matricule\n");
               scanf("%d",&TabCom[i].matricule);break;
        case 5:printf("saisir le chiffre d'affaire\n");
               scanf("%f",&TabCom[i].ca);
               TabCom[nbrCommercant].slrNet=salaireNet(TabCom[nbrCommercant].salaireFix,TabCom[nbrCommercant].ca);break;
        }
     printf("voulez vous modifier un autre champs? o/n \n");
     fflush;
     scanf("%c",&rep);
     }
     while(rep!='n');
 enregComercant();
 }
 else{printf(" desole : commercant introuvable !!!\n");}
}

/******************* SUPPRIMER *********************/
void supprimer_commercant()
{
int w;
lire();
if(rechercher()==1)
{
 for(w=i;w<i;w++)
 {
 TabCom[w]=TabCom[(w+1)];
 }
 enregComercant();
 printf("l'employe a ete supprime avec succes !!!\n");
}
else{printf("desolee : commercant introuvable !!!\n");}
}
/******************* TRI *********************/
void tri_commercant()
{int compteur;
struct commercant trans;
 lire();
 do
 {
 compteur=0;
 for(i=0;i<nbrCommercant;i++)
 {
 if(TabCom[i].slrNet<TabCom[i+1].slrNet)
 {
 trans=TabCom[i];
 TabCom[i]=TabCom[i+1];
 TabCom[i+1]=trans;
 compteur++;
 }
 }
 }while(compteur!=0);
 enregComercant();
 }

 /************ AFFICHAGE COMMERCANT ***********************/
 void afficherCommercant()
 {int i=0;
 lire();
do
{
      printf(" Commercant N° :%d\n",(i+1));
      printf("          Nom     : %s\n",TabCom[i].nom);
      printf("          Prenom  : %s\n",TabCom[i].prenom);
      printf("          Salaire fix : %f\n",TabCom[i].salaireFix);
      printf("          Salaire net : %f\n",TabCom[i].slrNet);
      printf("          Matricule : %d\n",TabCom[i].matricule);
      printf("          Chiffre d'affaire :%f\n",TabCom[i].ca);
i++;
}
while(TabCom[i].slrNet!=0);
}
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Tu dis que ça ne marche pas. Qu'est ce qui ne marche pas ? Ça ne compile pas ? Décris précisemment ce qui va pas.
0