本文实例为大家分享了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; } } ?>
其他的类只要按照上面的格式改下就很好写出来了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。