前端学PHP之面向对象系列第六篇——简单图形面积…
2018-06-22 05:00:34来源:未知 阅读 ()
前面的话
本文用面向对象的技术来实现一个简单的图形面积计算器
图形类
//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; } } ?>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:前端学PHP之字符串函数
- PHP写UltraEdit插件脚本实现方法 2020-03-29
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP三元运算符的结合性介绍 2020-03-28
- PHP静态延迟绑定和普通静态效率的对比 2020-03-28
- 基于php流程控制语句和循环控制语句 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash