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;
}
}