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";
} |