栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

PHP 对象 多态性 简单图形计算器

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP 对象  多态性 简单图形计算器

主程序页面 test.php页面

    简单的图形计算器

   

   

    简单的图形计算器

    矩形   ||   

    三角形

   

   


   

    //屏蔽E_NOTICE提示

    error_reporting(E_ALL & ~E_NOTICE);

    //设置自动加载这个程序需要的类文件

    function __autoload($classname){

        include $classname.'.class.php';

    }

    //判断用户是否单击一个形状链接

    if(!empty($_GET['action'])){

        //第一步:创建形状的对象

        $classname = ucfirst($_GET['action']);

        $shape = new $classname($_POST);

        //第二步:调用形状的对象中的图形界面

        $shape->view();

        //第三步:用户是否提交了对应的图形界面的表单

        if(isset($_POST['dosubmit'])){

            //第四步:查看用户输入的数据是否合法,不合法则提示

            if($shape->validate($_POST)){

            //第五步:计算图形的面积和周长

            echo $shape->name.'的面积为:'.$shape->area().'
';

            echo $shape->name.'的周长为:'.$shape->circumference().'
';

            }

        }        

    }else{//如果用户没有单击则默认访问主程序

        echo '请选择一个要计算的图形';

    }

    ?>


形状抽象类Shape.class.php页面

 //形状抽象类

abstract class Shape{

        public  $name;

        //面积

        abstract function area();

        //周长

        abstract function circumference();

        //图形界面

        abstract function view();

        //形状验证方法

        abstract function validate($arr);         

}


矩形类Rectangle.class.php页面

//矩形类

class Rectangle extends Shape{

    private $width;

    private $height;

    function __construct($arr=array()){

        if(!empty($arr)){

        $this->width   =  $arr['width'];

        $this->height  =  $arr['height'];

        }

        $this->name   =  '矩形';

    }

     function area(){

        return $this->width*$this->height;

    }

    //周长

    function circumference(){

        return 2*($this->width+$this->height);

    }

    //图形界面

  function view(){

        $form =  '';

        echo $form;

    }

    //形状验证方法

     function validate($arr){

        $flag = true;

        if($arr['width']<0 || !is_numeric($arr['width'])){

            echo $this->name.'的宽必须是大于0的整数
';

            $flag = false;

        }

        if($arr['height']<0 || !is_numeric($arr['height'])){

            echo $this->name.'的高必须是大于0的整数
';

            $flag = false;

        }

        return $flag;

    }}


三角形类Triangle.class.php页面

//三角形类

class Triangle extends Shape{

    private $edge1;

    private $edge2;

    private $edge3;

 

    function __construct($arr=array()){

        if(!empty($arr)){

        $this->edge1   =  $arr['edge1'];

        $this->edge2   =  $arr['edge2'];

        $this->edge3   =  $arr['edge3'];        

        }

        $this->name   =  '三角形';

    }

     function area(){

         $p =($this->edge1+$this->edge2+$this->edge3)/2;         

        return sqrt($p*($p-$this->edge1)*($p-$this->edge2)*($p-$this->edge3));

    }

    //周长

    function circumference(){

        return ($this->edge1+$this->edge2+$this->edge3);

    }

    //图形界面

  function view(){

        $form =  '';

        echo $form;

    }

    //形状验证方法

     function validate($arr){

        $flag = true;

        if($arr['edge1']<0 || !is_numeric($arr['edge1'])){

            echo $this->name.'的第一边必须是大于0的整数
';

            $flag = false;

        }

        if($arr['edge2']<0 || !is_numeric($arr['edge2'])){

            echo $this->name.'的第二边必须是大于0的整数
';

            $flag = false;

        }

        if($arr['edge3']<0 || !is_numeric($arr['edge3'])){

            echo $this->name.'的第三边必须是大于0的整数
';

            $flag = false;

        }

        if(($arr['edge1']+$arr['edge2']<$arr['edge3']) || ($arr['edge1']+$arr['edge3']<$arr['edge2'])||($arr['edge3']+$arr['edge2']<$arr['edge1']) ){

            echo '三角形定义必须两边之和大于第三边
';

            $flag = false;

        }

        return $flag;

    }     

}


浏览器 矩形页面

浏览器 三角形页面

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/229441.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号