zoukankan      html  css  js  c++  java
  • php.图形计算器(面向对象)

    index.php页面:

    <html>

       <head>

          <title>图形计算器(面向对象)</title>

          <meta http-equiv="Content-Type" content="text/html;charset=utf-8">

       </head>

       <body>

            <center>

                 <h1>图形(面积 && 周长)计算器)<h1>

                 <a href="index.php?action=rect">矩形</a>||

                 <a href="index.php?action=triangle">三角形</a>||

                 <a href="index.php?action=circle">圆形</a>

                 <hr>

            </center>

            <?php

                   error_reporting(E_ALL & ~E_NOTICE);

                   function _autoload($className)

                   {

                           include strtolower($className).".class.php";

                         }

                    echo new Form();

                    if(isset($_POST["sub"])){

                    echo new Result();

                      }

             ?>

      </body>

    </html>


    form.class.php页面:

    <?php

         class Form{

                 private $action;

                 private $shape;

                 function _construct($action="index.php"){

                         $this->action = $action;

                         $this->shape = isset($_REQUEST["action"]) ? $_REQUEST["action"]:"rect";

                  }

                 function _toString(){

                          $form='<form action="'.$this->action.'" method="post">';

                          switch($this->shape){

                               case"rect":

                                    $form.=$this->getRect();

                                    break;

                               case"triangle":

                                    $form.=$this->getTriangle();

                                    break;

                               case"circle":

                                    $form.=$this->getcircle();

                                     break;
                               default:
                                    $form.='请选择一个形状';
                           }
                           $form.='<input type="submit" name="sub" value="计算">';
                          $form.='</form>';
                          return $form;
         }
                  private function getRect(){
                                 $input='<b>请输入|矩形|的长和宽:</b><p>';
                                 $input.='宽度:<input type="text" name="width" value="'.$_POST['width'].'"><br>';
                                 $input.='高度:<input type="test" name="height" value="'.$_POST['height'].'"><br>';
                                 $input.='<input type="hidden" name="action" value="rect">';
                                 return $input;
    }
                  private function getTriangle(){
                                $input='<b>请输入|三角形|的三边:</b><p>';
                                $input='<b>请输入|三角形|的三边:</b><p>';
                                $input.='第一边:<input type="text" name="side1" value="'.$_POST['side1'].'"><br>';
                                $input.='第二边:<input type="test" name="side2" value="'.$_POST['side2'].'"><br>';
                                $input.='第三边:<input type="test" name="side3" value="'.$_POST['side3'].'"><br>';
                                $input.='<input type="hidden" name="action" value="triangle">';
                                return $input;
    }
                  private function getCircle(){
                               $input='<b>请输入|圆形|的半径:</b><p>';
                               $input.='半径:<input type="text" name="radius" value="'.$_POST['radius'].'"><br>';
                               $input.='<input type="hidden" name="action" value="circle">';
                               return $input;
    }
    }
    ?>
    shape.php页面:

    <?php
         abstract class shape{
                public $shapeName;
                abstract function area();
                abstract function perimeter();

                 protected function validate($value,$message="形状"){
                          if($value == "" ||!is_numeric($value)||$value < 0){
                               echo '<font color="red">'.$message.'必须为非负值的数>字,并且不能为空</font><br>';
                               return false;
           }              else{
                               return true;
                              }
                }

         }

    ?>

    Rect.php页面<?php

        class Rect extends Shape{

                 private $width=0;

                 private $height=0;

                 function _construct(){

                         $this->shapeName="矩形";

                         if($this->validate($_POST["width"],'矩形的宽度') & $this->validate($_POST["height"],'矩形的高度'))

                         {

                                  $this->width=$_POST["width"];

                                  $this->height=$_POST["height"];

                         }else{exit;}

                         $this->width=$_POST["width"];

                         $this->height=$_POST["height"];

                 }

                 function area(){

                         return $this->width*$this->height;

                 }

                 function perimeter(){

                         return 2*($this->width+$this->height);

                }
         }
    ?>
    Triangle.php页面:
    <?php
         class Triangle extends Shape{
                 private $side1=0;
                 private $side2=0;
                 private $side3=0;

                 function _construct(){
                      if($this->validate($_POST['side1'],'三角形的第一边')){
                            $this->side1=$_POST["side1"];
                      if($this->validate($_POST['side2'],'三角形的第一
    边')){
                            $this->side2=$_POST["side2"];
                      if($this->validate($_POST['side3'],'三角形的第一
    边')){
                            $this->side3=$_POST["side3"];

                      }
                      $this->side1=$_POST["side1"];
                      $this->side2=$_POST["side2"];
                      $this->side3=$_POST["side3"];
                 }
                      if(!$this->validateSum()){
                              echo '<font color="red">三角形的两边之和必须大于第三边
    </font>';
                              exit;
                      }
                 //海伦公式
                 function _area(){
                      $s=($this->side1+$this->side2+$this->side3)/2;
                      return  sqrt( $s*($s-$this->side1)*($s-$this->side2)*($s-$this->side3));

                 }
                 function _perimeter(){
                      return $this->side1+$this->side2+$this->side3;
                 }
                 private function validateSum(){
                         $condition1=($this->side1+$this->side2) > $this->side3;
                         $condition2=($this->side1+$this->side3) > $this->side2;
                         $condition3=($this->side2+$this->side3) > $this->side1;
                        if($condition1 $$ $condition2 $$ $condition3){              
                              return true;
                         } else{return false;}
                 }
         }
    ?>
    Circle.php界面:
    <?php
         class Circle extends Shape{
                 private $radius=0;

                 function _construct(){
                        $this->shapeName="圆形";
                        if($this->validate($_POST['radius'],'圆的半径')){
                            $this->radius.$_POST["radius"];
                        }else{exit;}
                        $this->radius=$_POST["radius"];
                 }
                 function area(){
                         return pi()*$this->radius*$this->radius;
                 }
                 function perimeter(){
                         return 2*pi()*$this->radius;
                 }
         }

    ?>

  • 相关阅读:
    HTML DOM 12 表格排序
    HTML DOM 10 常用场景
    HTML DOM 10 插入节点
    HTML DOM 09 替换节点
    HTML DOM 08 删除节点
    HTML DOM 07 创建节点
    022 注释
    024 数字类型
    005 基于面向对象设计一个简单的游戏
    021 花式赋值
  • 原文地址:https://www.cnblogs.com/xiaoyueer/p/2208090.html
Copyright © 2011-2022 走看看