PHP学习实例—2(简易图形计算器)
来源:互联网 发布:阿里云如何搭建ssr 编辑:程序博客网 时间:2024/05/16 23:37
主函数: index.php
<!doctype html><html><head><meta charset="utf-8"><title>图形计算器</title><style> * {margin: 0px;padding: 0px;}#contains { width: 500px;margin: 20px auto;background: #0C0;text-align: center;}h1 { width: 500px;height: 60px;}a { font-size: 20px;text-decoration: none;}#footer { width: 300px;background: #fff;margin: 0 auto;padding: 5px 10px;border-radius: 150px;}</style></head><body><div id="contains"> <h1>简易图形计算器</h1><a href='index.php?action=rect'>矩形</a> |<a href='index.php?action=triangle'>三角形</a>|<a href='index.php?action=cirle'>圆形</a> <hr> <?php ini_set("display_errors", "On"); //开启错误调试//设置错误报告的级别,除了无关紧要的'注意',其他的报告都输出error_reporting(E_ALL & ~E_NOTICE);function __autoload($classname) { //魔术方法 自动加载类 include strtolower($classname).".class.php"; //将类名转化成小写}//include "shape.class.php";//include "rect.class.php"; if (!empty($_GET['action'])) {//echo "传送成功";$classname = ucfirst($_GET['action']);$shape = new $classname($_POST);$shape->view($_POST);if (isset($_POST['sub'])) {echo "<div id='footer'>";if ($shape->yan($_POST)) { echo "<b>".$shape->name."的周长".$shape->zhou()."</b>"."<br>";echo "<br>";echo "<b>".$shape->name."的面积".$shape->area()."</b>"."<br>";}else { echo "<b>错误:$shape->error</b>";}echo "</div>";}} else { echo "请选择一个图形";}?></div></body></html>先定义一个抽象类
<?php abstract class Shape {private $name;private $error;abstract function area();abstract function zhou();abstract function view($arr);abstract function yan($arr);}?>
矩形类的编写
<?php class Rect extends Shape {private $width;private $height;function __construct($arr = array()) {if (!empty($arr)) { $this->width = $arr['width']; $this->height = $arr['height'];}$this->name = "矩形";$this->error = '';} function area() {return $this->width * $this->height;}function zhou() {return ($this->width+$this->height) * 2;}function view($arr) { $form .= "<form action='index.php?action=rect' method='post'>";$form .= "请输入".$arr['name']."的宽度:<input type='text' name='width' value='".$_POST['width']."'/><br>"; $form .= "<br>";$form .= "请输入".$arr['name']."的长度:<input type='text' name='height' value='".$_POST['height']."'/><br>";$form .= "<br>";$form .= "<input type='submit' name='sub' value='提交'/> ";$form .= "<input type='reset' name='ret' value='重置'/>";$form .= "</form>";echo $form;}function yan($arr) {$bz = true;if ($arr['width']< 0) { $this->error .= "宽度小于0;";$bz = false;} else { if (!is_numeric($arr['width'])) { $this->error .= "宽不是数字;";$bz = false;}}if ($arr['height']< 0) { $this->error .= "宽度小于0;";$bz = false;} else { if (!is_numeric($arr['height'])) { $this->error .= "高不是数字;";$bz = false;}}return $bz;}}?>
三角形类:
<?php class Triangle extends Shape { 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 = "三角形";$this->error = '';} function area() {$p = ($this->bian1 + $this->bian2 + $this->bian3) / 2;//p(p-a)(p-b)(p-c) return sqrt($p*($p-$this->bian1)*($p-$this->bian2)*($p-$this->bian3));}function zhou() {return $this->bian1+$this->bian2+$this->bian3;}function view($arr) { $form .= "<form action='index.php?action=triangle' method='post'>";$form .= "请输入".$arr['name']."的第一条边:<input type='text' name='bian1' value='".$_POST['bian1']."'/><br>"; $form .= "<br>";$form .= "请输入".$arr['name']."的第二条边:<input type='text' name='bian2' value='".$_POST['bian2']."'/><br>";$form .= "<br>";$form .= "请输入".$arr['name']."的第三条边:<input type='text' name='bian3' value='".$_POST['bian3']."'/><br>";$form .= "<br>";$form .= "<input type='submit' name='sub' value='提交'/> ";$form .= "<input type='reset' name='ret' value='重置'/>";$form .= "</form>";echo $form;}function yan($arr) {$bz = true;if ($arr['bian1']< 0) { $this->error .= "第一条边小于0;";$bz = false;} else { if (!is_numeric($arr['bian1'])) { $this->error .= "第一条边不是数字;";$bz = false;}}if ($arr['bian2']< 0) { $this->error .= "第二条边小0;";$bz = false;} else { if (!is_numeric($arr['bian2'])) { $this->error .= "第二条边不是数字;";$bz = false;}}if ($arr['bian2']< 0) { $this->error .= "第三条边小于0;";$bz = false;} else { if (!is_numeric($arr['bian2'])) { $this->error .= "第三条边不是数字;";$bz = false;}}if (($this->bian1+$this->bian2) < $this->bian3 ||($this->bian1+$this->bian3) < $this->bian2 ||($this->bian2+$this->bian3) < $this->bian1) { $this->error .= "三条边不能构成三角形";$bz = false;}return $bz;}}?>其他的类只要按照上面的格式改下就很好写出来了。。
0 0
- PHP学习实例—2(简易图形计算器)
- PHP学习实例—1(简易计算器)
- JavaScripts实例:简易计算器
- <Qt>实例:简易计算器
- java--简易计算器图形实现
- php简易计算器
- PHP实现简易计算器
- 菜鸟学习Struts——简易计算器
- angularJS学习小记(2)----制作简易计算器
- 蜗牛—JQuery学习之简易计算器
- 蜗牛—JavaScript学习之简易计算器
- Java程序设计 图形用户界面 小巫版简易计算器
- Java实例-Swing简易计算器(加,减,乘,数)
- 19-php函数(方法)的初步了解,简易计算器
- Java—简易计算器
- 简易计算器(JAVA)
- 简易计算器(Java)
- 简易计算器 (1)
- 将WCF中的事务传播到Com+组件
- cocos2d-x3.0实现2048游戏
- 博客学习七——redis虚拟内存、mongodb分片
- 杭电 1312 Red and black 搜索题
- 【记录】nginx 源代码
- PHP学习实例—2(简易图形计算器)
- 算法导论——lec 08 线性时间排序
- Graph的算法实现: 寻找一幅图的最小生成树(MST)
- 全栈JavaScript之路(十二)了解 Selector API
- mybatis
- K-means聚类算法
- IplImage和cv::Mat的转化
- 线段树ADT
- hdu 4821