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 图像尺寸调整代码
May 26 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
Jun 26 PHP
php轻松实现中英文混排字符串截取
May 28 PHP
PHP中绘制图像的一些函数总结
Nov 19 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
Sep 30 PHP
PHP结合Mysql数据库实现留言板功能
Mar 04 PHP
PHP抓取及分析网页的方法详解
Apr 26 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
PHP经典实用正则表达式小结
May 04 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
Laravel 框架控制器 Controller原理与用法实例分析
Apr 14 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 日期时间函数的高级应用技巧
2009/10/10 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
jqgrid 表格数据导出实例
2013/11/21 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
JavaScript节点及列表操作实例小结
2015/08/05 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
微信小程序 实例应用(记账)详解
2016/09/28 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
使用vue.js实现联动效果的示例代码
2017/01/10 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
js实现下拉框二级联动
2018/12/04 Javascript
JavaScript如何使用插值实现图像渐变
2020/06/28 Javascript
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
文明家庭先进事迹材
2014/01/27 职场文书
机关出纳岗位职责
2014/04/03 职场文书
环保倡议书400字
2014/05/15 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
杭白菊导游词
2015/02/10 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL