/// <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()); }
/// <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(); }
/// <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(); }