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

原创
2016-11-16 10:24:011096浏览

前面的话

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

图形类

//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'] < 0) { echo $this->name."的宽不能小于0!
"; $bg = false; } if($arr['height'] < 0) { 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'] < 0) { echo "第一个边的宽不能小于0!
"; $bg = false; } if($arr['b2'] < 0) { echo "第二个边的宽不能小于0!
"; $bg = false; } if($arr['b3'] < 0) { 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; } } ?>
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
上一条:PHP中“==”运算符的安全问题下一条:php 总结第一篇(望大家补充!谢谢)

相关文章

查看更多