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

Langage PHP Discussion :

Créer un QCM avec des class sans BDD


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Créer un QCM avec des class sans BDD
    Bonjour,

    Je demande votre aide pour un exercice que je dois réaliser :

    Le but est de développer une petite page index.php permettant d'afficher un formulaire de type QCM. Les données ne seront pas stockées dans une base de données.
    Voici le code typique et le rendu d’un QCM : (index.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <? php
    include " qcm . class .php";
    $monQcm = new Qcm("QCM langage PHP");
    $monQcm -> AddQuestion ("PHP est un langage :",
    array ( array (" Compilé " ,0) , array (" Interprété " ,1)));
    $monQcm -> AddQuestion ("PHP est un langage typé ",
    array ( array (" Oui" ,0) , array ("Non " ,1)));
    $monQcm -> AddQuestion ("PHP :",
    array ( array (" est orienté objet " ,1) , array ("est objet " ,0) ,
    array ("n’est que structuré " ,0)));
    $monQcm -> AddQuestion ("La version distribuée officielle est la: ",
    array ( array (" version 5" ,1) , array (" version 6" ,0) , array (" version 7" ,0)));
    ? >
    <html >
    <head > <title >QCM </ title > </ head >
    <body >
    <? php $monQcm - > Afficher (" qcm1 .php"); ?>
    </body >
    </html >
    Il y a 3 classes à faire, que j'ai fais dans trois fichiers différents (Qcm.class.php | Question.class.php | Reponse.class.php)

    - La classe Qcm doit qui comporter un tableau d’objets Question et dont les méthodes sont évidentes d’après le code exemple produit plus haut.

    - La classe Question qui implémente un libellé de question, un numéro de question et un tableau de réponses possibles à la question. Il serait souhaitable d’avoir une méthode AddReponse() ainsi qu’une méthode Afficher().

    - La classe Reponse qui doit comporter le libellé de la réponse, un numéro de question et un numéro de réponse et quelque chose permettant de spécifier si la réponse est exacte. On pourra supposer qu’une seule réponse est correcte. Là encore il est souhaitable d’avoir une méthode Afficher().

    Il y aura 3 boutons en dessous du formulaire :
    Afficher le score : sous forme 1/4
    Afficher le corrigé : donc afficher les réponses du formulaire avec des couleurs (rouge/vert)
    Recommencer : réinitialise le formulaire

    Je sais comment créer une class en PHP le souçis c'est que je n'arrive pas comprendre comment faire communiquer les class entre elle, j'aimerai juste avoir un exemple de comment cela fonctionne. Voila ce que j'ai essayé de faire :
    Code du fichier qcm.class.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
    	include('question.class.php');
     
    	class QCM {
    		private $_qcm_titre = '';
    		private $_titre_question = '';
    		private $_choix_reponses = array();
     
    		public function __construct($_qcm_titre) {
           		$this->_qcm_titre = $_qcm_titre;
        	}
     
        	public function AddQuestion($_titre_question, $_choix_reponses) {
        		$test = new Question(0,$_titre_question, $_choix_reponses);
        		$test->Affichert();
        	}
     
     
        }
    ?>
    Code du fichier question.class.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <?php
    	include('reponse.class.php');
     
    	class Question {
    		private $num_question = 0;
    		private $_libelle_question;
    		private $_reponse_dispo = array();
     
    		public function __construct($_num_question,$_libelle_question, $_reponse_dispo) {
           		$this->_libelle_question = $_libelle_question;
           		$this->_reponse_dispo = $_reponse_dispo;
           		$this->num_question = $num_question++;
        	}
     
        	public function Affichert() {
        		echo "Question ".$this->$num_question."<br>".$this->_libelle_question."";
        		$num_question++;
        	}
     
    		public function AddReponse() {
    			var_dump($this->_num_question);
    		}
     
        }
     
    ?>
    Cordialement

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Basiquement, un objet représente un élément. Si on fait une voiture, on peut avoir une classe Voiture et une classe Piece par exemple.

    Imagine un QCM sur papier : tu as le QCM, les questions et les réponses. Un QCM est composé de plusieurs questions, une question a plusieurs réponses possibles qui peuvent ou non être correctes.

    Donc :
    La classe Qcm doit avoir des propriétés qui lui sont propres (titre du QCM) et une liste de questions (avec une méthode qui permet d'ajouter une question)
    La classe Question doit avoir ses propres propriétés (intitulé de la question) et une liste de réponses (avec une méthode qui permet d'ajouter une réponse)
    La classe Reponse doit avoir ses propres propriétés (intitulé, booléen "correcte")

    Ensuite, chaque classe doit avoir une méthode afficher :
    La Reponse affiche son intitulé.
    La Question affiche son intitulé + l'affichage de toutes ses réponses
    Le Qcm affiche son intitulé + l'affichage de toutes ses questions.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Mouaii je vais essayer de voir... J'ai réalisé les méthodes(Afficher, AddQuestion, AddReponse...) des class... C'est juste que je comprend pas comment AddQuestion qui ajoute une question mais pourquoi on spécifie direct les réponses. Enfin j'arrive pas me faire comprendre mdr.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je pense que ta classe Question devrait avoir une méthode addReponse pour être cohérente avec la class Qcm.
    Du coup, dans addQuestion tu fais une nouvelle Question, tu lui ajoutes les réponses par addReponse et ensuite tu stockes la question dans la liste des questions. Et dans addReponse, tu crées une nouvelle Reponse et tu la stockes dans la liste des réponses de la Question.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Okey merci je commence à mieux percevoir le truc .

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/12/2007, 14h54
  2. Créer du xml avec des données Oracle
    Par Baumont dans le forum Oracle
    Réponses: 3
    Dernier message: 23/11/2005, 15h35
  3. Réponses: 9
    Dernier message: 25/09/2005, 16h33
  4. Créer une vue avec des requêtes UNION ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/04/2005, 12h37
  5. créer un noeuds avec des paramétres
    Par Toxine77 dans le forum XMLRAD
    Réponses: 5
    Dernier message: 21/01/2003, 16h11

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