#include <stdio.h> #include <stdlib.h> #include <string.h> #define DEBUG 1 bool convertir() { // Déclaration des variables char no_emp1[3+1], no_emp2[3+1], no_emp3[3+1], nom[10+1]; int jour1, jour2, jour3, jour4, jour5; float taux, salaire_brut, taxe, a_deduct, salaire_net, paie_cumulee, taxe_cumulee, a_deduct_cumulee, nbr_heures; FILE *fichierEmployees, *fichierGeneralPay, *fichierWk, *fichierSortie; // Ouverture des fichiers fichierWk = fopen("Wk13102009.txt", "r"); if (fichierWk == NULL) { printf("\n\tImpossible de lire Wk13102009.txt\n"); return false; } fichierEmployees = fopen("employees.txt", "r"); if (fichierEmployees == NULL) { printf("\n\tImpossible de lire employees.txt\n"); return false; } fichierGeneralPay = fopen("GeneralPay.txt", "r+"); if (fichierGeneralPay == NULL) { printf("\n\tImpossible de lire GeneralPay.txt\n"); return false; } fichierSortie = fopen("PaieSemaineCourante.txt", "a"); if (fichierSortie == NULL) { printf( "\n\tImpossible de lire PaieSemaineCourante.txt.txt.\n"); return false; } // Lecture et traitements des fichiers while (!feof(fichierWk)) { // Récupération des données fscanf(fichierWk, "%s%d%d%d%d%d", no_emp1, &jour1, &jour2, &jour3, &jour4, &jour5); fscanf(fichierEmployees, "%s%s%f", no_emp2, nom, &taux); fscanf(fichierGeneralPay, "%s%f%f%f", no_emp3, &paie_cumulee, &taxe_cumulee, &a_deduct_cumulee); // Comparaison de la bonne correspondance if (strcmp(no_emp1, no_emp2)!=0 || strcmp(no_emp2, no_emp3)!=0) { printf("\n\tLes champs NO_EMP ne sont pas dans le " "bon ordre dans les differents fichiers !\n"); } #if DEBUG == 1 printf("NO_EMP : %s\tNOM : %s\tJOUR1 : %d\tJOUR2 : %d" "\tJOUR3 : %d\tJOUR4 : %d\tJOUR5 : %d" "\tPAIE_CUMULEE : %f\tTAUX : %f\tTAXE_CUMULEE : %f" "\tA_DEDUCT_CUMULEE : %f\n", no_emp1, nom, jour1, jour2, jour3, jour4, jour5, paie_cumulee, taux, taxe_cumulee, a_deduct_cumulee); #endif // Traitement des données nbr_heures = jour1 + jour2 + jour3 + jour4 + jour5; salaire_brut = nbr_heures * taux; taxe = salaire_brut * 0.30; a_deduct = salaire_brut * 0.08; salaire_net = salaire_brut - taxe - a_deduct; #if DEBUG == 1 printf("NBR_HEURES : %f\tSALAIRE_BRUT : %f\tTAXE : %f" "\tA_DEDUCT : %f\tSALAIRE_NET : %f\n", nbr_heures, salaire_brut, taxe, a_deduct, salaire_net); #endif // Mise à jour des donnes cumulées pour GeneralPay.txt paie_cumulee += salaire_net; taxe_cumulee += taxe; a_deduct_cumulee += a_deduct; #if DEBUG == 1 printf("GENERALPAY - \tPAIE_CUMULEE : %f\tTAXE_CUMULEE: %f" "\tA_DEDUCT_CUMULEE : %f\n", paie_cumulee, taxe_cumulee, a_deduct_cumulee); #endif #if DEBUG == 1 printf("fichierSortie : %s %s %.5f %2d %.5f %.2f %.2f %.2f%.2f\n", no_emp1, nom, taux, nbr_heures, salaire_brut, salaire_net, paie_cumulee, taxe_cumulee, a_deduct_cumulee); printf("fichierGeneralPay : %s%.2f %.2f %.2f\n", no_emp1, paie_cumulee, taxe_cumulee, a_deduct_cumulee); #else // Ecrire une ligne dans le fichier PaieSemaineCourante.txt fprintf(fichierSortie, "%s %s %.5f %2d %.5f %.2f %.2f %.2f%.2f\n", no_emp1, nom, taux, nbr_heures, salaire_brut, salaire_net, paie_cumulee, taxe_cumulee, a_deduct_cumulee); // Ecrire une ligne GeneralPay.txt fprintf(fichierGeneralPay, "%s%.2f %.2f %.2f\n", no_emp1, paie_cumulee, taxe_cumulee, a_deduct_cumulee); #endif } // Fin de la boucle while fclose(fichierGeneralPay); fclose(fichierEmployees); fclose(fichierSortie); fclose(fichierWk); } int main(void) { if (!convertir()) { system("pause"); return -1; } printf("Program termine normalement !\n"); system("pause"); return 0; }
if ((fp3 fopen("Wk13102009.txt", "r")) NULL) { printf("\n\tImpossible de lire Wk13102009.txt\n"); } else { [...] }
fp3 = fopen("Wk13102009.txt", "r"); if (fp3 == NULL) { printf("\n\tImpossible de lire Wk13102009.txt\n"); return false; } [...] return true;
001 John 19.75325 0 2.00000 -26815622308011076000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00 -0.00 -0.00-2.00 7111.390137 Nacha 17.60125 0 -0.00000 2.00 2.00 0.002.00 .019531 Mark 18.12356 0 2.00000 26815622306875914000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00 -26815622303019266000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00 -2.00-26815622296621845000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00 004 Alain 20.82431 0 -2.00000 0.00 2.00 -26815622333425424000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00-2.00 1 Solange 16.25634 0 2.00000 -0.00 -2.00 -0.002.00
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionpaie( no_emp, nbr_heures, taux);
nbr_heures * taux
NO_EMP : 001 NOM : John JOUR1 : 9 JOUR2 : 9 JOUR3 : 9 JOUR4 : 10 JOUR5 : 9 PAIE_CUMULEE : 114563.367188 TAUX : 19.753250 TAXE_CUMULEE : 38200.050781 A_DEDUCT_CUMULEE : 12115.719727 NO_EMP : 002 NOM : Nacha JOUR1 : 9 JOUR2 : 9 JOUR3 : 8 JOUR4 : 8 JOUR5 : 9 PAIE_CUMULEE : 99397.281250 TAUX : 17.601250 TAXE_CUMULEE : 29632.150391 A_DEDUCT_CUMULEE : 7111.390137 NO_EMP : 003 NOM : Mark JOUR1 : 9 JOUR2 : 9 JOUR3 : 9 JOUR4 : 9 JOUR5 : 9 PAIE_CUMULEE : 103297.453125 TAUX : 18.123560 TAXE_CUMULEE : 30184.080078 A_DEDUCT_CUMULEE : 10095.730469 NO_EMP : 004 NOM : Alain JOUR1 : 7 JOUR2 : 8 JOUR3 : 8 JOUR4 : 9 JOUR5 : 9 PAIE_CUMULEE : 120938.453125 TAUX : 20.824310 TAXE_CUMULEE : 41424.019531 A_DEDUCT_CUMULEE : 14081.179688 NO_EMP : 005 NOM : Solange JOUR1 : 9 JOUR2 : 9 JOUR3 : 9 JOUR4 : 9 JOUR5 : 9 PAIE_CUMULEE : 90438.250000 TAUX : 16.256340 TAXE_CUMULEE : 21437.169922 A_DEDUCT_CUMULEE : 5678.950195
NO_EMP : 001 NBR_HEURES : 46.000000 SALAIRE_BRUT : 908.649536 TAXE : 272.594849 A_DEDUCT : 72.691963 SALAIRE_NET : 563.362732 GENERALPAY - PAIE_CUMULEE : 115126.726563 TAXE_CUMULEE: 38472.644531 A_DEDUCT_CUMULEE : 12188.412109 NO_EMP : 002 NBR_HEURES : 43.000000 SALAIRE_BRUT : 756.853760 TAXE : 227.056122 A_DEDUCT : 60.548302 SALAIRE_NET : 469.249329 GENERALPAY - PAIE_CUMULEE : 99866.531250 TAXE_CUMULEE: 29859.207031 A_DEDUCT_CUMULEE : 7171.938477 NO_EMP : 003 NBR_HEURES : 45.000000 SALAIRE_BRUT : 815.560181 TAXE : 244.668060 A_DEDUCT : 65.244812 SALAIRE_NET : 505.647308 GENERALPAY - PAIE_CUMULEE : 103803.101563 TAXE_CUMULEE: 30428.748047 A_DEDUCT_CUMULEE : 10160.975586 NO_EMP : 004 NBR_HEURES : 41.000000 SALAIRE_BRUT : 853.796753 TAXE : 256.139038 A_DEDUCT : 68.303741 SALAIRE_NET : 529.354004 GENERALPAY - PAIE_CUMULEE : 121467.804688 TAXE_CUMULEE: 41680.160156 A_DEDUCT_CUMULEE : 14149.483398 NO_EMP : 005 NBR_HEURES : 45.000000 SALAIRE_BRUT : 731.535278 TAXE : 219.460587 A_DEDUCT : 58.522823 SALAIRE_NET : 453.551880 GENERALPAY - PAIE_CUMULEE : 90891.804688 TAXE_CUMULEE: 21656.630859 A_DEDUCT_CUMULEE : 5737.473145
#define DEBUG 1
#define DEBUG 0