Créer une application – QCM en PHP5/Mysql – partie 3

Cette 3ème partie sera consacrée à l’implémentation de la classe MyQcm.

La classe de départ sera la suivante :

[php]

Comme vous pouvez le constater, cette classe fait appel à l’interface QCM à l’aide du mot clé « implements ». A partir de là, on doit reprendre toutes les métodes définies dans l’interface pour renseigner le code associé.

Le constructeur :
En PHP5, une méthode magique est apparue remplaçant l’ancien façon de définir un constructeur, qui par définition, doit avoir le même nom que la classe.
Avec la version 5 de PHP, on peut faire appel à la methode __construct(), qui sera executé dès l’instanciation de l’objet MyQcm.
Dans notre exemple, le constructeur doit recevoir 3 paramètres qui sont : le nom du QCM, le nom de l’auteur du QCM et son email afin d’initialiser les variables à portée privée (private) et d’initialiser le compteur du nombre de questions qui vont composer le QCM; ce qui donne la methode suivante :

[php] nom    = $nom;         $this->author = $author;         $this->email   = $email;         $this->id       = 1;     } ?>

La méthode : addQuestion($question) :
La méthode addQuestion($question) permet d’ajouter un couple question / réponses à l’objet QCM.
Comme mentionné dans la partie 2, le couple question / réponses et un tableau dont la propriété est la suivante :
MaQuestion = tableau [
String : question,
Integer : reponse,
Tableau[1 .. n] : choix
]

Soit par exemple :
MaQuestion = tableau [
question = "Quel language de programmation est un language propriétaire de Microsoft ?"
reponse = 3
choix = [1=>"C++", 2=>"Java", 3=>"Visual Basic"]
]

A partir de cette définition, le code nécessaire pour l’ajout d’une question au tableau de « questions » est le suivant :

<? function addQuestion($question){ $this->Questions[$this->id] = array( $question[0], $question[1], $question[2] ); $this->id++; } <?

La méthode : addArrayQuestion($questions) :
Cette méthode permet d’initialiser le tableau $Questions par un tableau à 2 dimensions de couple Question / réponses.
le code associé est le suivant :
Questions = $questions; } ?>
La méthode : verifyResponse($idQuestion, $reponse) :
Cette méthode permet de vérifier si la réponse choisi par l’utilisateur pour une question identifié par son numéro $idQuestion est correcte ou non.
Il suffit de faire un test sur la valeur selectionné et celle stocké dans le tableau Questions[$idQuestion] à la position 2.

le code associé à cette méthode est le suivant :
<? function verifyResponse($idQuestion, $reponse){ if($this->Questions[$idQuestion][2] == $reponse) return true; else return false; } <?
La méthode : getResponse($idQuestion) :
Cette méthode permet de renvoyer la réponse de la question identifié par le numéro $idQuestion.
le code associé est le suivant :
<? function getResponse($idQuestion){ $ind = $this->Questions[$idQuestion][2]; $question = $this->Questions[$idQuestion][1]; return $question[$ind]; } <?
La méthode : parseFile($Fichier, $Fichier_type):
Cette méthode permet de parser le contenu d’un fichier csv qui a été uploadé sur le serveur au préalable, afin de générer le tableau à 2 dimensions des questions.
Des vérifications doivent être faites sur l’extension pour vérifier qu’il s’agisse bien d’un fichier csv, de vérifier la premiére ligne d’entête (à ne pas traiter comme un couple question / réponses), …
Le code associé à cette métode est le suivant :
<? function parseFile($Fichier, $Fichier_type){ $statut = false; if($Fichier_type == 'csv' || $Fichier_type == 'txt'){ if($fp = fopen($Fichier,"r")){ $statut = true; $i = 0; while (!feof($fp)) { $temp = fgets($fp,4096); $data = split(";",$temp); if(sizeof($data) == 6 && $data[0] != 'Question'){ $Q = array(); for($j = 1; $j<=$data[1]; $j++) { $Q[$j] = $data[2+$j]; } $this->addQuestion(array($data[0], $Q, $data[2])); } $i++; } fclose($fp); } } return $statut; } <?
Vous pouvez voir la classe dans son integralité ici

Je vous conseil de récupérer cette classe et de nommer le script myqcm.class.php

Ces articles peuvent vous intéresser :

  1. Créer une application – QCM en PHP5/Mysql – partie 2
  2. Créer une application – QCM en PHP5/Mysql – partie 6
  3. Créer une application – QCM en PHP5/Mysql – partie 1
  4. Créer une application – QCM en PHP5/Mysql – partie 7
  5. Créer une application – QCM en PHP5/Mysql – partie 8

Aucun commentaire Posté dans Coding
Tagged , , , , , ,

Répondre

Comment Spam Protection by WP-SpamFree

Utilisez Gravatars dans ces commentaires!

XHTML: Vous pouvez utiliser les balises suivantes : <a href=""> <b> <blockquote> <code> <em> <i> <strike> <strong>