-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinternet.cpp
117 lines (103 loc) · 2.64 KB
/
internet.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
#include <iostream>
#include <string>
#include <queue>
#include <cctype>
using namespace std;
class Poste {
private:
string servizio;
int nR = 0, nS = 0, nF = 0;
queue<int> cR; // Coda per la ricezione
queue<int> cS; // Coda per la spedizione
queue<int> cF; // Coda per le finanzarie
public:
Poste() {}
Poste(string servizio) {
this->servizio = servizio;
addClient(tolower(servizio[0]));
}
void addClient(char service) {
switch (service) {
case 's':
cS.push(++nS);
spedizione();
break;
case 'r':
cR.push(++nR);
ricezione();
break;
case 'f':
cF.push(++nF);
finanzarie();
break;
default:
cout << "Servizio non disponibile" << endl;
break;
}
}
void spedizione() {
cout << "Servizio di spedizione" << endl;
}
void ricezione() {
cout << "Servizio di ricezione" << endl;
}
void finanzarie() {
cout << "Servizio finanzarie" << endl;
}
void stampa() {
cout << "Clienti in coda: " << endl;
cout << "Ricezione: ";
stampaCoda(cR);
cout << "Spedizione: ";
stampaCoda(cS);
cout << "Finanzarie: ";
stampaCoda(cF);
}
void stampaCoda(queue<int>& coda) {
while (!coda.empty()) {
cout << coda.front() << " ";
coda.pop();
}
cout << endl;
}
};
int main() {
bool valido = true;
char risposta;
while (valido) {
cout << "Benvenuto in Poste Italiane\n" << endl;
cout << "Seleziona servizio [1-3]: " << endl;
cout << "1. Spedizione (s)" << endl;
cout << "2. Ricezione (r)" << endl;
cout << "3. Finanzarie (f)" << "\n:";
int scelta;
cin >> scelta;
Poste p;
Poste p1;
Poste p2;
switch (scelta) {
case 1:
p = Poste("spedizione");
p.stampa();
break;
case 2:
p1 = Poste("ricezione");
p1.stampa();
break;
case 3:
p2 = Poste("finanzarie");
p2.stampa();
break;
default:
cout << "Servizio non disponibile" << endl;
valido = false;
break;
}
cout << "Vuoi continuare? [s/n]: ";
cin >> risposta;
if (tolower(risposta) == 'n'){
valido = false;
}
}
return 0;
}