1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
| /*Lire trois fichiers de données et écrire sur un quatrième fichier*/
#include<stdio.h>
#include<stdlib.h>
float paie(char*, float, float); /* function prototype */
int main(void)
{
char no_emp[4], nom[11];
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 *fp1, *fp2, *fp3, *fp4;
/*
fp1 = fopen ("employees.txt")
fp2 = fopen ("GeneralPay.txt")
fp3 = fopen ("Wk11102009.txt")
fp4 = fopen ("PaieSemaineCourante.txt")
*/
/* fopen ouvre le fichier. Exit le pgm en cas de problème */
if ((fp3 = fopen("Wk13102009.txt", "r")) == NULL)
{
printf("\n\tImpossible de lire Wk13102009.txt\n");
}
else
{
if ((fp1 = fopen("employees.txt", "r")) == NULL)
{
printf("\n\tImpossible de lire employees.txt\n");
}
else
{
if ((fp2 = fopen("GeneralPay.txt", "r+")) == NULL)
{
printf("\n\tImpossible de lire GeneralPay.txt\n");
}
else
{
if ((fp4 = fopen("PaieSemaineCourante.txt", "a")) == NULL)
{
printf("\n\tImpossible de lire PaieSemaineCourante.txt.txt.\n");
}
else
{
while (!feof(fp3))
{
fscanf(fp3, "%s%d%d%d%d%d", no_emp, &jour1, &jour2, &jour3, &jour4, &jour5);
fscanf(fp1, "%s%s%f", no_emp, nom, &taux);
fscanf(fp2, "%s%f%f%f", no_emp, &paie_cumulee, &taxe_cumulee, &a_deduct_cumulee );
nbr_heures = jour1 + jour2 + jour3 + jour4 + jour5;
salaire_brut = paie( no_emp, nbr_heures, taux);
taxe = salaire_brut * 0.30;
a_deduct = salaire_brut * 0.08;
salaire_net = salaire_brut - taxe - a_deduct;
//mise à jour des donnes cumulées dans GeneralPay.txt
paie_cumulee += salaire_net;
taxe_cumulee += taxe;
a_deduct_cumulee += a_deduct;
//écrire une ligne dans le fichier PaieSemaineCourante.txt
fprintf(fp4, "%s %s %.5f %2d %.5f %.2f %.2f %.2f%.2f\n", no_emp, nom, taux,
nbr_heures, salaire_brut, salaire_net, paie_cumulee, taxe_cumulee, a_deduct_cumulee);
//écrire une ligne GeneralPay.txt
fprintf(fp2, "%s%.2f %.2f %.2f\n", no_emp, paie_cumulee, taxe_cumulee, a_deduct_cumulee);
//remise des variables à zéro
nbr_heures = 0;
salaire_brut = 0;
taxe = 0;
a_deduct = 0;
salaire_net = 0;
}//fin de la boucle while
fclose(fp2);
fclose(fp1);
fclose(fp4);
}
}
fclose(fp3);
}
}
printf("Program terminé sans normalement !\n\n\n");
system("pause");
return 0;
}
float paie( char *no_empo, float nbr_heures, float taux)
{
float s_brut;
s_brut = nbr_heures * taux;
return (s_brut);
} |