Bonjour,

Je suis étudiante, et j'ai commencée un petit programme de distributeur bancaire simple en C++, n'étant pas très forte en programmation C++ je rencontre un problème,
Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
 
 
using namespace std;
 
struct CLIENT { // j'ai mis client en majuscule car c'est une structure, une habitude que j'essaie de prendre
 
    int numClient;
    char nomClient[12];
    int soldeClient;
    int mdpClient;
    int compteBlock;
 
};
 
void initilaiser(CLIENT* id); // prototype de fonction placé après client pour qu'il puisse connaître la structure
 
int main()
{
    struct CLIENT id[3]; // Je définis mes clients en ID il y en a 3
    initilaiser(id); // J'envoi mon tableau de la structure CLIENT nommé ID
 
    int saisiClient;
    int mdpClient2(0);
    int essaie(0);
    int choix(0);
    int retrait(0);
    int quit(0);
    int depot(0);
    int recharge(0);
    int operateur;
    int nb_alea;
    int rib(3224);
 
    int cake;
 
 
 
 
 
 
    cout << "Bienvenu à la banque" << endl << "Quel est votre numéro de compte ?"<<endl;
    cin >> saisiClient;
 
       // J'aimerai changer ceci : 
 
    if(saisiClient == 500001)
    {
        cake=0;
    }else if (saisiClient==500002)
        {
            cake=1;
        }
    else if (saisiClient==500003)
    {
        cake=2;
    }
 
 
 
    // VERIFICATION DU COMPTE
 
    while (saisiClient != id[cake].numClient)
    {
        cout <<" Compte inexsitant"<< endl;
        cout <<"retapez votre numero de compte ou tapez '0' pour annuler"<<endl;
        cin >> saisiClient;
 
        if(saisiClient == 0)
        {
            cout<<"Bonne journée"<<endl;
            return 0;
        }
    }
    // SAISI DU MOT DE PASSE
 
    cout <<"Compte existant" <<endl;
    cout << "Tapez votre mot de passe"<<endl;
    cin >> mdpClient2;
 
    // BOUCLE POUR DEMANDER LE MDP x3, SI DEPASSER QUITTE.
 
    while( mdpClient2 != id[cake].mdpClient)
    {
        cout << "Retapez votre mot de passe"<<endl;
        essaie++;
        cout << "Vous etes à " << essaie <<endl;
        cin >> mdpClient2;
 
        if (essaie == 2)
        {
            cout << "Vous etes à 3 essaie"<<endl;
            cout << "Vous avez dépassé le nombre de tentative "<<endl;
            cout << "COMPTE BLOQUE, VEUILLEZ CONTACTER VOTRE AGENCE"<<endl;
            return 0;
        }
    }
 
    cout << "Mot de passe correct, "<< "Bienvenu "<< id[cake].nomClient <<endl;
 
 
    while (quit == 0)
    {
 
        cout << "Que voulez-vous faire ? "<<endl;
        cout << "1 : Retrait"<<endl;
        cout << "2 : Dépot"<<endl;
        cout << "3 : Virement"<<endl;
        cout << "4 : Rechargement Mobile"<<endl;
        cout << "5 : Afficher votre solde"<<endl;
        cout << "6 : Obtenir un RIB"<<endl;
        cout << "7 : Quitter"<<endl;
        cin >> choix;
 
        switch (choix)
        {
            case 1:
                cout << "RETRAIT" << endl;
                cout << "Quel somme voulez-vous retirer ? " << endl;
                cin >> retrait;
 
                if( retrait > id[cake].soldeClient )
                {
                    cout << "Vous n'avez pas assez d'argent"<<endl;
                    cin >>retrait;
                }
                id[cake].soldeClient = id[cake].soldeClient - retrait;
                cout << "Votre nouveau solde est de "<<id[cake].soldeClient<<endl;
 
                break;
 
            case 2:
                cout << "DEPOT" << endl;
                cout << "Quel somme voulez-vous déposer ? " << endl;
                cin >> depot;
                if (depot == 0)
                {
                    cout << "Aucune somme à déposer"<< endl;
                }
                else if(depot == 10000)
                {
                    cout << "Dépot trop important, merci de vous rendre dans votre agence";
                }
                id[cake].soldeClient = id[cake].soldeClient + depot;
                cout << "Votre nouveau solde est de "<<id[cake].soldeClient<<endl;
 
                break;
 
 
            case 3: // NE FONCTIONNE PAS CAR BESOIN DE STRUCT
                cout << "Fonction à venir "<< endl;
                break;
 
            case 4:
                cout << "RECHARGE MOBILE" << endl;
                cout << "Quel recharge  voulez-vous déposer ? " << endl;
                cin >> recharge;
 
                if (recharge == 0)
                {
                    cout << "Aucune somme à déposer"<< endl;
                }
 
                else if(recharge >= 100)
                {
                    cout << "Recharge trop important"<< endl;
                }
 
                else if (recharge >= id[cake].soldeClient)
                {
                    cout <<"Pas assez de fond"<<endl;
                }
                else {
 
                    cout << "Chez quel opérateur êtes-vous ?"<<endl;
                    cout << "1) ORANGE"<<endl;
                    cout << "2) SFR"<<endl;
                    cout << "3) BOUYGUE TELECOM"<<endl;
                    cin >> operateur;
 
                    if(operateur == 1)
                    {
                        cout << "ORANGE"<<endl;
 
                        nb_alea = (rand() % 10000) + 1000;
                        cout << "Votre code rechargement est le suivant : "<< nb_alea <<endl;
                    }
 
                    else if(operateur == 2)
                    {
                        cout << "SFR"<<endl;
                        nb_alea = (rand() % 10000) + 1000;
                        cout << "Votre code rechargement est le suivant : "<< nb_alea <<endl;
 
                    }else
                    {
                        cout << "BOUYGUE TELECOM"<<endl;
                        nb_alea = (rand() % 10000) + 1000;
                        cout << "Votre code rechargement est le suivant : "<< nb_alea <<endl;
 
                    }
                    id[0].soldeClient = id[cake].soldeClient - recharge;
                    cout << "Votre nouveau solde est de "<<id[cake].soldeClient<<endl;
                }
                break;
 
            case 5:
                cout << "OBTENIR SOLDE" << endl;
                cout << "Votre solde est de "<< id[cake].soldeClient <<"€"<< endl;
                break;
 
 
            case 6: // NE RESSEMBLE PAS A UN RIB
                cout << "OBTENIR UN RIB " << endl;
                cout << "Votre RIB est le suivant "<<  rib << endl;
                break;
 
 
            case 7 :
                cout << "QUITTER" << endl;
                cout << "Merci et bonne journée ! " << endl;
 
                quit=1;
                return 0;
                break;
        } }
}
 
void initilaiser(CLIENT* id) //Je pointe sur ma structure !
{
    for(int x(0); x < 3; x++) // Il n'y a que 3 clients, je les initialises.
    {
        switch(x)
        {
            case 0:
                id[x].numClient = 500001; //numCLient
                strncpy(id[x].nomClient, "Pierre", 12);//nomClient
                id[x].soldeClient = 2000;//soldeClient
                id[x].mdpClient = 3245; //mdpClient
                id[x].compteBlock = 0;
 
                cout << "Compte 1 initialiser avec succès" << endl;
                break;
 
            case 1:
                id[x].numClient = 500002;
                strncpy(id[x].nomClient, "Lucie", 12);
                id[x].soldeClient = 1000;
                id[x].mdpClient = 3451;
                id[x].compteBlock = 0;
                cout << "Compte 2 initialiser avec succès" << endl;
                break;
 
            case 2:
                id[x].numClient = 500003;
                strncpy(id[x].nomClient, "Simon", 12);
                id[x].soldeClient = 3000;
                id[x].mdpClient = 9832;
                id[x].compteBlock = 0;
                cout << "Compte 3 initialiser avec succès" << endl;
                break;
 
            default: // Si la boucle for bug pour X raison tu auras un retour (précautions)
                cerr << "id Inexistant" << endl;
                break;
        }
    }
}
Désolé c'est un peu long.
J'aimerai changer la partir avec les if-else que j'ai indiqué dans le code en commentaire (ligne 44), en faite, quand le client saisi son numéro de compte, il faudrait rechercher le numéro de compte qui correspond et renvoyer l'id. Je pense qu'il y a un moyen avec un boucle par exemple mais je n'ai pas trop d'idée.

Je ne sais pas si je suis clair, n'hésitez pas en me demander.

Merci d'avance.