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面向对象法则
Feb 23 PHP
有关PHP中MVC的开发经验分享
May 17 PHP
解析PHP实现多进程并行执行脚本
Jun 18 PHP
PHP基于单例模式实现的数据库操作基类
Jan 15 PHP
PHP类的声明与实例化及构造方法与析构方法详解
Jan 26 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
Feb 15 PHP
php基于curl实现随机ip地址抓取内容的方法
Oct 11 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
Dec 15 PHP
laravel实现批量更新多条记录的方法示例
Oct 22 PHP
PHP实现的多维数组去重操作示例
Jul 21 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
Sep 03 PHP
laravel 验证错误信息到 blade模板的方法
Sep 29 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删除xml文档内容的方法
2015/01/23 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
PHP crc32()函数讲解
2019/02/14 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
javascript eval函数深入认识
2009/02/21 Javascript
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
简单实现JS对dom操作封装
2015/12/02 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
判断是否存在子节点的实现代码
2016/05/18 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
JavaScript实现鼠标点击导航栏变色特效
2017/02/08 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
python的Template使用指南
2014/09/11 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
python使用Tesseract库识别验证
2018/03/21 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
python实现socket+threading处理多连接的方法
2019/07/23 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
python numpy矩阵信息说明,shape,size,dtype
2020/05/22 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
应届本科生推荐信范文
2013/12/25 职场文书
大学班长的职责
2014/01/27 职场文书
三严三实对照检查材料
2014/08/25 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android