程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 前端學PHP之面向對象系列第六篇——簡單圖形面積計算器實現,面向對象第六篇

前端學PHP之面向對象系列第六篇——簡單圖形面積計算器實現,面向對象第六篇

編輯:關於PHP編程

前端學PHP之面向對象系列第六篇——簡單圖形面積計算器實現,面向對象第六篇


前面的話

  本文用面向對象的技術來實現一個簡單的圖形面積計算器

 

圖形類

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

 

主界面

//index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.box{
    width: 800px;
    margin: 0 auto;
}
</style>
</head>
<body>
<div class="box">
    <h1>圖形計算器</h1>
    <div>
        <a href="index.php?action=rect">矩形</a>
        <a href="index.php?action=triangle">三角形</a>
    </div>
</div>    
    <?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()."<br>";
                }
            }
        }else{
            echo "請選擇一個要計算的圖形!<br>";
        }
    ?>
</body>
</html>

 

矩形類

//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 action="index.php?action=rect" method="post">';
        $form .=$this->name.'的寬:<input name="width" value=""/><br>';
        $form .=$this->name.'的高:<input name="height" value=""/><br>';
        $form .='<input type="submit" name="dosubmit" value="計算"><br>';
        $form .='</form>';
        echo $form;
    }
    function test($arr) {
        $bg = true;
        if($arr['width'] < 0) {
            echo $this->name."的寬不能小於0!<br>";
            $bg = false;    
        }
        if($arr['height'] < 0) {
            echo $this->name."的高度不能小於0!<br>";
            $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 action="index.php?action=triangle" method="post">';
        $form .=$this->name.'第一個邊的寬:<input name="b1" value=""/><br>';
        $form .=$this->name.'第二個邊的寬:<input name="b2" value=""/><br>';
        $form .=$this->name.'第三個邊的寬:<input name="b3" value=""/><br>';
        $form .='<input type="submit" name="dosubmit" value="計算"><br>';
        $form .='</form>';
        echo $form;
    }
    function test($arr) {
        $bg = true;
        if($arr['b1'] < 0) {
            echo "第一個邊的寬不能小於0!<br>";
            $bg = false;    
        }
        if($arr['b2'] < 0) {
            echo "第二個邊的寬不能小於0!<br>";
            $bg = false;    
        }
        if($arr['b3'] < 0) {
            echo "第三個邊的寬不能小於0!<br>";
            $bg = false;    
        }
        if(($arr['b1'] + $arr['b2'] < $arr['b3'])||($arr['b1'] + $arr['b3'] < $arr['b2'])||($arr['b3'] + $arr['b2'] < $arr['b1'])){
            echo '兩邊之和不能小於第三邊<br>';
            $bg = false;
        }
        return $bg;
    }
}
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved