Salut,
Ne sachant plus quoi faire devant mon PC, je me suis dit un jour "pourquoi pas essayer de programmer et pourquoi pas en C++ " Quel gros naif!!!.
Enfin bref, je me suis mis en tête d'essayer de faire une application console à deux balle de conversion d'unités.(il faut bien commencer par quelque chose)
Mis à part une syntaxe ou l'autre que vous trouverez foireuse, voici mon problème:
Le code dispose de deux niveaux de menus.
Le premier est le choix du type de conversion.
Le deuxième est le choix de l'unité à convertir (pour le moment je n'ai fait que les distances en attendant que ça fonctionne comme je souhaite.
Dans ce menu,en option 7 je souhaite revenir au menu principal.
Au mieux je sais retourner au deuxième menu pour l'instant.
J'ai essayé avec GOTO, ça marche, mais suite à tout le mal que j'en ai lu je n'ai pas envie d'être maudit sur 7 générations.
Voici le code et merci d'avance
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 #include <iostream> #include <iomanip> using namespace::std; void ShowMainMenu (void);//menu principal void ShowDistMenu (void);//menu distances void ShowDistTable (double);//Calcul et affichage de tableau de solution int main() { float valeur=0;// pour le type de conversion short choix=0;// pour cl'unité à convertir cout<<setw(50)<<right<<"Conversion d'unites\n"; cout<<setw(51)<<right<<"___________________\n\n"; ShowMainMenu(); // affiche le menu principal cin>>valeur;// selectionne le sous menu cout<<"\n"; while (valeur!=EOF) { if (valeur==1)// conversion des distances { ShowDistMenu (); cin>>choix; double interm=0.0; while (choix!=EOF) { if (choix==1) { cout<<setw(30)<<left<<"Entrez le nombre de NM : "; cin>>interm;/*fournit une valeur intermediaire (basée sur le mètre) pour pouvoir utiliser la fonction "ShowDistTable" valable indépendament de l'unité choisie*/ ShowDistTable (interm*1852);//donne le facteur d'adaptation selon l'unité calculée. system("PAUSE"); ShowDistMenu ();//Affiche à nouveau le menu distances pour redemarrer la boucle cin>>choix; cout<<"\n"; } else if (choix==2) { cout<<setw(30)<<left<<"Entrez le nombre de KM : "; cin>>interm; ShowDistTable (interm*1000); system("PAUSE"); ShowDistMenu (); cin>>choix; cout<<"\n"; } else if (choix==3) { cout<<setw(30)<<left<<"Entrez le nombre de SM : "; cin>>interm; ShowDistTable (interm*1609.344); system("PAUSE"); ShowDistMenu (); cin>>choix; cout<<"\n"; } else if (choix==4) { cout<<setw(30)<<left<<"Entrez le nombre de Ft : "; cin>>interm; ShowDistTable (interm*0.3048); system("PAUSE"); ShowDistMenu (); cin>>choix; cout<<"\n"; } else if (choix==5) { cout<<setw(30)<<left<<"Entrez le nombre de Mtr : "; cin>>interm; ShowDistTable (interm); system("PAUSE"); ShowDistMenu (); cin>>choix; cout<<"\n"; } else if (choix==6) { cout<<setw(30)<<left<<"Entrez le nombre de Yds : "; cin>>interm; ShowDistTable (interm*0.9144); system("PAUSE"); ShowDistMenu (); cin>>choix; cout<<"\n"; } else if (choix==7) { ShowMainMenu(); // affiche le menu principal cin>>valeur; cout<<"\n"; } else if (choix<1 || choix>7) { cout<< "Erreur de saisie.\n"; cout<<"Veuillez entrer votre choix\n"; cin>>choix; } else if( ! ( cin >> choix ) ) { cerr << "Erreur de saisie.\n"; cin.clear(); // effacer les bits d'erreurs cin.ignore( numeric_limits<streamsize>::max(), '\n' ); // supprimer la ligne erronée dans le buffer cout<<"Veuillez entrer votre choix\n"; cin>>choix; } } } } system("PAUSE"); return 0; } void ShowMainMenu (void)//menu racine { cout<<"Distances\t\t1"<<endl; cout<<"Volumes\t\t\t2"<<endl; cout<<"Masses\t\t\t3"<<endl; cout<<"Masse/Volumes liquides\t4"<<endl; cout<<"Pressions\t\t5"<<endl; cout<<"Altitudes\t\t6\n"<<endl; } void ShowDistMenu (void)//menu distances { cout<<"Pour convertir des NM 1\n"; cout<<"Pour convertir des KM 2\n"; cout<<"Pour convertir des SM 3\n"; cout<<"Pour convertir des Feet 4\n"; cout<<"Pour convertir des Metres 5\n"; cout<<"Pour convertir des Yards 6\n"; cout<<"Pour revenir au menu principal entrez 7\n\n"; } void ShowDistTable (double value) { double NM,KM,SM,Ft,Mtr,Yds; NM=value*0.0005399568;//calcul des distances KM=value*0.001; SM=value*0.0006213710; Ft=value*3.2808333333; Mtr=value; Yds=value*1.093613298; cout<<"\n\n"; cout<<" ********************************************"<<endl;//affichage du résultat cout<<" **"<<setw(15)<<right<<setprecision(6)<<NM<<" NM **"<<setw(15)<<right<<setprecision(6)<<Ft<<" Ft **"<<endl; cout<<" ********************************************"<<endl; cout<<" **"<<setw(15)<<right<<setprecision(6)<<KM<<" KM **"<<setw(15)<<right<<setprecision(6)<<Mtr<<" Mtr**"<<endl; cout<<" ********************************************"<<endl; cout<<" **"<<setw(15)<<right<<setprecision(6)<<SM<<" SM **"<<setw(15)<<right<<setprecision(6)<<Yds<<" Yds**"<<endl; cout<<" ********************************************"<<endl; cout<<"\n\n"; }
Partager