pouvez vous corriger mon programe

pouvez vous corriger mon programe - C - Programmation

Marsh Posté le 15-06-2013 à 11:37:57    

//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 :
  1. #include <stdio.h>
  2. #include <conio.h>
  3. typedef struct {
  4.     int nbr;
  5.     char nom[25];
  6. } depart;
  7. typedef struct {
  8.     int nbr;
  9.     char nom[25];
  10.     char genre;
  11.     depart dep;
  12.     char post[25];
  13.     int direc;
  14.     float salaire;
  15. } empl;
  16. typedef struct {
  17.     float min;
  18.     float max;
  19. } mm;
  20. void cree()
  21. {
  22.     FILE *f,*g;
  23.     depart D;
  24.     empl E;
  25.     f=fopen("DEPT.DTA","w" );
  26.     puts("entrer le nbr du departement" );
  27.     fflush(stdin);
  28.     scanf("%d",&D.nbr);
  29.     while(D.nbr>0) {
  30.         puts("entrer le nom du departement" );
  31.         fflush(stdin);
  32.         gets(D.nom);
  33.         fwrite(&D,sizeof(depart),1,f);
  34.         puts("entrer le nbr du departement" );
  35.         fflush(stdin);
  36.         scanf("%d",&D.nbr);
  37.     }
  38.     fclose(f);
  39.     g=fopen("EMP.DTA","w" );
  40.     puts("entrer le nbr de l'employes" );
  41.     fflush(stdin);
  42.     scanf("%d",&E.nbr);
  43.     while(E.nbr>0) {
  44.         puts("entrer le nom de l'employes" );
  45.         fflush(stdin);
  46.         gets(E.nom);
  47.         puts("entrer le genre de l'employes" );
  48.         fflush(stdin);
  49.         scanf("%c",&E.genre);
  50.         puts("entrer le nbr du departement" );
  51.         fflush(stdin);
  52.         scanf("%d",&E.dep.nbr);
  53.         puts("entrer le post de l'employes" );
  54.         fflush(stdin);
  55.         gets(E.post);
  56.         puts("entrer le nbr du directeur" );
  57.         fflush(stdin);
  58.         scanf("%d",&E.direc);
  59.         puts("entrer le salaire de l'employes" );
  60.         fflush(stdin);
  61.         scanf("%f",&E.salaire);
  62.         fwrite(&E,sizeof(empl),1,g);
  63.         puts("entrer le nbr de l'employer\n" );
  64.         fflush(stdin);
  65.         scanf("%d",&E.nbr);
  66.     }
  67.     fclose(g);
  68. }
  69. depart trouvdep (int a)
  70. {
  71.     depart D;
  72.     FILE *f;
  73.     f=fopen ("DEPT.DTA","r" );
  74.     fread(&D,sizeof(depart),1,f);
  75.     while(!feof(f)) {
  76.         if(D.nbr==a) {
  77.             fclose(f);
  78.             return D;
  79.         }
  80.         fread(&D,sizeof(depart),1,f);
  81.     }
  82.     D.nbr=-1;
  83.     fclose(f);
  84.     return  D;
  85. }
  86. empl trouvEmp(int a)
  87. {
  88.     empl D;
  89.     FILE *g;
  90.     g = fopen ("EMP.DTA","r" );
  91.     fread(&D,sizeof(depart),1,g);
  92.     while(!feof(g)) {
  93.         if(D.nbr==a) {
  94.             fclose(g);
  95.             return D;
  96.         }
  97.         fread(&D,sizeof(depart),1,g);
  98.     }
  99.     D.nbr=-1;
  100.     fclose(g);
  101.     return  D;
  102. }
  103. mm minmax(int a)
  104. {
  105.     FILE *g;
  106.     empl E;
  107.     int x;
  108.     depart D;
  109.     mm M;
  110.     g=fopen("EMP.DTA","r" );
  111.     fread(&E,sizeof(empl),1,g);
  112.     D=trouvdep(a);
  113.     x=0;
  114.     while(!feof(g)) {
  115.         if(E.dep.nbr==D.nbr) {
  116.             if(x==0) {
  117.                 M.min=E.salaire;
  118.                 M.max=E.salaire;
  119.                 fread(&E,sizeof(empl),1,g);
  120.                 x++;
  121.             } else {
  122.                 if(E.salaire>M.max) {
  123.                     M.max=E.salaire;
  124.                 }
  125.                 if(E.salaire<M.min) {
  126.                     M.min=E.salaire;
  127.                 }
  128.                 fread(&E,sizeof(empl),1,g);
  129.             }
  130.         } else {
  131.             fread(&E,sizeof(empl),1,g);
  132.         }
  133.     }
  134.     fclose(g);
  135.     return M;
  136. }
  137. void affiche(int a)
  138. {
  139.     FILE *g;
  140.     depart D;
  141.     empl E;
  142.     mm M;
  143.     D=trouvdep(a);
  144.     M=minmax(a);
  145.     printf("%s,%f,%f\n",D.nom,M.min,M.max);
  146.     g=fopen("EMP.DTA","r" );
  147.     fread(&E,sizeof(empl),1,g);
  148.     while(!feof(g)) {
  149.         if(D.nbr==E.dep.nbr) {
  150.             printf("%d\t%s\t%s\t%s\t%f\n",E.nbr,E.nom,E.post,E.direc,E.salaire);
  151.             fread(&E,sizeof(empl),1,g);
  152.         } else {
  153.             fread(&E,sizeof(empl),1,g);
  154.         }
  155.     }
  156.     fclose(g);
  157. }
  158. int main ()
  159. {
  160.     FILE *g;
  161.     empl E;
  162.     int a;
  163.     cree();
  164.     g=fopen("EMP.DTA","r" );
  165.     fread(&E,sizeof(empl),1,g);
  166.     while(!feof(g)) {
  167.         printf("%d  %s  %s  %s  %f\n",E.nbr,E.nom,E.post,E.direc,E.salaire);
  168.         fread(&E,sizeof(empl),1,g);
  169.     }
  170.     fclose(g);
  171.     printf("donner le numeros de departement\n" );
  172.     fflush(stdin);
  173.     scanf("%d",&a);
  174.     affiche(a);
  175.     getch();
  176.     return 0;
  177. }


 
//merci d'avance


Message édité par gilou le 15-06-2013 à 13:59:31
Reply

Marsh Posté le 15-06-2013 à 11:37:57   

Reply

Marsh Posté le 17-06-2013 à 11:05:52    

Bonjour,
 
Pardon, mais quelle type de correction voulez-vous ?

Reply

Marsh Posté le 30-06-2013 à 13:27:58    

Ouais, super, même pas capable d'écrire correctement l'adverbe "non" dans le choix des votes possibles. Rien que pour ça moi je vote "nom".  :pfff:


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

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