pouvez vous corriger mon programme - Sciences - Discussions
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.
http://forum.hardware.fr/hfr/Progr [...] ujet-1.htm
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;
}