[C++] Calculette

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Jumble

Membre
Feb 28, 2012
86
0
311
Marseille
Nom : C++
Type : Programation
Niveau : Débutant
Pré-requis : Code block
----> Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Objectifs: Creer une calculette
Temps requis : 20 minutes max

Bonjour !

Aujourd'hui, vous allez programmer une petite calculatrice et j'essayerais de faire en sorte que vous comprenez le code qui est écrit.
________________________________________ ____
1er partie

A propos de la calculette que nous allons réaliser :

La calculette que nous allons réaliser ne ressemble pas à la calculette de windows qui est en mode fenêtre (accessible par démarrer->Tous les programmes->Accessoires->Calculatrice) mais ce sera une calculette en mode console. Pourquoi le mode console et pas le mode fenêtre ? Parce que faire un programme en mode fenêtre, c'est assez compliqué et dur, c'est pour ça que je trouve que le mode console est le plus facile pour commencer.

Voilà une capture d'écran de la calculette que nous allons réaliser:

32226472C.png



A propos du logiciel avec lequel nous allons programmer:

Nous coderons sur Code::Bloc parce que il y a des tutos sur un site populaire SDZ

Bon, maintenant qu'on a terminé , on va commencer la programmation !

________________________________________ ____
2ème partie

D'abord ouvrez Code block et créer un nouveau fichier source,
Vous mettez ça :

#include <iostream> // iostream permet d'utiliser les fonctions "cin" et "cout"

/* Pour ne pas à avoir à mettre std:: devant chaque cout */
using namespace std;

/* Fonction calcul(), c'est ce qui sert à calculer les nombres demandés */
int calcul(int nb1, int nb2, char operat)
{
switch (operat)
{
case '+' : return (nb1 + nb2); // Si operate vaut '+', alors on ajoute les 2 nombres
case '-' : return (nb1 - nb2); // Si operate vaut '-', alors on soustrait les 2 nombres
case '*' : return (nb1 * nb2); // Si operate vaut '*', alors on multiplie les 2 nombres
case '/' : return (nb1 / nb2); // Si operate vaut '/', alors on divise les 2 nombres

// Au cas, où l'utilisateur ne mettrai ni '+', ni '-', ni '*', ni '/' ...
default :
cout << endl << endl << "Vous n'avez entre ni '+', ni '-', ni '*', ni '/', veuillez recommencer." << endl;
return 0; // ... On lui indique l'erreur et on renvoie au début
}
}

/* Fonction initial(), qui initialise le tout et renvoie un caractère 'o' ou 'n'
en fonction de si l'utilisateur veut recommencer ou pas */
char initial(void)
{
int nb_1, nb_2, resultat;
char operateur, boleen; // boleen va contenir le 'o' ou le 'n' qui indiquera si l'utilisateur veut recommencer ou pas


// On demande à l'utilisateur deux nombres et un opérateur
cout << endl << "Entrez le premier nombre : ";
cin >> nb_1;
cout << endl << "Entrez le second nombre : ";
cin >> nb_2;
cout << endl << "Maintenant, entrez l'operateur ('+', '-', '*' ou '/') : ";
cin >> operateur;


// On fait le calcul grâce à le fonction calcul() définie plus haut
resultat = calcul(nb_1, nb_2, operateur);


// On vérifie que l'utilisateur a bien rentré un bon opérateur grâce au "return 0; de la fonction calcul()
if (resultat != 0)
{
cout << endl << endl << "Le resultat est " << nb_1 << " " << operateur << " " << nb_2 << " = " << resultat << endl;
cout << endl << "Voulez-vous recommencer (o/n)? ";
cin >> boleen;
return boleen; // On retourne la valeur entrée par l'utilisateur ('o' ou 'n', normalement
}

// Si l'utilisateur n'as pas rentré d'opérateur ou un mauvais opérateur ...
else return 'o'; // ... on fait comme si l'utilisateur voulait refaire une opération, donc 'o' pour recommencer sans donner le résultat
}

/* La fonction principale "main" qui démarre et qui
contient la boucle qui fait tourner notre programme */
int main(void)
{
char restart;

// Messages de bienvenues :
printf("Bienvenue, voici la calculatrice fabriquee par Jumble\n\n");
printf("Bien sur, elle n'est pas super puissante et sait seulement calculer avec des \nnombres entiers. Ah oui, n'entrez PAS de lettre au lieu d'un chiffre\n");

// Boucle du programme en "do ... while" car la boucle doit être executée au moins une fois
do
{
restart = initial(); // On initialise ... (restart va être égal à boleen)
} while (restart == 'o'); // ... et on continue à retarter tant que l'utilisteur a répondu 'o'

return 0; // L'utilisateur a rentré 'n' donc il veut quitter le programme et on fait un return 0; pour quitter le programme
}


C'est bon ! Vous avez votre calculatrice ! Passons à la partie suivante.

________________________________________ ____
3ème partie

Maintenant, je vais vous expliquer un peu le code :
Examinons ceci :

printf("Bienvenue, voici la calculatrice fabriquee par Jumble\n\n");

printf veut dire "afficher", on l'utilise pour afficher des messages. Pour l'utiliser, il faudra mettre : printf("texte à afficher");

Vous avez vu à la fin le "\n", c'est ce qui permet de revenir à la ligne, si vous mettez 2 "\n", le programme reviendra 2 fois à la ligne.
C'est facile pour reperer les textes qui vont s'afficher sur l'écran, ils sont tous de couleur rouge dans les lignes de code.

Maintenant, ça :

restart = initial(); // On initialise ... (restart va être égal à boleen)
} while (restart == 'o'); // ... et on continue à retarter tant que l'utilisteur a répondu 'o'

Comment le programme reconnait le "o" que l'utilisateur à entré pour recommencer ? Et bien parce que dans le C++,le "==" veut dire "égal". Si la réponse est égal à "o", le programme recommence.