black1 | //bonjour a tous //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
Code :
- #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,*g;
- 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);
- g=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(empl),1,g);
- puts("entrer le nbr de l'employer\n" );
- fflush(stdin);
- scanf("%d",&E.nbr);
- }
- fclose(g);
- }
- 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;
- }
- fread(&D,sizeof(depart),1,f);
- }
- D.nbr=-1;
- fclose(f);
- return D;
- }
- empl trouvEmp(int a)
- {
- empl D;
- FILE *g;
- g = fopen ("EMP.DTA","r" );
- fread(&D,sizeof(depart),1,g);
- while(!feof(g)) {
- if(D.nbr==a) {
- fclose(g);
- return D;
- }
- fread(&D,sizeof(depart),1,g);
- }
- D.nbr=-1;
- fclose(g);
- return D;
- }
- mm minmax(int a)
- {
- FILE *g;
- empl E;
- int x;
- depart D;
- mm M;
- g=fopen("EMP.DTA","r" );
- fread(&E,sizeof(empl),1,g);
- D=trouvdep(a);
- x=0;
- while(!feof(g)) {
- if(E.dep.nbr==D.nbr) {
- if(x==0) {
- M.min=E.salaire;
- M.max=E.salaire;
- fread(&E,sizeof(empl),1,g);
- 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,g);
- }
- } else {
- fread(&E,sizeof(empl),1,g);
- }
- }
- fclose(g);
- return M;
- }
- void affiche(int a)
- {
- FILE *g;
- depart D;
- empl E;
- mm M;
- D=trouvdep(a);
- M=minmax(a);
- printf("%s,%f,%f\n",D.nom,M.min,M.max);
- g=fopen("EMP.DTA","r" );
- fread(&E,sizeof(empl),1,g);
- while(!feof(g)) {
- 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,g);
- } else {
- fread(&E,sizeof(empl),1,g);
- }
- }
- fclose(g);
- }
- int main ()
- {
- FILE *g;
- empl E;
- int a;
- cree();
- g=fopen("EMP.DTA","r" );
- fread(&E,sizeof(empl),1,g);
- while(!feof(g)) {
- printf("%d %s %s %s %f\n",E.nbr,E.nom,E.post,E.direc,E.salaire);
- fread(&E,sizeof(empl),1,g);
- }
- fclose(g);
- printf("donner le numeros de departement\n" );
- fflush(stdin);
- scanf("%d",&a);
- affiche(a);
- getch();
- return 0;
- }
|
//merci d'avance Message édité par gilou le 15-06-2013 à 13:59:31
|