PHP实现简易图形计算器

2020-10-10 0 536

本文实例为大家分享了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实现简易图形计算器 http://www.ox520.com/22593.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务