Soit la classe Point vue en cours et définie comme suit :
class Point { private $abs, $ord ; public function __construct ($x, $y) { $this->abs = $x ; $this->ord = $y ; } public function affiche () { echo "Ceci est un point de coordonnées ", $this->abs, " ", $this->ord, "<br>" ; } }1) Donner la définition de la classe Coté qui étend la classe Point et qui est caractérisée comme suit:
La méthode Longueur qui retourne la longueur du coté. Pour cela, on utilisera la formule d'Euclide : longueur = racine carrée de ( (X1-X2)² + (Y1-Y2)² ).
La méthode Affiche qui permet de déduire et d'afficher les coordonnées des 2 points du coté.
2) Donner la définition de la classe Carré qui étend la classe Coté et qui est caractérisée comme suit:
Un carré est défini par le constructeur du coté du fond du carré.
La méthode Affiche qui permet de déduire et d'afficher les coordonnées des 4 cotés du carré.
La méthode Périmètre qui permet de calculer et d'afficher le périmètre du carré.
La méthode Surface qui permet de calculer la surface du carré.
3- Donner la définition de la classe Rectangle qui étend la classe Carré et qui est caractérisée comme suit:
La méthode Affiche permet de déduire et d'afficher les coordonnées des 4 points du rectangle.
La méthode Périmètre qui permet de calculer et d'afficher le périmètre du rectangle.
La méthode Surface qui permet de calculer la surface du rectangle.
4) Donner le script PHP (sans reprendre les définitions des classes ci-dessus) qui permet de :
[Voir la solution (script php complet)]
Problème 2 :
Afin de représenter une base de données LIVRES sur un serveur web, vous avez opté pour la structure XML suivante :
<BDD> <livre titre="..." édition="..." ISBN="..."/> <auteurs> <auteur nom="..." prénom="..."/> </auteurs> <sections> <section titre="..."> <chapitre titre="..."> <paragraphe>…</paragraphe> <paragraphe>…</paragraphe> </chapitre> </section> </sections> </livre> </BDD>
Un livre pourra contenir plusieurs auteurs, sections, chapitres ou paragraphes.
A. Donnez un script PHP qui devra afficher le plan d'un livre dont la liste des auteurs contient au moins le nom/prénom nom1 prénom1 comme indiqué ci-dessous:
Livre : Monlivre1 // afficher le titre du livre Auteur:nom1 prenom1 Auteur:nom2 prenom2 1. Section1 // afficher le titre de la première section 1.1. Chapitre1 // afficher le titre du chapitre 2. Section2 2.1. Chapitre1 2.2. Chapitre2
[Voir la solution (script PHP)]
B. Donner un script PHP qui permet d'ajouter un nouveau livre à la BDD. [Voir la solution (script PHP), Voir le fichier XML généré]
Quel est le problème qui se posera lorsque le nombre de livres devient important ?
Proposez une solution pour résoudre ce problème (sans donner de script).