Simulateur de Quiz à Choix Multiples avec Score Final

Simulateur de quiz à choix multiples en C# avec score final, validation robuste des réponses et code extensible pour une expérience console optimale.

Brève Introduction

Simulateur de Quiz à Choix Multiples avec Score Final (csharp)
DESCRIPTION :
Application console en C# qui simule un quiz à choix multiples. L'utilisateur répond à une série de questions, reçoit un retour immédiat et obtient à la fin le score total. Le code est structuré pour être facilement extensible et robuste dans la gestion des entrées.

NOTES SUPPLÉMENTAIRES :
Le programme est prêt à l'emploi en environnement console. Pour l'exécuter, il suffit de compiler avec un compilateur C# moderne et de lancer l'exécutable. Le code est commenté en italien pour faciliter la compréhension et la personnalisation.

EXPLICATIONS :
- La classe Question encapsule les données d'une question et fournit une méthode pour vérifier la réponse.
- La méthode Main gère la boucle du quiz, affichant les questions, collectant et validant les entrées utilisateur.
- À la fin du quiz, le score total et le pourcentage de réponses correctes sont affichés.
- L'entrée utilisateur est validée pour s'assurer qu'il s'agit d'un choix valide parmi les options disponibles.

Code d'Exemple : csharp

using System;
using System.Collections.Generic;

namespace QuizSimulatore
{
    // Classe représentant une seule question du quiz
    public class Question
    {
        public string Testo { get; set; } // Texte de la question
        public List<string> Opzioni { get; set; } // Liste des options de réponse
        public int IndiceRispostaCorretta { get; set; } // Index (base 0) de la réponse correcte

        // Constructeur
        public Question(string testo, List<string> opzioni, int indiceRispostaCorretta)
        {
            Testo = testo;
            Opzioni = opzioni;
            IndiceRispostaCorretta = indiceRispostaCorretta;
        }

        // Méthode pour vérifier si la réponse donnée est correcte
        public bool VerificaRisposta(int rispostaUtente)
        {
            return rispostaUtente == IndiceRispostaCorretta;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            // Liste des questions du quiz
            List<Question> domande = new List<Question>
            {
                new Question(
                    "Quel est le langage de programmation principal utilisé dans cet exemple ?",
                    new List<string> { "Java", "Python", "C#", "JavaScript" },
                    2 // C# est la troisième option (index 2)
                ),
                new Question(
                    "Quelle méthode est utilisée pour lire l'entrée depuis la console ?",
                    new List<string> { "Console.ReadLine()", "Console.Write()", "Console.Read()", "Console.WriteLine()" },
                    0
                ),
                new Question(
                    "Comment définit-on une liste en C# ?",
                    new List<string> { "List<>", "ArrayList", "LinkedList", "Dictionary" },
                    0
                ),
                new Question(
                    "Quel mot-clé est utilisé pour déclarer une classe en C# ?",
                    new List<string> { "function", "class", "def", "var" },
                    1
                ),
                new Question(
                    "Quelle méthode est utilisée pour vérifier si la réponse est correcte ?",
                    new List<string> { "CheckAnswer()", "VerificaRisposta()", "IsCorrect()", "AnswerCheck()" },
                    1
                )
            };

            int punteggio = 0; // Compteur des réponses correctes

            Console.WriteLine("Bienvenue au Quiz à Choix Multiples !\n");

            // Boucle sur toutes les questions
            for (int i = 0; i < domande.Count; i++)
            {
                Question q = domande[i];
                Console.WriteLine($"Question {i + 1} : {q.Testo}");

                // Affiche les options numérotées
                for (int j = 0; j < q.Opzioni.Count; j++)
                {
                    Console.WriteLine($"  {j + 1}. {q.Opzioni[j]}");
                }

                int rispostaUtente = -1;
                bool inputValido = false;

                // Boucle tant que l'utilisateur n'entre pas une entrée valide
                while (!inputValido)
                {
                    Console.Write("Entrez le numéro de votre réponse : ");
                    string input = Console.ReadLine();

                    // Essaie de convertir l'entrée en entier
                    if (int.TryParse(input, out int scelta))
                    {
                        // Vérifie que le choix est dans la plage valide
                        if (scelta >= 1 && scelta <= q.Opzioni.Count)
                        {
                            rispostaUtente = scelta - 1; // Convertit en index base 0
                            inputValido = true;
                        }
                        else
                        {
                            Console.WriteLine("Erreur : entrez un numéro correspondant à une des options.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Erreur : entrée non valide, entrez un numéro.");
                    }
                }

                // Vérifie la réponse et met à jour le score
                if (q.VerificaRisposta(rispostaUtente))
                {
                    Console.WriteLine("Bonne réponse !\n");
                    punteggio++;
                }
                else
                {
                    Console.WriteLine($"Mauvaise réponse. La bonne réponse était : {q.Opzioni[q.IndiceRispostaCorretta]}\n");
                }
            }

            // Affiche le score final
            Console.WriteLine($"Quiz terminé ! Vous avez répondu correctement à {punteggio} questions sur {domande.Count}.");
            double percentuale = (double)punteggio / domande.Count * 100;
            Console.WriteLine($"Votre score est : {percentuale:F2}%");

            Console.WriteLine("Appuyez sur une touche pour quitter...");
            Console.ReadKey();
        }
    }
}
×
×
×
Veux-tu régénérer la réponse ?
×
Exporter le chat
Choisissez le format d'export
⏳ Generazione PDF in corso…
Allegati
×
⚠️ Vous êtes sur le point de fermer le chat et de passer au générateur d’images. Si vous n’êtes pas connecté, vous perdrez notre conversation. Confirmez-vous ?
👁 Tu consultes une discussion partagée en mode temporaire. Elle ne sera pas enregistrée.
💬
×
Prompts enregistrés
×
Note privée
×
Étiquette
×
Rechercher dans toutes les discussions
×
Vos insights
Analyse en cours…
×
Préférences IA
Nom de l'assistant 30
Longueur des réponses
Modèle IA
Réponses structurées
Inclure des exemples
Utiliser des emojis
Guide-moi, ne résous pas Des indices et des questions plutôt que la réponse toute faite
Plus de réglages →
×
Partager cette discussion
Toute personne ouvrant ce lien pourra consulter la discussion ou l'ajouter à son profil comme discussion personnelle.
⚠️ Attention : les pièces jointes de la discussion seront également partagées. Qui l'ajoutera recevra une copie des fichiers dans son dossier.
Discussion partagée
Quelqu'un a partagé une discussion avec toi. Veux-tu seulement la consulter ou l'ajouter à tes discussions ?
⚠️ Attention : les pièces jointes de la discussion seront également partagées. Qui l'ajoutera recevra une copie des fichiers dans son dossier.
×

📌 Messages enregistrés

Chargement...

×

Historique des discussions

programmes-exemples · HISTORIQUE DU CHAT

Chargement...

Préférences IA

×
  • 🟢 BasiqueRéponses rapides et essentielles pour étudier
  • 🔵 MoyenQualité supérieure pour étude et programmation
  • 🟣 AvancéRaisonnement complexe et analyses détaillées
Expliquer les étapes

Qu'est-ce qu'il faut ?

Logiciel :
  • .NET 6.0 ou supérieur (pour exécuter l'application console C#)
  • Aucune dépendance externe requise
  • Configuration : aucune configuration particulière nécessaire
Matériel :
  • Aucun matériel requis (application console)
Structure du code :
  • Classe Question : représente une question avec texte, options et réponse correcte
  • Gestion des entrées utilisateur avec validation robuste
  • Boucle principale pour itérer sur les questions et calculer le score

Sujets Similaires

Affichage des Nombres de 1 à 1 avec une Boucle For
Exemple simple en C# avec une boucle for pour afficher les nombres de 1 à 1, idéal pour débutants en programmation console .NET.
Devinez le Nombre (Version Simple avec Nombre Fixe)
Programme C# simple pour deviner un nombre fixe, idéal pour débutants, avec explications claires et utilisation de .NET 6. ou supérieur.
Conversion de Chaîne en Entier avec Gestion Basique des Erreurs
Exemple C# simple pour convertir une chaîne en entier avec TryParse, gérant les erreurs sans exceptions, idéal pour débutants en conversion sécurisée.
Menu Textuel Simple avec Switch Case en C#
Exemple simple de menu textuel en C# utilisant switch case pour gérer les choix utilisateur, idéal pour débutants en programmation C#.
Liste Simple de Noms avec Affichage dans la Console
Programme C# simple pour débutants : créez et affichez une liste de noms dans la console avec .NET 6+, utilisant List<string> et boucle foreach.
Carnet d’Adresses en Console avec Ajout et Recherche de Contacts
Application console C# simple pour gérer un carnet d’adresses avec ajout et recherche de contacts, idéale pour débutants en programmation .NET 6.
Gestion d’une Liste de Tâches (To-Do) avec Complétion en Console
Application console C# pour gérer une liste de tâches To-Do avec ajout, affichage et complétion, simple et sans dépendances externes.
Convertisseur de Devise avec Taux de Change Saisis par l’Utilisateur
Application console C# pour convertir des devises avec taux de change personnalisés, gestion dynamique et validation des entrées utilisateur.