IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Stocker des questions et des réponses dans un programme de quizz


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 1
    Par défaut Stocker des questions et des réponses dans un programme de quizz
    Bonjour à tous.

    Pour mon projet de premier semestre, nous devons créer un jeu comme "qui veut gagner des millions" en C/C++, avec la bibliothèque ALLEGRO5.

    Le problème est que nous ne savons pas comment stocker les questions et les réponses (et la bonne réponse), et pour ensuite les appeler et les afficher dans une zone prédéfinie (les cases des questions).

    Pourriez-vous nous aider à y voir plus clair s'il vous plaît ?

    Bonne journée.

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Bonjour,

    Premièrement, ce sujet n'est pas dans le bon topic (débuter serait pas mal).

    Pour coder en C, il faut se donner les bons outils.
    le C propose des tas d'outils primitifs comme les entiers, les pointeurs, les opérations mathématiques.
    Il propose un petit ensembe d'outils plus pratiques, comme les fonctions de la bibliothèque standard (comme fopen() pour ouvrir un fichier)

    Enfin, il permet au développeur de créer ses outils, via les fonctions et les structures (ainsi que les énumérations et unions)

    Dans votre cas, vous devez vous fournir un vocabulaire de base.
    Votre programme doit contenir:
    • Un type représentant une question est ses réponses, et un moyen de savoir quelle est la bonne. Ca sera une structure, vu qu'il y a plusieurs parties,
    • une fonction pour compter les réponses possibles
    • une autre pour les lister
    • une troisième pour savoir si une des réponses est la bonne
    • très importante: deux fonctions pour créer et détruire une telle structure.


    Par ailleurs, vous envisagez de stocker les questions et réponses en dehors du programme. C'est une bonne idée, mais il faut un peu plus d'outils.
    Il faut choisir une forme au fichier, et le plus simple, c'est d'en faire un.
    Par exemple, ainsi:
    ?Quel est l'age du capitaine?
    vieux
    jeune
    *42 ans
    je ne sais pas
    ?Quelle est la capitale de la France?
    Berlin
    Londres
    *Paris
    Viennes
    
    Une fois fait, vous pouvez écrire deux fonctions chargées de lire et écrire des questions depuis/vers le fichier.

    Avec cela, votre programme deviendra plus simple.

  3. #3
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    schizo mode on:
    Si par contre vous faites du C++, le problème est très légèrement différent.

    Plutot qu'avoir une structure avec des fonctions à côté, vous aurez une classe avec des fonctions membres.
    Notemment, un constructeur et un destructeur

  4. #4
    Membre confirmé
    Homme Profil pro
    Responsable ingénierie des logiciels - Recherche alternance
    Inscrit en
    Novembre 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable ingénierie des logiciels - Recherche alternance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 68
    Par défaut
    Ma réponse ne peut pas être plus complète que celle de "leternel" , cependant je suis surpris quand je vois :
    deux fonctions pour créer et détruire une telle structure.


    Détruire ok pas de problème, mais il n'y a pas besoin de fonction dont le but serait la création de la structure.
    Sa simple déclaration en tant que type, puis son initialisation suffit pour une utilisation de ce genre.

    A moins que par créer, tu entendais initialiser ...

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 837
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 837
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par leternel Voir le message
    Par ailleurs, vous envisagez de stocker les questions et réponses en dehors du programme...
    Ca je n'ai pas vu qu'il l'ait écrit...

    Citation Envoyé par Tom_Rgd Voir le message
    Le problème est que nous ne savons pas comment stocker les questions et les réponses (et la bonne réponse), et pour ensuite les appeler et les afficher dans une zone prédéfinie (les cases des questions).
    Une structure serait très appropriée
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct {
        char* text;
        char* choix[4];
        unsigned short reponse;
    } t_question;

    Puis un tableau contenant l'ensemble des questions... avec bien entendu une sentinelle ce qui évitera d'avoir à mémoriser leur nombre...
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    t_question tab_questions[]={
        {"Capitale de la France", {"Paris", "Londres", "Berlin", "Rome"}, 1},
        {"Capitale de l'Allemagne", {"Paris", "Londres", "Berlin", "Rome"}, 3},
        {"Capitale de l'Italie", {"Paris", "Londres", "Berlin", "Rome"}, 4},
        {NULL, {NULL, NULL, NULL, NULL}, 0},
    };

    Ensuite suffit de balayer le tableau, afficher le texte, les 4 choix possibles, attendre une réponse et comparer si la réponse donnée correspond à celle attendue. Si ensuite, comme en parle Leternel, tu envisages de séparer le code (le programme) et les datas (les questions) il faudra alors un petit peu modifier la structure (surtout ne plus pointer vers des zones statiques du code mais avoir des tableaux permettant de stocker la question lors de son chargement) mais le principe reste le même...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre confirmé
    Homme Profil pro
    Responsable ingénierie des logiciels - Recherche alternance
    Inscrit en
    Novembre 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable ingénierie des logiciels - Recherche alternance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 68
    Par défaut
    Pour répondre au précédent message de Sve@r :
    Bien entendu "détruire" n'est pas le terme approprié, mais alors mieux vaut-il dire vider ou libérer ?
    Encore cela dépend de quoi on parle, on peut "libérer" l'espace mémoire attribuer à un pointeur, mais on ne peut pas dire qu'on va libérer un int ou un char ...(à moins que ...). Si je vois "vider", je penserai avant tout à une réinitialisation à 0 de la variable ciblé (et encore là, j'ai beau me relire, je dois bien avouer que je doute de ce que je dis ...) les termes employés sont importants il est vrai, et peuvent portés à confusion.

Discussions similaires

  1. [Débutant] Lire des fichiers texte en boucle dans un programme
    Par niepoc dans le forum MATLAB
    Réponses: 6
    Dernier message: 20/05/2008, 18h05
  2. Réponses: 2
    Dernier message: 02/06/2006, 12h59
  3. appel des fonctions d'un driver dans un programme en c
    Par richie25 dans le forum Windows
    Réponses: 5
    Dernier message: 10/01/2006, 08h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo