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 118 119 120 121 122 123 124 125 126 127 128
| #include <stdio.h>
#include <stdlib.h>
#include <windows.h> //Pour une petite fonction à la fin du programme...
int main(int argc, char *argv[])
{
long resultat = 0,n1 = 0,n2 = 0,calcul = 0, choix = 1, choix1 = 0;
int continuer = 1;
printf("\t\tBiEnVeNuE\n"); //les /t, c'est mieux que la suite d'espaces !
printf("\tsur la ===XM=== calculatrice\n\n\n");
printf("Tu veux : \n 1.Faire un calcul\n 2.Quittez cette super calculette\n");
scanf("%ld", &choix);
if(choix==1)
{
printf("Tu veux choisir un type de calcul?\n");
printf("\t1. OUI\n");
printf("\t2. NON\n");
printf("Attention !!! Si tu choisis NON l'application prendra fin\n");
scanf("%ld", &choix1);
//Pourquoi faire une boucle alors que si tu appuies sur 2 tu quittes? mieux vaut vérifier la valeur de choix1 et quitter si elle est différente de 1
if (choix1==1)
{
do //La par contre, la boucle est utile: on raffiche le menu tant que l'utilisateur n'a pas fait ce qu'on lui demande
{
system("CLS"); //cette fonction sert à effacer la console, ça fait mieux ici puisque tu changes de menu. Seul défaut, elle ne fonctionne que sous Windows, mais des fonctions équivalentes existent sous les autres OS
printf ("\t\t====MENU CALCULATRICE====\n\n");
printf ("\t1.Addition\n");
printf ("\t2.Soustraction\n");
printf ("\t3.Multiplication\n");
printf ("\t4.Division\n");
printf ("Ton choix : ");
scanf ("%ld", &calcul);
continuer=1; //On remet la variable à 1 si elle a été mise à 0 dans le default
switch(calcul) //je pense qu'un switch est préférable à une succession de if ici, mais c'est comme tu veux
{
case 1:
printf ("Cool, t'as choisi l'addition (j'espere que c'est des gros nombre sinon t'es un gros noob ;) )\n"); //Le smiley, c'est juste pour le style!
break;
case 2:
printf ("Super la soustraction !!\n");
break;
case 3:
printf ("Genial la multiplication !!\n");
break;
case 4:
printf ("Top la divisions!!\n");
break;
default: //Toujours prévoir le cas où l'utilisateur ne fait pas ce qu'il devrait faire...
continuer=0; //On met la variable à 0: elle empêche de sortir de la boucle. Cette méthode est plus simple que "while(calcul!=1 && calcul!=2 && calcul!=3 && calcul!=4)", puisqu'il suffit juste de vérifier si continuer vaut toujours 1 ou non
printf("\aEh! Tu sais pas lire???\n"); //Petite phrase personnalisable, tu t'en doutes
system("PAUSE"); //Il faut mettre cette fonction ici, sinon l'écran sera effacé au prochain tour de boucle et on ne verra pas le message
break;
} //Fin du switch
} //Fin de la boucle
while(!continuer); //Equivalent à "while(continuer==0);"
//A ce stade là, on a vérifié que l'utilisateur à bien choisi une des quatre propositions
//Dans tous les cas, on demande deux chiffres, donc pas la peine de se répéter, on ne le fait qu'une fois
printf ("\nChoisi le premier nombre : \n"); //C'est plus explicite que "Choisi le nombre 1"
scanf ("%ld",&n1);
printf ("\nChoisi le deuxieme nombre : \n"); //Idem
scanf ("%ld",&n2);
//Ensuite on refait un switch pour chaque cas, mais sans boucle cette fois
switch(calcul)
{
case 1:
resultat = n1 + n2;
printf ("\nAtttends je calcule...\n%ld + %ld = %ld \n",n1,n2,resultat);
break;
case 2:
resultat = n1 - n2;
printf ("\nUne seconde...\n%ld - %ld = %ld \n",n1,n2,resultat);
break;
case 3:
resultat = n1 * n2;
printf ("Attends,attend,attend...\n%ld * %ld = %ld \n",n1,n2,resultat);
break;
case 4:
resultat = n1 / n2;
printf ("\n%ld / %ld = %ld \n",n1,n2,resultat); //Tu n'as pas mis de phrase ici...
break;
//Ici, pas besoin de default, puisqu'on a déjà contrôlé la valeur de la variable
} //Fin du switch
system("PAUSE"); //Avant d'arriver à la fin de l'application
} //Fin du if
} //Fin du premier if
//Quoi qu'on fasse, la fin est toujours la même, donc pas besoin de else
system("CLS");
printf("Cette calculette vous a ete presentee par\n\n");
printf("=:=:=:Xaevaer:=:=:=\n");
HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE); //Cette fonction est complexe pour un débutant (et n'est pas de moi). Elle sert à modifier la couleur du texte sous windows, ça fait un style!
SetConsoleTextAttribute(H,15*16+12);
printf("\t...et remix par Dreamker!\n");
SetConsoleTextAttribute(H,0*16+15);
printf("BYYYYYYYYYYYE ^^\n\n\n\n");
system("PAUSE");
return EXIT_SUCCESS; //Je préfère EXIT_SUCCESS à 0, mais en fait... on s'en fout!
}
//Et c'est fini!
//Améliorations:
//Si tu as essayé d'entrer d'autre chose que des chiffres, il risque d'y avoir un problème. Il faut donc que tu utilises la fonction fgets() plutôt que scanf()
//Tu pourrais mettre une boucle dès le début pour demander si on veut faire un autre calcul
//Tu pourrais vérifier la valeur de n2 dans le cas de la division: il faut qu'il soit différent de 0!
//Tu pourrais utiliser la librairie mathématique math.h, qui t'apportes des fonctions intéressantes pour une calculatrice: racines carrées,...
//Améliore l'esthétique, il en a bien besoin!
//Euh... ce sera déjà pas mal!
//Bonne continuation!
//Dreamker ;) |
Partager