Programme d'un distributeur de boisson gratuite (langage C)
Introduction du distributeur de boisson gratuite
Difficulté:
Ce tutorial va expliquer comment créer un petit programme en langage C pour simuler un distributeur de boisson gratuit.
C'est donc un programme sur ordinateur, qui ne distribue pas de réel boisson. L'intéret n'est pas de réaliser une machine à café, mais bel et bien de pratiquer le langage C.
La création de cette petite application est idéale pour les débutants qui souhaitent apprendre en douceur le langage C. Je vous conseil tout de même d'avoir des petites connaissance dans ce langage informatique si vous voulez comprendre tout ce que je vais citer. Si vous débutez vraiment, je vous suggère de commencer à lire le premier tutorial qui réalise un programme de rendu de monnaie.
J'ai souhaité réaliser un tutorial suffisamment expliqué pour permettre à un maximum d'entre vous de le réaliser, je vous souhaite bonne chance.
Plan du tutorial
Cahier des charges
Vous vous demandez surement pourquoi je vous pose cette question. C'est simple, pour réaliser un programme, il faut le diviser en plusieurs petites parties. Et ensuite chaque partie est assez simple à réaliser. Ce qui fait qu'un grand programme qui semble compliquer, est en réaliter facile si on le structure correctement.
Ainsi, on peut diviser les parties du programme par :
- Le programme affiche un menu avec le choix des différentes boissons proposées.
- Lorsqu'un choix à été fait. Il faut afficher un message qui indique que la boisson est prète.
- Après, il faut retourner à la première étape, et reproposer le menu principale.
Bon, voilà qui est dit. Donc lorsque vous aurez réalisé le programme vous aurez ça :
Dans cet exemple, en appuyant sur la touche "c" j'ai commandé un chocolat au lait.
J'espère vous avoir suffisament motivé, pour enfin pouvoir attaquer la réalisation de cette application.
Pratique
Bibliothèque
La première grande étape, c'est de ne pas oublier d'inclure les bibliothèque nécessaire au bon fonctionnement. Ainsi, la première chose que l'ont va réaliser, ça sera de mettre ça:
#include <stdlib.h>
#include <conio.h>
Fonction principale et initialisation des variables
Je rappel comment va être appelée la fonction principale avant de m'attaquer aux variables
{
/* le programme sera appelé ici */
}
Et maintenant on doit se poser la question :
En réaliter, on se trompe de question, puisqu'on va avoir besoin que d'un seule variable!
Effectivement, la seule variable dont on aura besoin sera une variable de type "caractère" qui servira à choisir la boisson que l'ont veut. On va appeler cette variable de cette manière :
Programme partie 1
Dans la première partie on va afficher le menu de choix des boissons. Ce ne sera pas compliqué, cela consiste juste à afficher plusieurs fonction printf.
Comme ce n'est pas dur, je vous donne le code sans vous le commenter:
printf("Faites votre choix et validez ...\n");
printf("\nCAFE NOIR <N>");
printf("\nCAFE AU LAIT <L>");
printf("\nTHE NATURE <T>");
printf("\nCHOCOLAT au LAIT <C>");
printf("\nSODA <S>");
printf("\nBIERE sans alcool <B>\n");
Programme partie 2
Voici maintenant la dernière partie où l'utilisateur va devoir cliquer sur le choix qui l'intéresse. Selon le choix de l'utilisateur il faudra alors afficher la boisson souhaitée.
Lorsque le visiteur cliquera sur la lettre correspondante à son choix, il faudrat lui afficher aussitôt la boisson qu'il veut. Donc, on va utiliser ce code, afin qu'il n'ai pas à valider son choix:
En effet, ce code va permettre de transmettre le caractère choisit à la variable i.
Pour la dernière phase, je vais vous donner le code, puis je l'expliquerais.
{
case'n': printf("\nVeuillez prendre votre CAFE NOIR !\n\n");
case'l': printf("\nVeuillez prendre votre CAFE AU LAIT !\n\n");
case't': printf("\nVeuillez prendre votre THE NATURE !\n\n");
case'c': printf("\nVeuillez prendre votre CHOCOLAT au LAIT !\n\n");
case's': printf("\nVeuillez prendre votre SODA !\n\n");
case'b': printf("\nVeuillez prendre votre BIERE sans alcool !\n\n");
Nous avons en face de nous une instruction switch.
Lorsque nous avons écrit:
A ce moment là, le switch va regarder dans chacun des case si il y a la valeur de la touche choisit par l'utilisateur.
Si l'utilisateur souhaite un café au lait par exemple, il appuyera sur la touche "L" (minuscule ou majuscule, peut importe). Lorsque le programme se lance, il regardera tout d'abord si la valeur de i est un "N", il en déduira que non et passera au case suivant. Ensuite il regardera si la valeur de i est un "n", là encore il en déduira que non.
Ce ne sera que lorsque l'utilisateur sera à la touche "L" qu'il sarrétera, et il regardera ainsi à l'intérieur, pour afficher le message correspondant à l'aide du printf.
Lorsque nous somme à "l'intérieur" du case'L', le break va nous permettre de sortir totalement de l'instruction switch sans passer par tous les autres case.
Bref, le programme passe directement de:
case'l': printf("\nVeuillez prendre votre CAFE AU LAIT !\n\n");
jusqu'à la fin du case, c'est à dire l'accolade fermante.
Pour information, si il n'y avait pas le break, le programme continurais à regarder chacun des autres case.
Programme final
Et bien mine de rien, on a finit ce programme. Voici ce qu'on obtiendra lorsque nous allons le compiler:
Faites votre choix et validez ...
CAFE NOIR <N>
CAFE AU LAIT <L>
THE NATURE <T>
CHOCOLAT au LAIT <C>
SODA <S>
BIERE sans alcool <B>
_
Et maintenant, je vais vous faire le plus grand des cadeaux, je vais vous fournir tout le code du programme. Vous allez pouvoir le tester.
#include <stdlib.h>
#include <conio.h>
int main(void)
{
while (i!='q')
{
printf("Faites votre choix et validez ...\n");
printf("\nCAFE NOIR <N>");
printf("\nCAFE AU LAIT <L>");
printf("\nTHE NATURE <T>");
printf("\nCHOCOLAT au LAIT <C>");
printf("\nSODA <S>");
printf("\nBIERE sans alcool <B>\n");
i=getche();
switch (i)
{
case'n': printf("\nVeuillez prendre votre CAFE NOIR !\n\n");
case'l': printf("\nVeuillez prendre votre CAFE AU LAIT !\n\n");
case't': printf("\nVeuillez prendre votre THE NATURE !\n\n");
case'c': printf("\nVeuillez prendre votre CHOCOLAT au LAIT !\n\n");
case's': printf("\nVeuillez prendre votre SODA !\n\n");
case'b': printf("\nVeuillez prendre votre BIERE sans alcool !\n\n");
system ("pause");
return 0;
Avez-vous remarqué l'instruction while?
L'instruction while va permettre de répéter le programme jusqu'à ce que l'utilisateur appuie sur la touche q.
Maintenant que vous avez réussi ce petit programme, l'avez-vous copié? L'avez-vous essayé?
Si vous l'avez essayé, et que vous désirez améliorer ce programme, je vous invite volontier à suivre le prochain cours pour rendre ce programme de distributeur de boisson payant, ce qui l'améliorera.
Télécharger le programme
Voici un petit tableau où vous pourrez télécharger le programme complet et son code source.
Nom | Description | exemple | programme | code en .c | code en .txt | Difficulté |
---|---|---|---|---|---|---|
Distributeur à boissons | Simule le programme d'un distributeur de boisson qui totalement gratuit. |