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
|
// inclusions des fichiers d'entete nécessaires
#include<iostream>
#include<iomanip>
#include<cmath>
// je n'aime personnellement que médiocrement l'utilisation
// de using namespace... mais bon, c'est valide ;)
// cela indique que l'on utilise ce qui se trouve dans l'espace de nommage
// std (en gros, l'espace de nommage de la STL ;))
using namespace std;
//Pour que main connaisse les différentes fonctions, il faut les déclarer
// avant d'entrer dans main (ce pourrait aussi etre fait par
// inclusion d'un fichier d'entete qui contiendrait les déclarations ;) )
// ou, carrément, il est envisageable de définir directement les
// fonctions (quoi que moins lisible :P)
//la fonction menu
int menu();
//NOTA: la déclaration (ou la définition) des fonctions de calcule d'aire
// et de volume aurait pu etre retardée jusquà au plus tard avant
// la définition de menu (vu que c'est elle qui doit les connaitre)
// mais il est toujours bon de déclarer toutes les fonctions ensemble
//la fonction de calcul de l'aire
void calculeAire();
//la fonction de calcule du volume
void calculeVolume();
// la définition de la fonction principale
//Si possible, on préfère définire les valeurs constantes une bonne fois
//pour toutes pour éviter les "valeurs magiques"
//PI a peu de chances de devoir etre modifié, mais ce n'est pas forcément
//le cas de toutes les valeurs constantes ;)
#define PI=3.14151926
int main()
{
//TIP: Tant qu'à faire, il est préférable de ne déclarer
// les variables que quand on peut leur donner une valeur valide ;)
// on peut très bien initialiser une variable avec le résultat d'une
// fonction...
// Ce menu n'aura un sens que si on a la possibilité d'effectuer plusieurs
// fois le test, raison de la boucle "do while"
do
{
//la boucle do...while est effectuée au minimum une fois, et on teste,
//apres l'exécution s'il est nécessaire d'y retourner
int choix=menu();
switch (choix)
{
case 1: //l'utilisateur a choisi de calculer la surface
calculeAire();
break;
case 2: //l'utilisateur a choisi de calculer le volume
calculeVolume();
break;
case 0: //l'utilisateur a choisi de quitter
cout<<"on quitte"<<endl;
}while(choix!=0);//force à retourner dans la boucle tant que
// l'utilisateur n'a pas choisi de quitter
//renvoie le code "succes" et quitte
return 0;
}
int menu()
{
//Cette fonction affiche le menu...
//comme l'utilisateur doit toujours etre considéré comme
// un imbécile distrait, il y a lieu de prendre des mesures pour s'assurer
// qu'il a effectué un bon choix ;)
int choix;
do
{
cout << " 1: calculeAire" << endl;
cout << " 2: calculeVolume " << endl;
cout << " 0: Quitter " << endl;
cout << " votre choix " << endl;
cin >> choix;
// cette boucle sera effectuée jusqu'à ce que le choix soit valide
// on commence par s'assurer que l'utilisateur introduit bien un
// chiffre
if(!(cin>>choix))
{
//l'utilisateur n'a pas introduit un chiffre
cout<<"veuillez introduire un chiffre, uniquement"<<endl;
//par sécurité, on force choix à une valeur erronée
choix=10;//aurait pu etre n'importe quoi sauf 0,1 ou 2 ;)
}
else if(choix<0 ||choix>2)
{
//l'utilisateur a introduit un chiffre, mais autre que 0,1 ou 2 :P
cout<<"veuilez choisir entre 0, 1 ou 2 uniquement"<<endl;
}
}while(choix>=0 && choix <=2);//Tant qu'on n'est pas dans la bonne
//fourchette, on recommence :P
return choix;
}
//définition de la fonction qui calcule la sufrace
void calculeAire()
{
// la fonction gere l'affichage et l'introduction du rayon...
// d'autres possibilités étaient envisageables ;)
cout << "Entrez le rayon (en centimetres) de la sphere?"
<< setw(10) << "cm" <<endl;
double rayon
cin >> rayon;
//on aurait pu éviter l'utilisation de la variable aire, mais bon...
double aire= 4 * PI * pow(rayon,2);
cout << "L'aire du sphere est:" << setw(12) << aire << endl << endl;
}
//définition de la fonction qui calcule le volume
void calculeVolume()
{
cout << "Entrez le rayon (en centimetres) de la sphere?"
<< setw(10) << "cm" <<endl;
double rayon
cin >> rayon;
//idem que pour aire ;)
double volume = 4 * PI * pow(rayon,3)/3;
cout << "Le volume de la sphere est:" << setw(10) << volume
<< endl << endl;
} |
Partager