欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

前端学PHP之面向对象系列第六篇简单图形面积计算器实现

程序员文章站 2022-03-17 10:25:32
...

前面的话

  本文用面向对象的技术来实现一个简单的图形面积计算器

图形类

//rect.class.php
php
    abstract class Shape{
        public $name;
        abstract function area();
        abstract function view();
        abstract function test($arr);
    }
?>

主界面

//index.php


Document
class="box">

图形计算器

php error_reporting(E_ALL & ~E_NOTICE); function __autoload($classname){ include strtolower($classname).".class.php"; } if(!empty($_GET['action'])) { $classname = ucfirst($_GET['action']); $shape=new $classname($_POST); $shape->view(); if(isset($_POST['dosubmit'])) { if($shape->test($_POST)) { echo $shape->name."的面积为:".$shape->area()."
"; } } }else{ echo "请选择一个要计算的图形!
"; } ?>

矩形类

//rect.class.php
php
class Rect extends Shape{
    private $width;
    private $height;
    function __construct($arr=[]){
        if(!empty($arr)){
            $this->width = $arr['width'];
            $this->height = $arr['height'];
        }
        $this->name = "矩形";
    }
    function area() {
        return $this->width * $this->height;
    }
    function view() {
        $form = '
'; $form .=$this->name.'的宽:
'; $form .=$this->name.'的高:
'; $form .='
'; $form .='
'; echo $form; } function test($arr) { $bg = true; if($arr['width'] ) { echo $this->name."的宽不能小于0!
"; $bg = false; } if($arr['height'] ) { echo $this->name."的高度不能小于0!
"; $bg = false; } return $bg; } } ?>

三角形类

//triangle.class.php
php
class Triangle extends Shape{
    private $b1;
    private $b2;
    private $b3;
    function __construct($arr=[]){
        if(!empty($arr)){
            $this->b1 = $arr['b1'];
            $this->b2 = $arr['b2'];
            $this->b3 = $arr['b3'];
        }
        $this->name = "三角形";
    }
    function area() {
        $p = ($this->b1 + $this->b2 + $this->b3)/2;
        return sqrt($p*($p-$this->b1)*($p-$this->b2)*($p-$this->b3));
    }
    function view() {
        $form = '
'; $form .=$this->name.'第一个边的宽:
'; $form .=$this->name.'第二个边的宽:
'; $form .=$this->name.'第三个边的宽:
'; $form .='
'; $form .='
'; echo $form; } function test($arr) { $bg = true; if($arr['b1'] ) { echo "第一个边的宽不能小于0!
"; $bg = false; } if($arr['b2'] ) { echo "第二个边的宽不能小于0!
"; $bg = false; } if($arr['b3'] ) { echo "第三个边的宽不能小于0!
"; $bg = false; } if(($arr['b1'] + $arr['b2'] $arr['b3'])||($arr['b1'] + $arr['b3'] $arr['b2'])||($arr['b3'] + $arr['b2'] $arr['b1'])){ echo '两边之和不能小于第三边
'; $bg = false; } return $bg; } } ?>