PHP实现简易图形计算器


Posted in PHP onAugust 28, 2020

本文实例为大家分享了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实现简易图形计算器

PHP实现简易图形计算器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
通过具体程序来理解PHP里面的抽象类
Jan 28 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
PHP取得一个类的属性和方法的实现代码
May 22 PHP
PHP生成短网址的3种方法代码实例
Jul 08 PHP
typecho插件编写教程(一):Hello World
May 28 PHP
利用“多说”制作留言板、评论系统
Jul 14 PHP
ThinkPHP模型详解
Jul 27 PHP
php通过会话控制实现身份验证实例
Oct 18 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
Aug 07 PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 23 PHP
PHP如何使用JWT做Api接口身份认证的实现
Feb 03 PHP
PHP实现简单的计算器
Aug 28 #PHP
php实现简易计算器
Aug 28 #PHP
有关PHP 中 config.m4 的探索
Aug 26 #PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
Aug 26 #PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 #PHP
Laravel登录失败次数限制的实现方法
Aug 26 #PHP
利用PHP计算有多少小于当前数字的数字方法示例
Aug 26 #PHP
You might like
PHP中其实也可以用方法链
2011/11/10 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
javascript 用函数实现继承详解
2016/05/28 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
js中less常用的方法小结
2017/08/09 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
[22:07]DOTA2-DPC中国联赛 正赛 iG vs Magma 选手采访
2021/03/11 DOTA
python使用Tesseract库识别验证
2018/03/21 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
HTML5计时器小例子
2013/10/15 HTML / CSS
送给他或她的礼物:FUN.com
2018/08/17 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
英文版银行求职信
2013/10/09 职场文书
银行学习十八大感想
2014/01/11 职场文书
户外活动策划方案
2014/03/12 职场文书
毕业生自荐信如何写
2014/03/24 职场文书
高一新生军训方案
2014/05/12 职场文书
售后客服工作职责
2014/06/16 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
幼师求职自荐信
2015/03/26 职场文书
超市督导岗位职责
2015/04/10 职场文书