| 12
 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