pouvez vous corriger mon programme

pouvez vous corriger mon programme - Sciences - Discussions

Marsh Posté le 14-06-2013 à 23:26:43    

//ce programme doit:
//1-cree 2 file "dept.dta"  "emp.dta" le premier contient des listes des departements l'autre des listes d'employers
//empl est une structure qui definit un employer qui a
//nbr (nombre ou id)//nom//genre(male ou femelle)//numeros de departement//post//directeur// salaire
//depart est une structure qui definit un departement qui a un nombre et un nom
//2-ecrire une fonction trouvdep qui prend comme paramatre le numeros d'un departement est qui retourne ses //informations lorsqu'il est trouve,sinon cette fonction retourne un numeros de departement negatif
//3-ecrire une fonction trouvemp qui prend comme paramatre le numeros d'un employer est qui retourne ses //informations lorsqu'il est trouve,sinon cette fonction retourne un numeros d'employer negatif
//4-ecrire une fonction minmax qui prend le numeros d'un departement comme parametre et qui retourne le salaire //maximal et le salaire minimal dans ce departement
//5-ecrire une fonction affiche qui prend comme paramatre le numeros d'un departement est qui affiche le nom de ce //departement ,le salaire minimal,le salaire maximal suivit d'une liste des employes de ce departement
#include <stdio.h>  
#include <conio.h>
typedef struct  
        {
         int nbr;
         char nom[25];      
        } depart;//
typedef struct  
        {
         int nbr;
         char nom[25];
         char genre;
         depart dep;
         char post[25];
         int direc;
         float salaire;
         } empl;
typedef struct
{
        float min;
        float max;
}mm;        
void cree()
     {
           FILE *f;
           depart D;
           empl E;
f=fopen("DEPT.DTA","w" );
                                   puts("entrer le nbr du departement" );
                                   fflush(stdin);
                                   scanf("%d",&D.nbr);
                                   while(D.nbr>0)
                                                 {
                                                      puts("entrer le nom du departement" );
                                                      fflush(stdin);
                                                      gets(D.nom);
                                                      fwrite(&D,sizeof(depart),1,f);
                                                      puts("entrer le nbr du departement" );
                                                      fflush(stdin);
                                                      scanf("%d",&D.nbr);
                                                 }
fclose(f);
f=fopen("EMP.DTA","w" );
                                   puts("entrer le nbr de l'employes" );
                                   fflush(stdin);
                                   scanf("%d",&E.nbr);
                                   while(E.nbr>0)
                                                 {
                                                      puts("entrer le nom de l'employes" );
                                                      fflush(stdin);
                                                      gets(E.nom);
                                                      puts("entrer le genre de l'employes" );
                                                      fflush(stdin);
                                                      scanf("%c",&E.genre);
                                                      puts("entrer le nbr du departement" );
                                                      fflush(stdin);
                                                      scanf("%d",&E.dep.nbr);
                                                      puts("entrer le post de l'employes" );
                                                      fflush(stdin);
                                                      gets(E.post);
                                                      puts("entrer le nbr du directeur" );
                                                      fflush(stdin);
                                                      scanf("%d",&E.direc);
                                                      puts("entrer le salaire de l'employes" );
                                                      fflush(stdin);
                                                      scanf("%f",&E.salaire);
                                                      fwrite(&E,sizeof(depart),1,f);
                                                      puts("entrer le nbr de l'employer\n" );
                                                      fflush(stdin);
                                                      scanf("%d",&E.nbr);
                                                 }  
fclose(f);
     }
depart trouvdep (int a)
{
   depart D;
   FILE *f;  
f=fopen ("DEPT.DTA","r" );
                           fread(&D,sizeof(depart),1,f);
                           while(!feof(f))
                                       {
                                                        if(D.nbr==a)
                                                                    {
                                                                     fclose(f);
                                                                     return D;
                                                                    }
                                       }
                           D.nbr=-1;
fclose(f);
                           return  D;
}
empl trouvEmp(int a)
{
   empl D;
   FILE *f;  
f = fopen ("EMP.DTA","r" );
                          fread(&D,sizeof(depart),1,f);
                          while(!feof(f))
                                         {
                                                       if(D.nbr==a)
                                                                   {
                                                                    fclose(f);
                                                                    return D;
                                                                    }
                                         }
                          D.nbr=-1;
fclose(f);
                          return  D;
}    
mm minmax(int a)
{
              FILE *f;
              empl E;
              int x;
              depart D;
              mm M;
f=fopen("EMP.DTA","r" );
                         fread(&E,sizeof(empl),1,f);
                         D=trouvdep(a);
                         x=0;
                         while(!feof(f))
                                        {
                                                    if(E.dep.nbr==D.nbr)
                                                                        {
                                                                         if(x==0)
                                                                                 {
                                                                                  M.min=E.salaire;
                                                                                  M.max=E.salaire;
                                                                                  fread(&E,sizeof(empl),1,f);
                                                                                  x++;
                                                                                 }
                                                                         else
                                                                                 {
                                                                                  if(E.salaire>M.max)M.max=E.salaire;
                                                                                  if(E.salaire<M.min)M.min=E.salaire;
                                                                                  fread(&E,sizeof(empl),1,f);
                                                                                 }
                                                                        }
                                                    else
                                                                        {
                                                                         fread(&E,sizeof(empl),1,f);  
                                                                        }
                                        }
fclose(f);
                         return M;
}  
void affiche(int a)
{
     FILE *f;
     depart D;
     empl E;
     D=trouvdep(a);
     printf("%s,%f,%f\n",D.nom,minmax(a).min,minmax(a).max);
     f=fopen("EMP.DTA","r" );
     fread(&E,sizeof(empl),1,f);
     while(!feof(f))
                 {
                            if(D.nbr==E.dep.nbr)
                                                {
                                                            printf("%d\t%s\t%s\t%s\t%f\n",E.nbr,E.nom,E.post,E.direc,E.salaire);
                                                            fread(&E,sizeof(empl),1,f);                                                
                                                }
                            else
                                                {
                                                            fread(&E,sizeof(empl),1,f);            
                                                }
                 }
     fclose(f);
}        
int main ()
{
    int a;
    cree();
    printf("donner le numeros de departement\n" );
    fflush(stdin);
    scanf("%d",&a);
    affiche(a);
 getch();
 return 0;    
}

Reply

Marsh Posté le 14-06-2013 à 23:26:43   

Reply

Marsh Posté le 14-06-2013 à 23:30:01    

Mauvais endroit pour ce genre de question. Il existe une catégorie plus appropriée que Discussions.  :hello:

 

http://forum.hardware.fr/hfr/Progr [...] ujet-1.htm


Message édité par CBRS le 14-06-2013 à 23:31:01
Reply

Marsh Posté le 15-06-2013 à 11:42:30    

merci!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed