Bonjour a tous
Voici mon code :
Description :
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 #include <iostream> #include <string> using namespace std; int main() { /*0. Déclaration des variables*/ string pseudo1; string pseudo2; string pseudo3; string nomjeu; double ajout1; double ajout2; double ajout3; char decision; int choix(0); char decision2; int affich; double score1; double score2; double score3; /*1. Demande des pseudos des differents joueurs + confirmation de l'utilisateur pour ceux-ci*/ do{ cout << "Entrer un pseudo pour le joueur 1" << endl; cin >> pseudo1; cout << "Entrer un pseudo pour le joueur 2" << endl; cin >> pseudo2; cout << "Entrer un pseudo pour le joueur 3" << endl; cin >> pseudo3; cout << "Vous avez selectionner " << nomjeu; cout << "Les infos sont : " << endl; cout << "Joueur 1 :" << pseudo1 << endl; cout << "Joueur 2 :" << pseudo2 << endl; cout << "Joueur 3 :" << pseudo3 << endl; cout << "Est ce correct ?[O]ui ou [N]on" << endl; cin >> decision; while ((decision != 'O' && decision != 'o') && (decision != 'N' && decision != 'n')) { cout << "Veuillez mettre O ou o ou N ou n" << endl; cin >> decision; } system("cls"); } while (decision == 'n' || decision == 'N'); /*1.1 Demande du jeu + confirmation par l'utilisateur de celui-ci + remise des scores un 0 si décision de recommencer le programme*/ do{ do{ cout << "Entrer le nom du jeu" << endl; cin >> nomjeu; cout << "Nom du jeu :" << nomjeu << endl; cout << "Est ce correct ?[O]ui ou [N]on" << endl; cin >> decision; while ((decision != 'O' && decision != 'o') && (decision != 'N' && decision != 'n')) { cout << "Veuillez mettre O ou o ou N ou n" << endl; cin >> decision; } } while (decision == 'N' || decision == 'n'); system("cls"); score1 = 0; score2 = 0; score3 = 0; /*2. Menu du programme*/ do{ cout << "Voulez-vous?" << endl; cout << "1. Ajouter un nouveau score au joueur 1" << endl; cout << "2. Ajouter un nouveau score au joueur 2" << endl; cout << "3. Ajouter un nouveau score au joueur 3" << endl; cout << "4. Afficher les scores d'un joueur" << endl; cout << "5. Afficher le podium" << endl; cout << "6. Quitter l'encodage des scores du jeu " << nomjeu << endl; cout << "Votre choix" << endl; cin >> choix; /*2.1 Tant que choix est en dessous de 1 (choix du menu) au dessus de 6 ( choix du menu) => erreur + encodage du nouveau nombre*/ while (choix <1 || choix > 6) { cout << "Erreur, veuillez rentrer un de ces nombres (1,2,3,4,5,6)" << endl; cin >> choix; system("cls"); } switch (choix) { /*2.2 Ajout du score du joueur1*/ case 1: cout << "1. Ajouter un nouveau score au joueur 1" << endl; cout << "Le score actuel du joueur 1 " << pseudo1 << " est de " << score1 << endl; cout << "Veuillez encoder le score a ajouter" << endl; cin >> ajout1; /* erreur 1 : dans le score si je met un caractère Objectif : Interdire tous les caractères et si entrée de caractère => afficher une erreur et demander a l'utilisateur a nouveau la variable ajout1*/ score1 = score1 + ajout1; cout << "Le nouveau score de " << pseudo1 << " est de " << score1 << endl; system("pause"); system("cls"); break; /*2.3 Ajout du score du joueur2*/ case 2: cout << "2. Ajouter un nouveau score au joueur 2" << endl; cout << "Le score actuel du joueur 2 " << pseudo2 << " est de " << score2 << endl; cout << "Veuillez encoder le score a ajouter" << endl; cin >> ajout2; /* erreur 1 : dans le score si je met un caractère Objectif : Interdire tous les caractères et si entrée de caractère => afficher une erreur et demander a l'utilisateur a nouveau la variable ajout2*/ score2 = score2 + ajout2; cout << "Le nouveau score de " << pseudo2 << " est de " << score2 << endl; system("pause"); system("cls"); break; /*2.4 Ajout du score du joueur3*/ case 3: cout << "3. Ajouter un nouveau score au joueur 3" << endl; cout << "Le score actuel du joueur 3 " << pseudo3 << " est de " << score3 << endl; cout << "Veuillez encoder le score a ajouter" << endl; cin >> ajout3; /* erreur 1 : dans le score si je met un caractère Objectif : Interdire tous les caractères et si entrée de caractère => afficher une erreur et demander a l'utilisateur a nouveau la variable ajout3*/ score3 = score3 + ajout3; cout << "Le nouveau score de " << pseudo3 << " est de " << score3 << endl; system("pause"); system("cls"); break; /*2.5 Affichage du score d'un joueur*/ case 4: cout << "4. Afficher les scores d'un joueur" << endl; cout << "Joueur 1 : " << pseudo1 << endl; cout << "Joueur 2 : " << pseudo2 << endl; cout << "Joueur 3 : " << pseudo3 << endl; cout << "Selectionner le joueur(numero) auquel il faut afficher le score" << endl; cin >> affich; /* erreur 2 : je rentre un caractere et le programme n'arrête pas de tourner : Objectif : Interdire tous les caractères et si entrée de caractère => afficher une erreur et demander a l'utilisateur a nouveau la variable affich*/ while (affich <= 0 || affich > 3) { cout << "Erreur, veuillez selectionner 1,2 ou 3"; cin >> affich; } if (affich = 1) { cout << "Le score du joueur 1 est de " << score1 << endl; } else if (affich = 2) { cout << "Le score du joueur 2 est de " << score2 << endl; } else { cout << "Le score du joueur 3 est de " << score3 << endl; } system("pause"); system("cls"); break; /*2.6 Affichage du podium ( les égalité ne sont pas pris en compte)*/ case 5: if ((score1 <= score2) && (score2 <= score3)) { cout << "1ere place : " << pseudo3 << " avec " << score3 << endl; cout << "2eme place : " << pseudo2 << " avec " << score2 << endl; cout << "3eme place : " << pseudo1 << " avec " << score1 << endl; } else if ((score1 <= score3) && (score3 <= score2)) { cout << "1ere place : " << pseudo2 << " avec " << score2 << endl; cout << "2eme place : " << pseudo3 << " avec " << score3 << endl; cout << "3eme place : " << pseudo1 << " avec " << score1 << endl; } else if ((score2 <= score1) && (score1 <= score3)) { cout << "1ere place : " << pseudo3 << " avec " << score3 << endl; cout << "2eme place : " << pseudo1 << " avec " << score1 << endl; cout << "3eme place : " << pseudo2 << " avec " << score2 << endl; } else if ((score2 <= score3) && (score3 <= score1)) { cout << "1ere place : " << pseudo1 << " avec " << score1 << endl; cout << "2eme place : " << pseudo3 << " avec " << score3 << endl; cout << "3eme place : " << pseudo2 << " avec " << score2 << endl; } else if ((score3 <= score1) && (score1 <= score2)) { cout << "1ere place : " << pseudo2 << " avec " << score2 << endl; cout << "2eme place : " << pseudo1 << " avec " << score1 << endl; cout << "3eme place : " << pseudo3 << " avec " << score3 << endl; } else if ((score3 <= score2) && (score2 <= score1)) { cout << "1ere place : " << pseudo1 << " avec " << score1 << endl; cout << "2eme place : " << pseudo2 << " avec " << score2 << endl; cout << "3eme place : " << pseudo3 << " avec " << score3 << endl; } system("pause"); break; /*2.7 On quitte le programme avec décision de recommencer*/ case 6: cout << "6. Quitter l'encodage des scores du jeu " << nomjeu << endl; cout << "Voulez-vous recommencer le programme pour un autre jeu?" << endl; cin >> decision2; while ((decision2 != 'O' && decision2 != 'o') && (decision2 != 'N' && decision2 != 'n')) { cout << "Veuillez mettre O ou o ou N ou n" << endl; cin >> decision2; } break; } system("cls"); /*2.8 Si le choix n'est pas égale a 6 on ne quitte pas le programme*/ } while (choix != 6); /*2.9 Si la decision de recommencer le programme est [O]ui alors on redemande a l'utilisateur un nom de jeu mais avec les mêmes pseudos*/ }while (decision2 == 'O' || decision2 == 'o'); cout << "Merci d'avoir utiliser le programme" << endl; return 0; }
Ce programme est destiné a gérer des scores pour n'importe quel jeu.
Mais comme vous le voyez dans le programme et dans mon code, les caractères pour moi sont un véritable problème car peut importe l'entrée du caractère je réussi a faire bugger mon programme ( nombre astronomique, programme qui tourne en boucle,...) .
Et le but pour moi est justement de vérifier ce que l'utilisateur a entré et si il y a un ou plusieurs caractères, afficher une erreur et lui redemander la variable pour qu'elle soit correct.
Je vous remercie d'avance de m'aider dans mon exploration du C++ ^^
Et vous souhaite une bonne journée
PS :
-Si vous avez d'autres erreurs a me signaler , elles sont les bienvenues et je vous en remercie d'avance
-Je m'excuse également pour les divers fautes d'orthographe que j'ai pu commettre
- On m'a déjà conseiller votre site a cet endroit : http://cpp.developpez.com/faq/cpp/?p...isies-avec-cin
Mais il y a beaucoup de commandes que je n'ai pas vu en cours C++ et/ou que je ne comprend pas très bien :$ ca serait pour moi un + si vous saviez m'expliquer et m'aiguiller dans ma démarche je vous remercie d'hors et déjà d'avance
Comme vous le voyez d'ailleurs mon programme est très je vais dire basique donc voilà il faudrait que je corrige ce soucis le plus simplement possible
Partager