前端学PHP之面向对象系列第六篇简单图形面积计算器实现
前面的话
本文用面向对象的技术来实现一个简单的图形面积计算器
图形类
<span style="color: #008000;">//</span><span style="color: #008000;">rect.class.php</span> <span style="color: #000000;">php </span><span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Shape{ </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$name</span><span style="color: #000000;">; </span><span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> area(); </span><span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> view(); </span><span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">function</span> test(<span style="color: #800080;">$arr</span><span style="color: #000000;">); } </span>?>
登录后复制
主界面
<span style="color: #008000;">//</span><span style="color: #008000;">index.php</span> <meta charset="UTF-8"> <title>Document</title> <style> .<span style="color: #000000;">box{ width:<span style="color: #000000;"> 800px; margin: 0<span style="color: #000000;"> auto; } </style> <div style="color: #0000ff;">class="box"> <h1 id="图形计算器">图形计算器</h1> <div> <a href="index.php?action=rect">矩形</a> <a href="index.php?action=triangle">三角形</a> </div> </div> <span style="color: #000000;">php </span><span style="color: #008080;">error_reporting</span>(<span style="color: #ff00ff;">E_ALL</span> & ~<span style="color: #ff00ff;">E_NOTICE</span><span style="color: #000000;">); </span><span style="color: #0000ff;">function</span> __autoload(<span style="color: #800080;">$classname</span><span style="color: #000000;">){ </span><span style="color: #0000ff;">include</span> <span style="color: #008080;">strtolower</span>(<span style="color: #800080;">$classname</span>).".class.php"<span style="color: #000000;">; } </span><span style="color: #0000ff;">if</span>(!<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$_GET</span>['action'<span style="color: #000000;">])) { </span><span style="color: #800080;">$classname</span> = <span style="color: #008080;">ucfirst</span>(<span style="color: #800080;">$_GET</span>['action'<span style="color: #000000;">]); </span><span style="color: #800080;">$shape</span>=<span style="color: #0000ff;">new</span> <span style="color: #800080;">$classname</span>(<span style="color: #800080;">$_POST</span><span style="color: #000000;">); </span><span style="color: #800080;">$shape</span>-><span style="color: #000000;">view(); </span><span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$_POST</span>['dosubmit'<span style="color: #000000;">])) { </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$shape</span>->test(<span style="color: #800080;">$_POST</span><span style="color: #000000;">)) { </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$shape</span>->name."的面积为:".<span style="color: #800080;">$shape</span>->area()."<br>"<span style="color: #000000;">; } } }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #0000ff;">echo</span> "请选择一个要计算的图形!<br>"<span style="color: #000000;">; } </span>?>
登录后复制
矩形类
<span style="color: #008000;">//</span><span style="color: #008000;">rect.class.php</span> <span style="color: #000000;">php </span><span style="color: #0000ff;">class</span> Rect <span style="color: #0000ff;">extends</span><span style="color: #000000;"> Shape{ </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$width</span><span style="color: #000000;">; </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$height</span><span style="color: #000000;">; </span><span style="color: #0000ff;">function</span> __construct(<span style="color: #800080;">$arr</span>=<span style="color: #000000;">[]){ </span><span style="color: #0000ff;">if</span>(!<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$arr</span><span style="color: #000000;">)){ </span><span style="color: #800080;">$this</span>->width = <span style="color: #800080;">$arr</span>['width'<span style="color: #000000;">]; </span><span style="color: #800080;">$this</span>->height = <span style="color: #800080;">$arr</span>['height'<span style="color: #000000;">]; } </span><span style="color: #800080;">$this</span>->name = "矩形"<span style="color: #000000;">; } </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> area() { </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>->width * <span style="color: #800080;">$this</span>-><span style="color: #000000;">height; } </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> view() { </span><span style="color: #800080;">$form</span> = '
登录后复制
"; $bg = false; } if($arr['height'] ) { echo $this->name."的高度不能小于0!
"; $bg = false; } return $bg; } } ?>
三角形类
<span style="color: #008000;">//</span><span style="color: #008000;">triangle.class.php</span> <span style="color: #000000;">php </span><span style="color: #0000ff;">class</span> Triangle <span style="color: #0000ff;">extends</span><span style="color: #000000;"> Shape{ </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$b1</span><span style="color: #000000;">; </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$b2</span><span style="color: #000000;">; </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$b3</span><span style="color: #000000;">; </span><span style="color: #0000ff;">function</span> __construct(<span style="color: #800080;">$arr</span>=<span style="color: #000000;">[]){ </span><span style="color: #0000ff;">if</span>(!<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$arr</span><span style="color: #000000;">)){ </span><span style="color: #800080;">$this</span>->b1 = <span style="color: #800080;">$arr</span>['b1'<span style="color: #000000;">]; </span><span style="color: #800080;">$this</span>->b2 = <span style="color: #800080;">$arr</span>['b2'<span style="color: #000000;">]; </span><span style="color: #800080;">$this</span>->b3 = <span style="color: #800080;">$arr</span>['b3'<span style="color: #000000;">]; } </span><span style="color: #800080;">$this</span>->name = "三角形"<span style="color: #000000;">; } </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> area() { </span><span style="color: #800080;">$p</span> = (<span style="color: #800080;">$this</span>->b1 + <span style="color: #800080;">$this</span>->b2 + <span style="color: #800080;">$this</span>->b3)/2<span style="color: #000000;">; </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">sqrt</span>(<span style="color: #800080;">$p</span>*(<span style="color: #800080;">$p</span>-<span style="color: #800080;">$this</span>->b1)*(<span style="color: #800080;">$p</span>-<span style="color: #800080;">$this</span>->b2)*(<span style="color: #800080;">$p</span>-<span style="color: #800080;">$this</span>-><span style="color: #000000;">b3)); } </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> view() { </span><span style="color: #800080;">$form</span> = '
登录后复制
"; $bg = false; } if($arr['b2'] ) { echo "第二个边的宽不能小于0!
"; $bg = false; } if($arr['b3'] ) { echo "第三个边的宽不能小于0!
"; $bg = false; } if(($arr['b1'] + $arr['b2'] $arr['b3'])||($arr['b1'] + $arr['b3'] $arr['b2'])||($arr['b3'] + $arr['b2'] $arr['b1'])){ echo '两边之和不能小于第三边
'; $bg = false; } return $bg; } } ?>
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
如何修复KB5055523无法在Windows 11中安装?
4 周前
By DDD
如何修复KB5055518无法在Windows 10中安装?
4 周前
By DDD
<🎜>:种植花园 - 完整的突变指南
2 周前
By DDD
<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
如何修复KB5055612无法在Windows 10中安装?
3 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)