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 相关文章推荐
实用函数10
Nov 08 PHP
php heredoc和phpwind的模板技术使用方法小结
Mar 28 PHP
PHP学习之字符串比较和查找
Apr 17 PHP
解析PHP中ob_start()函数的用法
Jun 24 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
May 04 PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 PHP
php判断文件夹是否存在不存在则创建
Apr 09 PHP
PHP实现简单实用的验证码类
Jul 29 PHP
Yii2实现让关联字段支持搜索功能的方法
Aug 10 PHP
PHP7下协程的实现方法详解
Dec 17 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
May 29 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
php中实现记住密码自动登录的代码
2011/03/02 PHP
php结合表单实现一些简单功能的例子
2011/06/04 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
2014/06/30 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
javascript 操作文件 实现方法小结
2009/07/02 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
python3实现暴力穷举博客园密码
2016/06/19 Python
spyder常用快捷键(分享)
2017/07/19 Python
numpy中的高维数组转置实例
2018/04/17 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
python中pip的安装与使用教程
2018/08/10 Python
Python检测数据类型的方法总结
2019/05/20 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
Python使用docx模块实现刷题功能代码
2020/02/13 Python
python TCP包注入方式
2020/05/05 Python
python中有帮助函数吗
2020/06/19 Python
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
如何在存储过程中使用Loop
2016/01/05 面试题
关于递归的一道.NET面试题
2013/05/12 面试题
正隆泰信息技术有限公司上机题
2012/06/14 面试题
党员一句话承诺大全
2014/03/28 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
夫妻吵架保证书
2015/05/08 职场文书
初三数学教学反思
2016/02/17 职场文书