PHP怎样编写一个图形计算器?
Admin 2021-04-27 群英技术资讯 427 次浏览
PHP如何编写图形计算器?对四则运算计算器我们都很熟悉了,有些朋友就好奇能不能对图像计算呢?当然是可以的,下面就给大家介绍一下如何实现三角形,矩形和圆形计算的简易计算器。
主函数:index.php
<!doctype html> <html> <head> <meta charset="utf-8"> <title>图形计算器</title> <style> * { margin: 0px; padding: 0px; } #contains { width: 500px; margin: 20px auto; background: #0C0; text-align: center; } h1 { width: 500px; height: 60px; } a { font-size: 20px; text-decoration: none; } #footer { width: 300px; background: #fff; margin: 0 auto; padding: 5px 10px; border-radius: 150px; } </style> </head> <body> <div id="contains"> <h1>简易图形计算器</h1> <a href='index.php?action=rect'>矩形</a> | <a href='index.php?action=triangle'>三角形</a>| <a href='index.php?action=cirle'>圆形</a> <hr> <?php ini_set("display_errors", "On"); //开启错误调试 //设置错误报告的级别,除了无关紧要的'注意',其他的报告都输出 error_reporting(E_ALL & ~E_NOTICE); function __autoload($classname) { //魔术方法 自动加载类 include strtolower($classname).".class.php"; //将类名转化成小写 } // include "shape.class.php"; // include "rect.class.php"; if (!empty($_GET['action'])) { // echo "传送成功"; $classname = ucfirst($_GET['action']); $shape = new $classname($_POST); $shape->view($_POST); if (isset($_POST['sub'])) { echo "<div id='footer'>"; if ($shape->yan($_POST)) { echo "<b>".$shape->name."的周长".$shape->zhou()."</b>"."<br>"; echo "<br>"; echo "<b>".$shape->name."的面积".$shape->area()."</b>"."<br>"; }else { echo "<b>错误:$shape->error</b>"; } echo "</div>"; } } else { echo "请选择一个图形"; } ?> </div> </body> </html>
先定义一个抽象类
<?php abstract class Shape { private $name; private $error; abstract function area(); abstract function zhou(); abstract function view($arr); abstract function yan($arr); } ?>
矩形类的编写
<?php class Rect extends Shape { private $width; private $height; function __construct($arr = array()) { if (!empty($arr)) { $this->width = $arr['width']; $this->height = $arr['height']; } $this->name = "矩形"; $this->error = ''; } function area() { return $this->width * $this->height; } function zhou() { return ($this->width+$this->height) * 2; } function view($arr) { $form .= "<form action='index.php?action=rect' method='post'>"; $form .= "请输入".$arr['name']."的宽度:<input type='text' name='width' value='".$_POST['width']."'/><br>"; $form .= "<br>"; $form .= "请输入".$arr['name']."的长度:<input type='text' name='height' value='".$_POST['height']."'/><br>"; $form .= "<br>"; $form .= "<input type='submit' name='sub' value='提交'/> "; $form .= "<input type='reset' name='ret' value='重置'/>"; $form .= "</form>"; echo $form; } function yan($arr) { $bz = true; if ($arr['width']< 0) { $this->error .= "宽度小于0;"; $bz = false; } else { if (!is_numeric($arr['width'])) { $this->error .= "宽不是数字;"; $bz = false; } } if ($arr['height']< 0) { $this->error .= "宽度小于0;"; $bz = false; } else { if (!is_numeric($arr['height'])) { $this->error .= "高不是数字;"; $bz = false; } } return $bz; } } ?>
三角形类:
<?php class Triangle extends Shape { private $bian1; private $bian2; private $bian3; function __construct($arr = array()) { if (!empty($arr)) { $this->bian1 = $arr['bian1']; $this->bian2 = $arr['bian2']; $this->bian3 = $arr['bian3']; } $this->name = "三角形"; $this->error = ''; } function area() { $p = ($this->bian1 + $this->bian2 + $this->bian3) / 2; // p(p-a)(p-b)(p-c) return sqrt($p*($p-$this->bian1)*($p-$this->bian2)*($p-$this->bian3)); } function zhou() { return $this->bian1+$this->bian2+$this->bian3; } function view($arr) { $form .= "<form action='index.php?action=triangle' method='post'>"; $form .= "请输入".$arr['name']."的第一条边:<input type='text' name='bian1' value='".$_POST['bian1']."'/><br>"; $form .= "<br>"; $form .= "请输入".$arr['name']."的第二条边:<input type='text' name='bian2' value='".$_POST['bian2']."'/><br>"; $form .= "<br>"; $form .= "请输入".$arr['name']."的第三条边:<input type='text' name='bian3' value='".$_POST['bian3']."'/><br>"; $form .= "<br>"; $form .= "<input type='submit' name='sub' value='提交'/> "; $form .= "<input type='reset' name='ret' value='重置'/>"; $form .= "</form>"; echo $form; } function yan($arr) { $bz = true; if ($arr['bian1']< 0) { $this->error .= "第一条边小于0;"; $bz = false; } else { if (!is_numeric($arr['bian1'])) { $this->error .= "第一条边不是数字;"; $bz = false; } } if ($arr['bian2']< 0) { $this->error .= "第二条边小0;"; $bz = false; } else { if (!is_numeric($arr['bian2'])) { $this->error .= "第二条边不是数字;"; $bz = false; } } if ($arr['bian2']< 0) { $this->error .= "第三条边小于0;"; $bz = false; } else { if (!is_numeric($arr['bian2'])) { $this->error .= "第三条边不是数字;"; $bz = false; } } if (($this->bian1+$this->bian2) < $this->bian3 ||($this->bian1+$this->bian3) < $this->bian2 ||($this->bian2+$this->bian3) < $this->bian1) { $this->error .= "三条边不能构成三角形"; $bz = false; } return $bz; } } ?>
其他的类只要按照上面的格式改下就很好写出来了。
以上就是PHP实现简易图形计算器的代码,想要实现更多功能,大家能够参考上面的代码,原理都是差不多的,希望本文对大家有帮助。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
php中 __clone的使用:1、用于对象复制。对象复制通过clone关键字来完成。2、__clone()方法不需要任何参数。3、在复制的同时,目标对象的某些属性与源对象的不同,可以在类里面定义一个__clone()方法。
这篇文章将通过示例详细为大家讲解一下游戏中的抽奖算法,文中的示例代码讲解详细,对我们学习PHP有一定的帮助,需要的可以参考一下
本文实例讲述了PHP设计模式:原型模式Prototype。分享给大家供大家参考,具体如下:
这篇文章主要介绍了PHP实现15位身份证号转18位的方法,结合实例形式分析了15位身份证号转18位的相关原理与php实现技巧,需要的朋友可以参考下
这篇文章主要介绍了PHP中抽象类和接口的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008