亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php面向對象編程練習:計算矩形、三角形、圓形的周長和面積

2020-03-22 18:48:19
字體:
來源:轉載
供稿:網友


剛剛學完phphtml' target='_blank'>面向對象的編程,參考著高洛峰老師的php教程學習了這個實例。

效果圖片:

三角形
矩形
圓形

以下是實現代碼:index.php
<html><head>    <title>圖形計算(使用面向對象開發技術)</title>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body>    <center>        <h1>圖形(周長&面積) 計算器</h1>        <a href="index.php?action=rect">矩形</a>        <a href="index.php?action=triangle">三角形</a>        <a href="index.php?action=circle">圓形</a>        <hr>    </center>    <?php  //php代碼部分        error_reporting(E_ALL & ~E_NOTICE);//提示錯誤的等級    // __autoload是php中的魔術方法,在用到類的時候自動調用        function __autoload($className){            //自動導入這個類            include strtolower($className).".class.php";        }        //輸出表單,form類中有魔術方法__toString,因此可以直接輸出類的對象引用,就是輸出對象返回的字符串        echo new Form();        if(isset($_POST["sub"])){            //輸出結果            echo new Result();//直接輸出對象的引用表示        }    ?></body></html>
form.class.php_這是表單類_
<?php    //根據index中提交的不同action的值返回不同的表單    class Form{        private $action;        private $shape;        //構造方法        function __construct($action=""){            $this->action = $action;            $this->shape=isset($_REQUEST["action"])?$_REQUEST["action"]:"rect";        }        function __toString()        {            // TODO: Implement __toString() method.            $form='<form action="'.$this->action.'"  method="post">';            switch($this->shape){                case "rect":                    $form.=$this->getRect();                    break;                case "triangle":                    $form.=$this->getTriangle();                    break;                case "circle":                    $form.=$this->getCircle();                    break;                default:                    $form.='請選擇一個形狀<br>';            }            $form.='<input type="submit" name="sub" value="計算">';            $form.='</form>';            return $form;        }        private function getRect(){            $input='<b>請輸入 | 矩形 | 的寬度和高度:</b><p>';            $input.='寬度:<input type="text" name="width" value="'.$_POST['width'].'"><br>';            $input.='高度:<input type="text" name="height" value="'.$_POST['height'].'"><br>';            $input.='<input type="hidden" name="action" value="rect">';            return $input;        }        private function getTriangle(){            $input='<b>請輸入 | 三角形 | 的三條邊:</b><p>';            $input.='第一邊: <input type="text" name="side1" value="'.$_POST['side1'].'" ><br>';            $input.='第二邊: <input type="text" name="side2" value="'.$_POST['side2'].'" ><br>';            $input.='第三邊: <input type="text" name="side3" value="'.$_POST['side3'].'" ><br>';            $input.='<input type="hidden" name="action" value="triangle">';            return $input;        }        private function getCircle(){            $input='<b>請輸入 | 圓形 | 的半徑:</b><p>';            $input.='半徑: <input type="text" name="radius" value="'.$_POST['radius'].'" ><br>';            $input.='<input type="hidden" name="action" value="circle">';            return $input;        }    }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 16:26 * */
shape.class.php 這是一個抽象類,用來定義規范的
<?phpabstract class Shape {    public $shapeName;    //規范circle、triangle、rect中必須有area()、perimeter()方法    abstract function area();    abstract function perimeter();    public function setShapeName($shapeName)    {        $this->shapeName = $shapeName;        return $this;    }    //判斷輸入的數字是否為大于0的有效數字    protected function validate($value, $message="形狀"){        if($value == "" || !is_numeric($value) || $value < 0 ){            echo '<font color="red"> '.$message.' 必須為非負值的數字,并且不能為空 </font><br>';            return false;        } else {            return true;        }    }}/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 16:42 */
circle.class.php_就是計算周長和面積的公式了_
<?phpclass Circle extends Shape {    private $radius=0;    function __construct(){        $this->shapeName="圓形";        if($this->validate($_POST['radius'], '圓的半徑')){            $this->radius=$_POST["radius"];        }else{            exit;        }    }    function area(){        return pi()*$this->radius*$this->radius;    }    function perimeter(){        return 2*pi()*$this->radius;    }}/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 17:06 */
rect.class.php
<?phpclass Rect extends Shape{    private $width=0;    private $height=0;    function __construct()    {        $this->shapeName="矩形";        if($this->validate($_POST["width"],'矩形的寬度') & $this->validate($_POST["height"],'矩形的高度'))        {            $this->width=$_POST["width"];            $this->height=$_POST["height"];        }        else{            exit;        }    }    function area(){        return $this->width*$this->height;    }    function perimeter()    {        return 2 * ($this->width + $this->height);    }}/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 17:02 */
triangle.class.php
<?phpclass Triangle extends Shape{    private $side1=0;    private $side2=0;    private $side3=0;    function __construct(){        $this->shapeName="三角形";        if($this->validate($_POST['side1'], '三角形的第一個邊')){            $this->side1=$_POST["side1"];        }        if($this->validate($_POST['side2'], '三角形的第二個邊')){            $this->side2=$_POST["side2"];        }        if($this->validate($_POST['side3'], '三角形的第三個邊')){            $this->side3=$_POST["side3"];        }        if(!$this->validateSum()){            echo '<font color="red">三角形的兩邊之和必須大于第三邊</font>';            exit;        }    }    function area(){        $s=( $this->side1+$this->side2+$this->side3 )/2;        return sqrt( $s * ($s - $this->side1) * ($s - $this->side2) * ($s - $this->side3) );    }    function perimeter(){        return $this->side1+$this->side2+$this->side3;    }    private function validateSum()    {        $condition1 = ($this->side1 + $this->side2) > $this->side3;        $condition2 = ($this->side1 + $this->side3) > $this->side2;        $condition3 = ($this->side2 + $this->side3) > $this->side1;        if ($condition1 && $condition2 && $condition3) {            return true;        } else {            return false;        }    }}/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 17:04 */
result.class.php_這里是返回計算結果類_
<?php    class Result{        private $shape;        function __construct()        {            switch($_POST['action']){                case 'rect':                    $this->shape=new Rect();                    break;                case 'triangle':                    $this->shape=new Triangle();                    break;                case 'circle':                    $this->shape=new Circle();                    break;                default:                    $this->shape=false;            }        }        /**         * @return string         */        function __toString()        {            // TODO: Implement __toString() method.            if($this->shape){                $result=$this->shape->shapeName.'的周長:'.$this->shape->perimeter().'<br>';                $result.=$this->shape->shapeName.'的面積:'.$this->shape->area().'<br>';                return $result;            }else{                return '沒有這個形狀';            }        }    }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 16:47 */

相關推薦:

PHP面向對象 靜態延遲綁定static::

以上就是php面向對象編程練習:計算矩形、三角形、圓形的周長和面積 的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文在线资源观看视频网站免费不卡| 日本午夜人人精品| 国产欧美一区二区| 欧美野外猛男的大粗鳮| 欧美最近摘花xxxx摘花| 日韩美女写真福利在线观看| 亚洲天堂视频在线观看| 国产成人午夜视频网址| 精品国产电影一区| 亚洲欧美日本精品| 欧美一级在线播放| 欧美黑人极品猛少妇色xxxxx| 国产精品入口福利| 欧美激情高清视频| 亚洲国产成人一区| 奇米影视亚洲狠狠色| 欧美成人在线网站| 亚洲性69xxxbbb| 日韩美女视频免费看| 中日韩美女免费视频网站在线观看| 成人激情在线播放| 国产精品中文久久久久久久| 中文字幕亚洲情99在线| 久久中文字幕国产| 亚洲欧美资源在线| 成人黄色在线播放| 色老头一区二区三区在线观看| 综合网中文字幕| 亚洲精品资源在线| 欧美www视频在线观看| 欧美精品情趣视频| 久久久精品2019中文字幕神马| 亚洲第一区在线观看| 日韩美女在线观看一区| 日韩av中文字幕在线播放| 最新91在线视频| 色妞一区二区三区| 日韩高清人体午夜| 精品福利在线视频| 国产欧美在线视频| xvideos国产精品| 日本成熟性欧美| 日韩高清电影好看的电视剧电影| 福利视频第一区| 91精品国产91久久久久福利| 精品无人区乱码1区2区3区在线| 久久天天躁狠狠躁老女人| 精品福利免费观看| 久久久久国产视频| 欧美日韩亚洲网| 亚洲综合小说区| 久久久之久亚州精品露出| 国产精品美腿一区在线看| 青青草精品毛片| 91国产精品电影| 成人激情电影一区二区| 伊人一区二区三区久久精品| 亚洲精品视频二区| 亚洲美女自拍视频| 欧美精品成人在线| 国产精品成av人在线视午夜片| 中文字幕最新精品| 日韩欧美一区二区在线| 久久99久久99精品中文字幕| 精品美女永久免费视频| 国产精品欧美日韩| 欧美日韩亚洲成人| 国产精品大陆在线观看| 伊人一区二区三区久久精品| 亚洲激情小视频| 亚洲免费av片| 日韩在线精品视频| 国产精品自拍小视频| 欧美乱人伦中文字幕在线| 色香阁99久久精品久久久| 琪琪第一精品导航| 亚洲性视频网站| 久久成人在线视频| 91高清免费在线观看| 国产精品一久久香蕉国产线看观看| 在线观看欧美成人| 日韩av手机在线看| 国外成人性视频| 国产精品1区2区在线观看| 欧美自拍大量在线观看| 日本精品中文字幕| 日韩激情av在线播放| 97国产精品久久| 中文字幕欧美日韩| 亚洲欧美日韩直播| 成人黄色免费片| 国产精品吊钟奶在线| 亚洲v日韩v综合v精品v| 91精品国产高清久久久久久久久| 亚洲精品日产aⅴ| 一区二区三区视频观看| 欧美成年人网站| 亚洲精品国产精品国产自| 成人在线观看视频网站| 日韩中文字幕在线视频播放| 亚洲精品视频中文字幕| 日韩精品中文字幕久久臀| 国产精品成人av在线| 中文字幕精品影院| 日韩国产精品视频| 中文字幕日韩精品在线| 久久国产精品久久久| 中文字幕亚洲综合| 亚洲网站在线播放| 久久精品国产电影| 精品亚洲国产视频| 疯狂做受xxxx欧美肥白少妇| 国产成人一区二区| 欧美日韩综合视频| 亚洲理论电影网| 欧美精品久久久久久久久久| 欧美黄色性视频| xx视频.9999.com| 日本精品久久久久影院| 啊v视频在线一区二区三区| 亚洲国产精品视频在线观看| 欧美成人在线影院| 国内精品免费午夜毛片| 在线视频欧美性高潮| 中文字幕成人精品久久不卡| 日韩福利视频在线观看| 色妞久久福利网| 欧美成人第一页| 中文字幕亚洲字幕| 欧美国产日本高清在线| 欧洲午夜精品久久久| 欧美亚洲国产视频小说| 亚洲女在线观看| 国产精品久久久久高潮| 国产精品视频一区二区三区四| 色一情一乱一区二区| 亚洲午夜久久久影院| 成人有码在线播放| 亚洲区免费影片| 日韩在线观看网站| 国产精品美女主播| 成人免费视频97| 欧美视频在线观看免费| 日韩av网站导航| 欧美性极品少妇精品网站| 日韩资源在线观看| 77777亚洲午夜久久多人| 亚洲成人网av| 日韩高清av一区二区三区| 久久久人成影片一区二区三区观看| 亚洲精品美女视频| 亚洲va欧美va国产综合久久| 国产欧美日韩精品丝袜高跟鞋| 欧美在线一区二区视频| 精品亚洲夜色av98在线观看| 久久中文久久字幕| 亚洲人成伊人成综合网久久久| 欧美乱大交做爰xxxⅹ性3| 亚洲欧美精品一区| 国产精品视频精品| 日韩视频免费大全中文字幕| 久久精品美女视频网站| 91欧美精品午夜性色福利在线| 国产日韩综合一区二区性色av|