Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Exercice : Calculatrice

Bug: Exception non gérée : System.FormatException ...

Sujet résolu
Anonyme
    25 juin 2008 à 14:09:10

    Salut,
    Voici l'énoncé de l'exercice que j'essaie de faire :

    Citation : Pas de titre

    Image utilisateur


    Exercice 21 : Calculatrice
    Cette calculatrice, dont le menu correspond à l’image ci-dessous, devra faire en sorte que :
    - A et B soient deux entiers
    - chaque choix possible (sauf le 1 et le 7) soit traité et affiché dans une méthode différente
    - la fonction Main n’effectue aucune des tâches du menu, ni même ne l’affiche
    - l’affichage du menu est géré par une méthode qui renvoie un entier correspondant au choix de l’utilisateur
    - avant d’afficher le menu, on nettoie la console (on la vide)
    - l’utilisateur doit avoir le temps de pouvoir lire les résultats, qu’ils soient bons ou mauvais.



    Et voici ce que j'ai fais :
    using System;
    
    class MainEntryPoint
    {
        static void Main()
        {
            Calcul calculatrice = new Calcul();
            calculatrice.Go();
        }
    }
    
    
    class Calcul
    {
        public void Go()
        {
            int a=0, b=0;
            bool quitter=false;
    
            while(!quitter)
            {
                int choix = choixMenu(a, b);
                switch (choix)
                {
                    case 1:
                        {
                            Console.Write("Entrez A : ");
                            string AChaine = Console.ReadLine();
                            Console.Write("Entrez B : ");
                            string BChaine = Console.ReadLine();
    
                            if (Int32.TryParse(AChaine, out a) && Int32.TryParse(BChaine, out b))
                                Console.WriteLine("A et B ont été modifié avec succès !");
                            else
                                Console.WriteLine("Echec de modification de A et B...");
                        }
                        break;
                    case 2:
                        addition(a, b);
                        break;
                    case 3:
                        soustraction(a, b);
                        break;
                    case 4:
                        multiplication(a, b);
                        break;
                    case 5:
                        division(a, b);
                        break;
                    case 6:
                        modulo(a, b);
                        break;
                    case 7:
                        Console.WriteLine("Merci d'avoir utilisé notre calculatrice !");
                        quitter = true;
                        break;
                }
                Console.ReadLine();
            }
    
        }
    
        private int choixMenu(int a, int b)
        {
            Console.Clear();
            Console.WriteLine("A = {0}, B = {1}\n", a, b);
            Console.WriteLine("-----------------------------------------------------------");
            Console.WriteLine("--||---------------- MENU PRINCIPALE ------------------||--");
            Console.WriteLine("--||-- 1- Modifier A et B                            --||--");
            Console.WriteLine("--||-- 2- A + B                                      --||--");
            Console.WriteLine("--||-- 3- A-B                                        --||--");
            Console.WriteLine("--||-- 4- A*B                                        --||--");
            Console.WriteLine("--||-- 5- A/B                                        --||--");
            Console.WriteLine("--||-- 6- A%B                                        --||--");
            Console.WriteLine("--||-- 7- Quitter                                    --||--");
            Console.WriteLine("-----------------------------------------------------------\n\n");
    
            Console.Write("Votre choix : ");
            string choixString = Console.ReadLine();
            int choix;
            if (Int32.TryParse(choixString, out choix))
                return choix;
    
            return 0;
        }
    
        private void addition(int a, int b)
        {
            int resultat = a + b;
            Console.WriteLine("{0} + {1} = {3}", a, b, resultat);
        }
        private void soustraction(int a, int b)
        {
            int resultat = a - b;
            Console.WriteLine("{0} - {1} = {3}", a, b, resultat);
        }
        private void multiplication(int a, int b)
        {
            int resultat = a * b;
            Console.WriteLine("{0} x {1} = {3}", a, b, resultat);
        }
        private void division(int a, int b)
        {
            if (b == 0)
                Console.WriteLine("Impossible de diviser par 0, révisez vos leçons de maths !");
            else
            {
                int resultat = a / b;
                Console.WriteLine("{0} / {1} = {3}", a, b, resultat);
            }
        }
        private void modulo(int a, int b)
        {
            if (b == 0)
                Console.WriteLine("Impossible de diviser par 0, révisez vos leçons de maths !");
            else
            {
                int resultat = a % b;
                Console.WriteLine("{0} % {1} = {3}", a, b, resultat);
            }
        }
    }
    


    En exécutant le programme et en choisissant une action (sauf la 1 et 7) il plante et me sort un message d'erreur dans la console :
    Image utilisateur


    Merci d'avance pour votre aide :)
    mecak
    • Partager sur Facebook
    • Partager sur Twitter
      25 juin 2008 à 15:51:01

      Salut,
      dans tes méthodes (addition,soustraction...), il y'a cette ligne

      Console.WriteLine("{0} + {1} = {3}", a, b, resultat); qui n'est pas bonne

      La variable {3} n'a pas été défini, donc met un {2} à la place du {3}



      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        25 juin 2008 à 16:40:07

        Salut,
        Je savais que c'était quelque chose de simple à modifier >_<
        Merci beaucoup ça marche à merveille maintenant !
        ++
        • Partager sur Facebook
        • Partager sur Twitter

        [C#] Exercice : Calculatrice

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown