begin process at 2012 05 29 17:21:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Système

 > 

Autre

 > 

problème de gestion aléatoire de question


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problème de gestion aléatoire de question

lundi 11 mai 2009 à 08:31:54 | problème de gestion aléatoire de question

crawhawks21

Bonjour,

Je viens par ce mail vous demandez votre aide, j'ai un grand besoin de vos lumières, voilà je suis occupé à créer un quizz d'un nombre N de questions, je voudrais savoir comment programmer une gestion aleatoire de ces questions (donc je voudrais que l'ordinateur choisi les questions aléatoirement), pourriez vous me donner le code source pour réaliser cela svp, avec l'endroit exacte ou je doit placer mes questions et mes conditions pour chacunes de ces questions.

Dans l'attente de vous relire, je vous en remercie.

Crawhawks
lundi 11 mai 2009 à 09:04:42 | Re : problème de gestion aléatoire de question

fregolo52

Membre Club

salut,

tu associes un identifiant (nombre entier) à chacune de tes questions.
Tu utilises la fonction rand.
Par exemple (a tester) :questionencours =  (rand()*nombretotaldequestion)/RAND_MAX;

Apres a toi de sauvegarder les questions déjà posées dans un tableau pour ne pas les répéter.
lundi 11 mai 2009 à 18:51:27 | Re : problème de gestion aléatoire de question

CptPingu

Administrateur CodeS-SourceS
Aucun code source déjà fait ne te seras donné: http://www.cppfrance.com/reglement.aspx

Néanmoins, si tu te décides à le faire par toi même, nous t'aiderons avec plaisir. N'hésites donc pas à poster ce que tu as fait, en précisant les points qui te bloquent.
lundi 11 mai 2009 à 20:20:51 | Re : problème de gestion aléatoire de question

crawhawks21

un grand merci pour vos réponses, et je comprend entièrement qu'on ne donne pas des code source déjà réaliser, je vous copie donc ici une partie de mon code source afin d'essayer (je dit bien essayer...lol) de créer un tirage aléatoire de question, mais vraiment je ne comprend pas encore très bien le systeme des tableaux, seriez vous assez gentil pour m'aider à réaliser mon petit projet de jeu de question en m'aidant à compléter mon code source svp.

je ne comprend vraiment pas ce que vous me dites, je connais un peu la fonction rand qui permet de gérer des tirages aleatoire comme pour le jeu du nombre mystere.

voici donc mon code source qui ne ressemble à rien, si vous avez des conseils à me soumettre n'hesitez pas je les suivrais à la lettre.

#include <iostream>
int main()
{
    using namespace std;
    long questionencours, questiontotal;
    questiontotal = (rand()*questionencours)/RAND_MAX;
   
    //premiere question//
    long reponse;
    {
         questionencours=1;
         cout << "qui a inventer la tour eifel ";
         cout << "\n\n1 eifel ";
         cout << "\n2 montparnasse ";
         cin>>reponse;
        
         if (reponse == 1)
         {
                     cout <<"bravo !!! \n";
                     system ("pause");
                     }
         if (reponse == 2) 
         {                   
                      cout <<"Dommage !!! \n";
                      system ("pause");
                      }
                     
         {
         questionencours=2;
         cout << "quel est la vitesse maximal du guepard";
         cout << "\n\n1 60 km/h ";
         cout << "\n2 100 km/h ";
         cin>>reponse;
        
         if (reponse == 2)
         {
                     cout <<"bravo !!! \n";
                     system ("pause");
                     }
         if (reponse == 1) 
         {                   
                      cout <<"Dommage !!! \n";
                      system ("pause");
                      }
                      return 0;
                      }
                      }
                      }   

voilà en gros, il n'y à que deux questions, mais je pense que si vous me montrez ce qui manque ou complèter ce code, je serais en mesure de faire le reste tout seul.

encore un grand merci à vous tous, votre site est vraiment génial.

crawhawks.
lundi 11 mai 2009 à 20:53:22 | Re : problème de gestion aléatoire de question

CptPingu

Administrateur CodeS-SourceS
Le code (sans les fautes d'orthographes):

#include <iostream>
#include <vector>
#include <utility>
#include <ctime>
#include <cstdlib>

int main()
{
  std::vector<std::pair<std::string, int> > list;
  list.push_back(std::make_pair<std::string, int> ("Qui a invente la tour Eiffel ?\n1 Eiffel\n2 Montparnasse", 1));
  list.push_back(std::make_pair<std::string, int> ("Quelle est la vitesse maximal du guepard ?\n\n1 60 km/h\n2 100 km/h", 2));
  // Tu peux ajouter autant de question que tu veux.
  srand(time(NULL));
  int question = rand() % list.size();
  int reponse;

  std::cout << list[question].first << std::endl;
  std::cin >> reponse;
  if (reponse == list[question].second)
    std::cout << "Bravo" << std::endl;
  else
    std::cout << "Dommage" << std::endl;

  return 0;
}

Quelques explications:

#include <iostream>
Pour les affichage, entre autre
#include <vector>
Pour utiliser un vecteur de la STL
#include <utility>
Pour utiliser un type Pair de la STL
#include <ctime>
Pour utiliser la fonction time
#include <cstdlib>
Contient la fonction srand et rand

int main()
{
  std::vector<std::pair<std::string, int> > list;
Ici, je crée un vecteur qui peut contenir des paires. Ces paires sont des paires qui contiennent spéficiquements une chaînes de caractêres et un entier.
  list.push_back(std::make_pair<std::string, int> ("Qui a invente la tour Eiffel ?\n1 Eiffel\n2 Montparnasse", 1));
La fonction std::make_pair, crée une pair. Ici je donne la question et le numéro de la réponse. La parie crée est directement ajouté à la liste grâce à push_back.

  list.push_back(std::make_pair<std::string, int> ("Quelle est la vitesse maximal du guepard ?\n\n1 60 km/h\n2 100 km/h", 2));
Je fais de même pour la deuxième question.
  // Tu peux ajouter autant de question que tu veux.
  srand(time(NULL));
srand ne doit être appelé qu'une seule et unique fois par exécution. De plus, j'intialise srand avec une valeur elle même qui varie beaucoup. En effet, time(NULL) retourne le nombre de seconde écoulé depuis une certaine date (1 janvier 1970, si je ne m'abuse). Ainsi le générateur de nombre aléatoire est plus crédible.
  int question = rand() % list.size();
Ici, j'appele la fonction rand. Celle-ci renvoie un nombre aléatoire. Afin d'être sûr que le nombre renvoyer est bien compris entre 0 et la taille de mon tableau, j'utilise un modulo de la taille de ce dit tableau.
  int reponse;
  std::cout << list[question].first << std::endl;
Je pose la question. Dans une pair first représente le 1er élément et second le deuxième. Tu te rappeles que la question est mis en 1ère position.
  std::cin >> reponse;
  if (reponse == list[question].second)
Ici, je vérifie que le réponse entrée, est celle attendue. La réponse est stocké dans le second élément de la pair. Donc j'utilise second sur la pair en cours du tableau.
    std::cout << "Bravo" << std::endl;
  else
    std::cout << "Dommage" << std::endl;

  return 0;
}



Cette discussion est classée dans : problème, aléatoire, question, gestion, questions


Répondre à ce message

Sujets en rapport avec ce message

Question a 2 balles mais j'y arrive pas!!! [ par HCJarod ] Je ravale ma fierté et je pose ma question au risque de me faire siffler : est ce que quelqu'un sais comment creer une simple fenetre (avec 2 bricolle Problème de gestion multilangue... [ par liv ] Bonjour à tous,J'ai un programme en VC++ .NET avec les MFC qui inclue la gestion multilangue (pour le moment Français, Anglais) s'appuyant sur l'intég Deux petites questions ... - API Windows [ par banane_rose ] salut ! question 1 ) quel message pour un clic n'importe où dans ma fenêtre ? question 2 ) c'est possible de faire un fond en dégradé ? thanks 2 questions, MODULO ET MSGBOX [ par deck_bsd ] Bonsoir a tous, Voila j'ai deux question. La première concerne le modulo. Je prend un exemple concrèt. si je fait 63%24 le reste est 16. On est dacc Problème avec gestion de la webcam [ par loicus ] Bonjours, alors voila...j'ai fait un petit programme pour gerer uen webcam sous windows, et avec SDL et VFW.Le programme marche parfaitement, a part u Communication VBA C++ XLL des questions [ par wismerhill__ ] Bonjour à tous,L'année dernière j'ai effectué un stage dans lequel j'ai été amené à faire une DLL pour faire passer des données de VBA vers C++ puis t gestion des exceptions en C++ [ par LaTatadu91 ] Bonjour,Je me posais une question sur les exceptions en C++ : les fameux try catch!est ce que une exception remonte de sous programme en sous programm Petite question sur les alloc mémoir ! [ par nico1610 ] Mon problème est simple : J'ai commencé le C++ il y a peu de temps (pour abandonner le VB! )et je bloque sur un petit problème : la signification de & Problème avec la gestion des exceptions sous dev [ par tibob51 ] Bonjour a tous, je programme avec dev cpp depuis peu, j'ai une erreur lors d'une exception alors que je n'ai jamais eu de problème sous borland avec c problème de chaine de caractère [ par crawhawks21 ] Bonsoir,je suis nouveau ici et je ne sais pas si je m'adresse au bon endroit pour trouver une réponse à mon problème, voilà je débute en programmation


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,983 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales