-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprincipal.cpp
185 lines (148 loc) · 6.41 KB
/
principal.cpp
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
/******************************************************************************
Fichier: principal.cpp
Utilité: Programme permettant de tester la classe CEmploye, ainsi que sa
bibliothèque de fonctions, à l'aide d'une interface console.
Auteur: Philippe Carpentier-Savard
******************************************************************************/
#include "fonctions.h"
#include <iostream>
#include <stdlib.h>
using namespace std;
#ifdef _WIN32
const char EFFACER_ECRAN [] = "cls";
#else
const char EFFACER_ECRAN [] = "clear";
#endif
/******************************************************************************
Définition de la fonction main ()
******************************************************************************/
int main()
{
char cChoix;
CEmploye lesEmployes[NB_EMPLOYES];
bool bPaiesGeneres = false;
char szRetourMenu[] = "Appuyez sur <Entree> pour retourner au menu "
"principal...";
do
{
system(EFFACER_ECRAN);
cout << "Menu principal" << '\n'
<< '\n'
<< "[1] Generation des paies" << '\n'
<< "[2] Salaires detailles" << '\n'
<< "[3] Sommaire global" << '\n'
<< "[4] Quitter" << '\n'
<< '\n'
<< "Votre choix: " << flush;
cChoix = cin.get();
while (cin.get() != '\n');
switch (cChoix)
{
/*****************************************************************/
case '1':
system(EFFACER_ECRAN);
cout << "Generation des paies" << '\n' << '\n'
<< "Traitement en cours..." << '\n';
GenererPaies(lesEmployes);
bPaiesGeneres = true;
cout << "Generation des paies pour les " << NB_EMPLOYES
<< " employes terminee!" << '\n' << '\n'
<< szRetourMenu << flush;
while (cin.get() != '\n');
break;
/*****************************************************************/
case '2':
system(EFFACER_ECRAN);
cout << "Salaires detailles" << '\n' << '\n';
if (bPaiesGeneres)
{
unsigned int uiEmploye;
unsigned int uiHeures;
unsigned int uiSemaine;
streamsize iPrecision;
cout.setf(ios_base :: fixed, ios_base :: floatfield);
iPrecision = cout.precision(2);
for (uiEmploye = 0; uiEmploye < NB_EMPLOYES; ++uiEmploye)
{
cout << "Employe no. " << uiEmploye+1 << '\n'
<< "Taux horaire:";
cout.width(16);
cout << (float)lesEmployes[uiEmploye].GetTauxHoraire()
<< "$" << '\n';
for (uiSemaine = 0, uiHeures = 0;
uiSemaine < NB_SEMAINES; ++uiSemaine)
uiHeures += lesEmployes[uiEmploye].GetHeures
(uiSemaine);
cout << "Total des heures:";
cout.width(11);
cout << uiHeures << '\n' << '\n';
}
cout.precision(iPrecision);
cout.unsetf(ios_base :: floatfield);
}
else
{
cout << "Vous devez avoir effectue au moins une generation"
" des paies " << '\n' << "pour afficher les "
"salaires detailles." << '\n' << '\n';
}
cout << szRetourMenu << flush;
while (cin.get() != '\n');
break;
/*****************************************************************/
case '3':
system(EFFACER_ECRAN);
cout << "Sommaire global" << '\n' << '\n';
if (bPaiesGeneres)
{
unsigned int uiTotalSalaires;
unsigned int uiTotalHeures;
float fTauxMoyen;
CalculerResultatsGlobaux(lesEmployes, uiTotalSalaires,
uiTotalHeures, fTauxMoyen);
streamsize iPrecision;
cout.setf(ios_base :: fixed, ios_base :: floatfield);
iPrecision = cout.precision(2);
cout << "Nombre d'employes: ";
cout.width(14);
cout << NB_EMPLOYES << '\n';
cout << "Total des salaires verses: ";
cout.width(14);
cout << (float)uiTotalSalaires << "$" << '\n';
cout << "Total des heures: ";
cout.width(19);
cout << uiTotalHeures << '\n';
cout << "Taux horaire moyen: ";
cout.width(17);
cout << fTauxMoyen << "$" << '\n' << '\n';
cout.precision(iPrecision);
cout.unsetf(ios_base :: floatfield);
}
else
{
cout << "Vous devez avoir effectue au moins une generation"
" des ventes " << '\n' << "pour afficher le "
"sommaire global." << '\n' << '\n';
}
cout << szRetourMenu << flush;
while (cin.get() != '\n');
break;
/*****************************************************************/
case '4':
system(EFFACER_ECRAN);
cout << "Au revoir!" << '\n' << '\n' << "Appuyez sur <Entree> "
"pour terminer..."<< flush;
while (cin.get() != '\n');
break;
/*****************************************************************/
default:
cout << '\n' << "Choix invalide. Appuyez sur <Entree> pour "
"continuer...";
while (cin.get() != '\n');
break;
/*****************************************************************/
}
}
while (cChoix != '4');
return 0;
}