Пример #1
0
        /// <summary>
        /// Retourne une chaine de caractère pour l'affichage du calcul avec en paramètre,
        /// si l'on souhaite ajouter à la chaine la réponse de l'utilisateur.
        /// </summary>
        /// <param name="afficherResultat">Ajouter la réponse à la chaine de caractère</param>
        /// <returns>Le calcul sous forme de chaine de caractère</returns>
        public string construireCalcul(bool afficherResultat)
        {
            // Déclaration du string builder
            StringBuilder calculString = new StringBuilder();

            // Ajout des informations du calcul
            calculString.Append(operateurUn);
            calculString.Append(" ");
            calculString.Append(typeOperation.GetDescription());
            calculString.Append(" ");
            calculString.Append(operateurDeux);
            calculString.Append(" = ");

            // D'après le boolean, ajoute la réponse de l'utilisateur a la chaine
            if (afficherResultat)
            {
                calculString.Append(reponseUtilisateur);
            }

            // Retourne la chaine de caractères
            return(calculString.ToString());
        }
Пример #2
0
        /// <summary>
        /// Calcul et affiche les différentes calculs et les statistiques pour le résultat du questionnaire
        /// </summary>
        static void LancerSequenceCalcul()
        {
            int    nbrJuste   = 0;              // Compteur de réponse correct
            Random generateur = new Random();   // Genérateur aléatoire de nombre

            // Affiche le message de sélection du menu
            AfficherChoixMenu(Menu.LANCEMENT);

            // Boucle pour le nombre de calcul et le comptage  des lignes
            for (int numLigne = 1; numLigne < (nbrCalcul + 1); numLigne++)
            {
                // Chargement aléatoire des valeurs
                int valeur1 = generateur.Next(1, (int)(1 * Math.Pow(10, nbrOperande)));
                int valeur2 = generateur.Next(1, (int)(1 * Math.Pow(10, nbrOperande)));

                // Chargement de l'opération (En cas m, chargement aléatoire)
                TypeOperation operateur = typeOperation;
                if (operateur == TypeOperation.ALEATOIRE)
                {
                    operateur = (TypeOperation)generateur.Next(Enum.GetValues(typeof(TypeOperation)).Cast <int>().Min() + 1, Enum.GetValues(typeof(TypeOperation)).Cast <int>().Max() - 1);
                }

                // Chargement du résutat
                int resultat = CalculerResultat(valeur1, valeur2, operateur);

                // Variable de la saisie de l'utilisateur
                int valeurUtilisateur;

                // Boucle pour la saisie d'une lettre
                bool erreurSaisie = true;
                do
                {
                    // Ecrit le calcul
                    Console.Write("   No {0} : {1} {2} {3} = ", numLigne, valeur1, operateur.GetDescription(), valeur2);

                    // TryParse de la saisie de l'utilisateur
                    bool saisieValide = int.TryParse(Console.ReadLine(), out valeurUtilisateur);

                    // Erreur si invalide
                    if (saisieValide)
                    {
                        erreurSaisie = false;
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.WriteLine("\t Veuillez saisir un nombre !");
                        Console.ResetColor();
                    }
                } while (erreurSaisie);

                // Test si le résultat est correct
                if (resultat == valeurUtilisateur)
                {
                    nbrJuste++;
                    Console.ForegroundColor = ConsoleColor.DarkGreen;
                    Console.WriteLine("\t Correct !");
                    Console.ResetColor();
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.DarkRed;
                    Console.WriteLine("\t Incorrect ! Réponse : {0}", resultat);
                    Console.ResetColor();
                }
            }

            // Affiche les statistique de la partie
            Console.WriteLine();
            Console.WriteLine("  Nombre de calculs : {0}", nbrCalcul);
            Console.WriteLine();
            Console.WriteLine("  Nombre de calcul corrects : {0}", nbrJuste);
            Console.WriteLine("  Nombre de calcul incorrects : {0}", nbrCalcul - nbrJuste);
            Console.WriteLine();
            Console.WriteLine("  Pourcentage de réponse correct : {0}%", (((double)nbrJuste / nbrCalcul) * 100));
            Console.WriteLine();

            // Affiche une pause
            AfficherPause();
        }
Пример #3
0
        /// <summary>
        /// Affiche le menu de l'application avec les valeurs pour chacun des paramètres de l'application.
        /// </summary>
        static void AfficherMenu()
        {
            // Affiche l'en-tete
            AfficherEnTete("Menu");

            // Affiche le menu avec les valeurs actuelles
            Console.WriteLine("  1. {0} <{1}>", Menu.SAISIE_NOMBRE_OPERANDE.GetDescription(), nbrOperande);
            Console.WriteLine("  2. {0} <{1}>", Menu.SAISIE_OPERATION_DESIRE.GetDescription(), typeOperation.GetDescription());
            Console.WriteLine("  3. {0} <{1}>", Menu.SAISIE_NOMBRE_CALCUL.GetDescription(), nbrCalcul);
            Console.WriteLine("  4. {0}", Menu.LANCEMENT.GetDescription());
            Console.WriteLine("  5. {0}", Menu.QUITTER.GetDescription());
            Console.WriteLine();

            // Affiche une séparation
            AfficherLigneSeparation();
            Console.WriteLine();
        }