您好,登錄后才能下訂單哦!
主程序頁面 test.php頁面
<!DOCTYPE html> <html> <head> <title>簡單的圖形計算器</title> <meta http-equiv = "Content-Type" content = "text/html;charset=utf-8" /> </head> <body> <center> <h2>簡單的圖形計算器</h2> <a href = "test.php?action=rectangle">矩形</a> || <a href = "test.php?action=triangle">三角形</a> </center> <br/><hr> <?php //屏蔽E_NOTICE提示 error_reporting(E_ALL & ~E_NOTICE); //設置自動加載這個程序需要的類文件 function __autoload($classname){ include $classname.'.class.php'; } //判斷用戶是否單擊一個形狀鏈接 if(!empty($_GET['action'])){ //第一步:創(chuàng)建形狀的對象 $classname = ucfirst($_GET['action']); $shape = new $classname($_POST); //第二步:調用形狀的對象中的圖形界面 $shape->view(); //第三步:用戶是否提交了對應的圖形界面的表單 if(isset($_POST['dosubmit'])){ //第四步:查看用戶輸入的數據是否合法,不合法則提示 if($shape->validate($_POST)){ //第五步:計算圖形的面積和周長 echo $shape->name.'的面積為:'.$shape->area().'<br/>'; echo $shape->name.'的周長為:'.$shape->circumference().'<br/>'; } } }else{//如果用戶沒有單擊則默認訪問主程序 echo '請選擇一個要計算的圖形'; } ?> </body> </html>
形狀抽象類Shape.class.php頁面
<?php //形狀抽象類 abstract class Shape{ public $name; //面積 abstract function area(); //周長 abstract function circumference(); //圖形界面 abstract function view(); //形狀驗證方法 abstract function validate($arr); }
矩形類Rectangle.class.php頁面
<?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 = '<form action="test.php?action=rectangle" method="post">'; $form .= $this->name.'的寬:<input type="text" name="width" value="'.$_POST['width'].'" /> <br/>'; $form .= $this->name.'的高:<input type="text" name="height" value="'.$_POST['height'].'" /> <br/>'; $form .= '<input type="submit" name="dosubmit" value="計算" /> <br/>'; $form .= '</form>'; echo $form; } //形狀驗證方法 function validate($arr){ $flag = true; if($arr['width']<0 || !is_numeric($arr['width'])){ echo $this->name.'的寬必須是大于0的整數<br/>'; $flag = false; } if($arr['height']<0 || !is_numeric($arr['height'])){ echo $this->name.'的高必須是大于0的整數<br/>'; $flag = false; } return $flag; } }
三角形類Triangle.class.php頁面
<?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 = '<form action="test.php?action=triangle" method="post">'; $form .= $this->name.'的第一個邊:<input type="text" name="edge1" value="'.$_POST['edge1'].'" /> <br/>'; $form .= $this->name.'的第二個邊:<input type="text" name="edge2" value="'.$_POST['edge2'].'" /> <br/>'; $form .= $this->name.'的第三個邊:<input type="text" name="edge3" value="'.$_POST['edge3'].'" /> <br/>'; $form .= '<input type="submit" name="dosubmit" value="計算" /> <br/>'; $form .= '</form>'; echo $form; } //形狀驗證方法 function validate($arr){ $flag = true; if($arr['edge1']<0 || !is_numeric($arr['edge1'])){ echo $this->name.'的第一邊必須是大于0的整數<br/>'; $flag = false; } if($arr['edge2']<0 || !is_numeric($arr['edge2'])){ echo $this->name.'的第二邊必須是大于0的整數<br/>'; $flag = false; } if($arr['edge3']<0 || !is_numeric($arr['edge3'])){ echo $this->name.'的第三邊必須是大于0的整數<br/>'; $flag = false; } if(($arr['edge1']+$arr['edge2']<$arr['edge3']) || ($arr['edge1']+$arr['edge3']<$arr['edge2'])||($arr['edge3']+$arr['edge2']<$arr['edge1']) ){ echo '三角形定義必須兩邊之和大于第三邊<br/>'; $flag = false; } return $flag; } }
瀏覽器 矩形頁面
瀏覽器 三角形頁面
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。