Elektronique - Cours d'électronique

Programme d'un distributeur de boisson gratuite (langage C)

icône imprimante Imprimer cette page

Introduction du distributeur de boisson gratuite

Difficulté: etoile pleine

icone café

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. smiley

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. smiley

Plan du tutorial

retour en haut

Cahier des charges

Est-ce que vous connaissez la phrase "Diviser pour reigner"?

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 :

  1. Le programme affiche un menu avec le choix des différentes boissons proposées.
  2. Lorsqu'un choix à été fait. Il faut afficher un message qui indique que la boisson est prète.
  3. 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 :

exemple du programme calcul d'une note moyenne en langage c

Dans cet exemple, en appuyant sur la touche "c" j'ai commandé un chocolat au lait. smiley

J'espère vous avoir suffisament motivé, pour enfin pouvoir attaquer la réalisation de cette application. smiley

retour en haut

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 <stdio.h>
#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

int main(void)
{
/* le programme sera appelé ici */
}

Et maintenant on doit se poser la question :

Quels sont les variables que l'ont va utiliser?

En réaliter, on se trompe de question, puisqu'on va avoir besoin que d'un seule variable! smiley
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 :

char i;

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("DISTRIBUTEUR DE BOISSONS\n");
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:

i=getche();

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.

switch (i)
{
case'N':
case'n': printf("\nVeuillez prendre votre CAFE NOIR !\n\n");
break;
case'L':
case'l': printf("\nVeuillez prendre votre CAFE AU LAIT !\n\n");
break;
case'T':
case't': printf("\nVeuillez prendre votre THE NATURE !\n\n");
break;
case'C':
case'c': printf("\nVeuillez prendre votre CHOCOLAT au LAIT !\n\n");
break;
case'S':
case's': printf("\nVeuillez prendre votre SODA !\n\n");
break;
case'B':
case'b': printf("\nVeuillez prendre votre BIERE sans alcool !\n\n");
break;
}

Nous avons en face de nous une instruction switch.

Lorsque nous avons écrit:

switch (i)

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.

Vous vous demandez surement à quoi sert le "break".

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':
case'l': printf("\nVeuillez prendre votre CAFE AU LAIT !\n\n");
break;

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.

retour en haut

Programme final

Et bien mine de rien, on a finit ce programme. Voici ce qu'on obtiendra lorsque nous allons le compiler:

DISTRIBUTEUR DE BOISSONS
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. smiley

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main(void)
{
char i;

while (i!='q')
{
printf("DISTRIBUTEUR DE BOISSONS\n");
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':
case'n': printf("\nVeuillez prendre votre CAFE NOIR !\n\n");
break;
case'L':
case'l': printf("\nVeuillez prendre votre CAFE AU LAIT !\n\n");
break;
case'T':
case't': printf("\nVeuillez prendre votre THE NATURE !\n\n");
break;
case'C':
case'c': printf("\nVeuillez prendre votre CHOCOLAT au LAIT !\n\n");
break;
case'S':
case's': printf("\nVeuillez prendre votre SODA !\n\n");
break;
case'B':
case'b': printf("\nVeuillez prendre votre BIERE sans alcool !\n\n");
break;
}
}

system ("pause");
return 0;
}
Attention, il y a quelque chose de rajouter dans ce grand code source!

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.

retour en haut

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. exemple programme programme en .c programme en .txt etoile pleine
retour en haut