Le programme n´en est qu´à son début, je fais les fonctions les unes après les autres, mais, voila quand mm le programme : il s´agit d´un monnayeur.
- include <stdio.h>
- include <stdlib.h>
- include <time.h>
typedef struct { int valeur;
int quantite;
}Tunite;
typedef struct { Tunite tab[8];
int somme;
}Tcaisse;
void Initialisation(Tcaisse*);
void Saisie(int *,int *,Tcaisse*);
int main(void)
{
Tcaisse macaisse;
int valeur=0;
int monnaie=0;
Initialisation(&macaisse);
srand((int)time(NULL));
Saisie(&valeur,&monnaie,&macaisse);
getchar();
}
void Initialisation(Tcaisse *caisse)
{
caisse->tab[0].valeur=1;
caisse->tab[1].valeur=2;
caisse->tab[2].valeur=5;
caisse->tab[3].valeur=10;
caisse->tab[4].valeur=20;
caisse->tab[5].valeur=50;
caisse->tab[6].valeur=100;
caisse->tab[7].valeur=200;
caisse->tab[0].quantite=30;
caisse->tab[1].quantite=30;
caisse->tab[2].quantite=30;
caisse->tab[3].quantite=30;
caisse->tab[4].quantite=30;
caisse->tab[5].quantite=30;
caisse->tab[6].quantite=30;
caisse->tab[7].quantite=30;
}
void Saisie(int *prix, int *somme, Tcaisse *coffre)
{
int choix,valeur,nombre,tampon,diff;
somme=0;
prix=rand()%60;
printf("Le prix est de : %d centimes.\n\n",prix);
do
{
printf("Que voulez-vous faire ?\ n");
printf("1. Rajouter des pièces\n");
printf("2. Passer a l´etape suivante\n");
scanf("%d",&choix);
switch(choix)
{
case 1 : do
{
do
{
printf("Les pieces a ajouter sont de quelles valeurs ?\ n1. 1centime\n2. 2 centimes\n3. 5 centimes\n4. 10 centimes\n5. 20 centimes\n6. 50 centimes\n7. 1 euros\n8. 2 euros\n");
fflush(stdin);
scanf("%d",&valeur);
}while((valeur<0)||(valeur>9));
do
{
printf("\nCombien de ces pieces sont a ajouter ?" );
fflush(stdin);
scanf("%d",&nombre);
}while((nombre<0)||(nombre>1000));
printf("La somme initiale : %d\n",somme);
tampon=somme;
somme=coffre->tab[valeur-1].valeur*nombre;
printf("Valeur intermediare : %d\n",somme);
somme=somme+tampon;
printf("dans le tableau : %d\n",coffre->tab[valeur-1].valeur);
printf("le nombre multiple : %d\n",nombre);
printf("La somme apres calcul : %d\n",somme);
printf("Le prix : %d\n",prix);
diff=prix-somme;
printf("La difference : %d\n",diff);
if(somme<prix) printf("Il manque %d centimes\n",prix-somme);
}while(somme>=prix);
break;
case 2 : break;
}
}while(valeur==1);
}