Calcul de rectangles

Considérant qu'il existe de nombreux types de graphiques, nous pouvons d'abord créer une classe abstraite graphique pour fournir des propriétés et des méthodes communes à tous les graphiques,

De cette façon, d'autres graphiques peuvent en hériter directement, réduisant ainsi la redondance du code et se conformant aux Pensées orientées objet

1, créez un nouveau fichier Shap.class.php

nom de la forme $name, message d'erreur $error, périmètre zone() et zone zhou(), et après chaque calcul il y a Vérifiez yan()

<?php
abstract class Shape {
    private $name;
    private $error;
    abstract function area();
    abstract function zhou();
    abstract function view($arr);
    abstract function yan($arr);
}
?>

2, créez un nouveau fichier Rect.class.php

Après avoir créé une nouvelle classe rectangle, héritez de la classe graphique et implémentez la méthode correspondante en plus de l'héritage. attributs et méthodes, chaque graphique a ses propres propriétés et méthodes, par exemple, un rectangle a une longueur et une largeur, une sphère a un rayon, etc.

Définissez les propriétés du rectangle $width et $height

Utilisez le constructeur pour instanciez-le et attribuez automatiquement des valeurs au nom et à l'erreur respectivement

Calculez l'aire et le périmètre

Après avoir cliqué sur le rectangle, vous devez afficher la zone de saisie. À ce stade, il vous suffit de définir une méthode view(). pour imprimer la zone de saisie

Ajoutez une étiquette a au bouton rectangulaire

<a href ='index.php?action=rect'>rectangle</a> |

Après avoir cliqué, faites une demande d'obtention et affichez la zone de saisie imprimée dans la vue. Le code est le suivant :

<?php
if (!empty($_GET['action'])) {
    $shape = new Rect();
    $shape->view();
    }
<?php
class Rect extends Shape {
    private $width;
    private $height;
    function __construct() {
        $this->name = "矩形";
        $this->error = '';
    }
    function area() {
        return $this->width * $this->height;
    }
    function zhou() {
        return ($this->width+$this->height) * 2;
    }
    function view($arr) {
        $form='';
        $form .= "<form action='index.php?action=rect' method='post'>";
        $form .= "请输入".$arr['name']."的宽度:<input type='text' name='width' value='".$_POST['width']."'/><br>";
        $form .= "<br>";
        $form .= "请输入".$arr['name']."的长度:<input type='text' name='height' value='".$_POST['height']."'/><br>";
        $form .= "<br>";
        $form .= "<input type='submit' name='sub' value='提交'/>    ";
        $form .= "<input type='reset' name='ret' value='重置'/>";
        $form .= "</form>";
        echo $form;
    }
}
?>

3, vérification Impression des informations

Nouvelle méthode ajoutée dans la classe rectangle :

<?php
function yan($arr) {
    $bz = true;

    if ($arr['width']< 0) {
        $this->error .= "宽度小于0;";
        $bz = false;
    } else {
        if (!is_numeric($arr['width'])) {
            $this->error .= "宽不是数字;";
            $bz = false;
        }
    }
    if ($arr['height']< 0) {
        $this->error .= "宽度小于0;";
        $bz = false;
    } else {
        if (!is_numeric($arr['height'])) {
            $this->error .= "高不是数字;";
            $bz = false;
        }
    }
    return $bz;
}

Imprimer les informations de vérification. , code index.php :

if (!$shape->yan($_POST)) {
    echo "<b>错误:$shape->error</b>";
}
echo "</div>";

Si les informations de vérification sont correctes, imprimez le périmètre et la zone corrects :

<?php
echo "<div id='footer'>";
if ($shape->yan($_POST)) {
    echo "<b>".$shape->name."的周长".$shape->zhou()."</b>"."<br>";
    echo "<br>";
    echo "<b>".$shape->name."的面积".$shape->area()."</b>"."<br>";
}else {
    echo "<b>错误:$shape->error</b>";
}
echo "</div>";

Résultats d'exécution :

gif5新文件 (29).gif

Je pense à vous : besoin pour introduire le fichier Rect.class.php dans index.php,exige 'Rect.class.php';

Il doit également être importé lors du calcul d'autres graphiques. Existe-t-il un moyen d'importer tous les fichiers de classe. à la fois ? (Introduit dans la section suivante)

Formation continue
||
<?php echo "矩形周长面积的计算";
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel