首页后端开发PHP用PHP怎样实现计算图形周长和面积的计算器?

用PHP怎样实现计算图形周长和面积的计算器?

时间2024-03-26 00:28:04发布访客分类PHP浏览962
导读:这篇文章给大家分享的是用PHP怎样实现计算图形周长和面积的计算器。对新手学习PHP会有一定的参考价值,因此分享给大家做个参考,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。 主函数:index.php <!doct...

这篇文章给大家分享的是用PHP怎样实现计算图形周长和面积的计算器。对新手学习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有帮助,想要了解更多可以继续浏览网络其他相关的文章。

文本转载自脚本之家

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 用PHP怎样实现计算图形周长和面积的计算器?
本文地址: https://pptw.com/jishu/653139.html
html5和ih5有什么区别,不同点有哪些 如何使用C语言读写ini文件,代码是什么

游客 回复需填写必要信息