/*
形状
*/
abstract class Xz {
public $name;
// 求面积
abstract function mj();
// 求周长
abstract function zc();
// 表单界面
abstract function view();
// 验证
abstract function yz($arr);
}
/*
矩形
*/
class Jx extends Xz {
private $width;
private $height;
function __construct( $arr=array() ) {
if ( !empty($arr) ) {
$this->width = $arr['width'];
$this->height = $arr['height'];
}
$this->name = '矩形';
}
function mj(){
return $this->width * $this->height;
}
function zc(){
return ($this->width + $this->height) * 2;
}
function view(){
$form = "";
echo $form;
}
function yz( $arr ){
$flag = true;
if ( $arr['width'] < 0 ) {
echo "{$this->name} 的宽不能小于等于0";
$flag = false;
}
if ( $arr['height'] < 0 ) {
echo "{$this->name} 的高不能小于等于0";
$flag = false;
}
return $flag;
}
}
/*
三角形
*/
class Sjx extends Xz {
private $c1;
private $c2;
private $c3;
function __construct( $arr=array() ) {
if ( !empty($arr) ) {
$this->c1 = $arr['c1'];
$this->c2 = $arr['c2'];
$this->c3 = $arr['c3'];
}
$this->name = '三角形';
}
// 海伦公式求面积
function mj(){
$p = ($this->c1 + $this->c2 + $this->c3) / 2;
return sqrt($p*($p-$this->c1)*($p-$this->c2)*($p-$this->c3));
}
function zc(){
return $this->c1 + $this->c2 + $this->c3;
}
function view(){
$form = "";
echo $form;
}
function yz( $arr ){
$flag = true;
if ( $arr['c1'] < 0 ) {
echo "{$this->name} 的 c1 不能小于等于0";
$flag = false;
}
if ( $arr['c2'] < 0 ) {
echo "{$this->name} 的 c2 不能小于等于0";
$flag = false;
}
if ( $arr['c3'] < 0 ) {
echo "{$this->name} 的 c3 不能小于等于0";
$flag = false;
}
// 两边之和大于第三边
if (
$arr['c1'] + $arr['c2'] < $arr['c3'] ||
$arr['c1'] + $arr['c3'] < $arr['c2'] ||
$arr['c3'] + $arr['c2'] < $arr['c1']
) {
echo "两边之和大于第三边";
$flag = false;
}
return $flag;
}
}
?>
极简的图形计算器
矩形 三角形 圆形view(); // 用户是否提交了对应图形界面的表单 if ( isset($_POST['submit']) ) { // 验证用户输入的数据 if ( $xz->yz($_POST) ) { // 计算图形的面积、周长 echo $xz->name.' 的面积:'.$xz->mj().'
'; echo $xz->name.' 的周长:'.$xz->zc().'
'; } } } // 若没有单击链接,则提示 else { echo '请选择计算什么图形!'; } ?>