PHP实现的简单三角形、矩形周长面积计算器分享
运用PHP面向对象的知识设计一个图形计算器,同时也运用到了抽象类知识,这个计算器可以计算三角形的周长和面积以及矩形的周长和面积。本图形计算器有4个页面:1.PHP图形计算器主页index.php; 2.形状的抽象类shape.class.php; 3三角形计算类triangle.class.php; 4.矩形计算类rect.class.php。
PHP图形计算器代码点击下载: php图形计算器.zip
代码分别如下:
PHP图形计算器主页:
<html> <head> <title>简单的图形计算器</title> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> </head> <body> <center> <h1>简单的图形计算器</h1> <ahref="index.php?action=rect">矩形</a>|| <ahref="index.php?action=triangle">三角形</a> </center> <hr><br> <?php error_reporting(E_ALL&~E_NOTICE); //设置自动加载这个程序需要的类文件 function__autoload($classname){ includestrtolower($classname).".class.php"; } //判断用户是否有选择单击一个形状链接 if(!empty($_GET['action'])){ //第一步:创建形状的对象 $classname=ucfirst($_GET['action']); $shape=new$classname($_POST); //第二步:调用形状的对象中的界面view() $shape->view(); //第三步:用户是否提交了对应图形界面的表单 if(isset($_POST['dosubmit'])){ //第四步:查看用户输出的数据是否正确,失败则提示 if($shape->yan($_POST)){ //计算图形的周长和面积 echo$shape->name."的周长为:".$shape->zhou()."<br>"; echo$shape->name."的面积为:".$shape->area()."<br>"; } } //如果用户没有单击链接,则是默认访问这个主程序 }else{ echo"请选择一个要计算的图形!<br>"; } ?> </body> </html>
形状的抽象类:
abstractclass Shape{ //形状的名称 public$name; //形状的计算面积方法 abstractfunctionarea(); //形状的计算周长的方法 abstractfunctionzhou(); //形状的图形表单界面 abstractfunctionview(); //形状的验证方法 abstractfunctionyan($arr); }
三角形计算类文件:
classTriangleextendsShape{ 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="三角形"; } functionarea(){ $p= ($this->bian1+$this->bian2+$this->bian3)/2; returnsqrt($p*($p-$this->bian1)*($p-$this->bian2)*($p-$this->bian3)); } functionzhou(){ return$this->bian1+$this->bian2+$this->bian3; } functionview(){ $form='<formaction="index.php?action=triangle"method="post">'; $form.=$this->name.'第一个边:<inputtype="text"name="bian1"value="'.$_POST['bian1'].'"/><br>'; $form.=$this->name.'第二个边:<inputtype="text"name="bian2"value="'.$_POST['bian2'].'"/><br>'; $form.=$this->name.'第三个边:<inputtype="text"name="bian3"value="'.$_POST['bian3'].'"/><br>'; $form.='<inputtype="submit"name="dosubmit"value="计算"><br>'; $form.='<form>'; echo$form; } functionyan($arr){ $bj=true; if($arr['bian1']<0){ echo"第一个边不能小于0!<br>"; $bj=false; } if($arr['bian2']<0){ echo"第二个边不能小于0!<br>"; $bj=false; } if($arr['bian3']<0){ echo"第三个边不能小于0!<br>"; $bj=false; } if(($arr['bian1']+$arr['bian2']<$arr['bian3'])||($arr['bian1']+$arr['bian3']<$arr['bian2'])||($arr['bian2']+$arr['bian3']<$arr['bian1'])){ echo"两边之和必须大于第三个边"; $bj=false; } return$bj; } }
矩形计算类文件:
classRectextendsShape{ private$width; private$height; function__construct($arr=array()){ if(!empty($arr)){ $this->width=$arr['width']; $this->height=$arr['height']; } $this->name="矩形"; } functionarea(){ return$this->width*$this->height; } functionzhou(){ return2*($this->width+$this->height); } functionview(){ $form='<formaction="index.php?action=rect"method="post">'; $form.=$this->name.'的宽:<inputtype="text"name="width"value="'.$_POST['width'].'"/><br>'; $form.=$this->name.'的高:<inputtype="text"name="height"value="'.$_POST['height'].'"/><br>'; $form.='<inputtype="submit"name="dosubmit"value="计算"><br>'; $form.='<form>'; echo$form; } functionyan($arr){ $bg=true; if($arr['width']<0){ echo$this->name."的宽不能小于0!<br>"; $bg=false; } if($arr['height']<0){ echo$this->name."的高度不能小于0!<br>"; $bg=false; } return$bg; } }