曾经看细说PHP的时候就想做这个,可是一直没什么时间,这次总算忙里偷闲搞了代码量比較多的project。

首先,文档结构,都在一个文件夹下就好了,我的就例如以下。

一開始,进入index.php文件。

<html><head><title>图形计算器(面向对象)</title><meta http-equiv="Content-Type" content="text/html;charset=utf-8"></head><body><center><h1>图形(面积 周长)计算器)</h1><a href="index.php?action=rect">矩形</a><!-- action 是动作提交 -->|| <a href="index.php?action=triangle">三角形</a>||<a href="index.php?action=circle">圆形</a><hr></center><?phperror_reporting ( E_ALL & ~ E_NOTICE );//PHP遇到不认识的类就会调用该方法自己主动载入function __autoload($className) {include strtolower ( $className ) . ".class.php";}/**由于遇到Form类不认识,所以自己主动载入form.class.php *   */echo new Form ('index.php');if (isset ( $_POST ["sub"] )) {echo new Result ();}?></body></html>

做了这么几件事

1.能够通过$GET_[“action”]方法和$_REQUEST ["action"]方法得到传入的參数是rect, triangle还是circle。

2.通过echo new Form("index.php")和echo new Result()方法载入了form.class.php和result.class.php这两个类

3.通过echo调用了这两个类的__toString方法

接下来程序载入form.class.php这个文件

<?php
class Form {private $action;private $shape;function __construct($action = "") {$this->action = $action;/* var_dump($this->action); */$this->shape = isset ( $_REQUEST ["action"] ) ? $_REQUEST ["action"] : "rect";/* var_dump($this->shape); */}/* __toString() 方法用于一个类被当成字符串时应如何回应。比如 echo $obj; 应该显示些什么。此方法必须返回一个字符串 * * 在此输出一个表单* * */function __toString() {$form = '<form action="' . $this->action . '" method="post">';switch ($this->shape) {case "rect" :$form .= $this->getRect ();break;case "triangle" :$form .= $this->getTriangle ();break;case "circle" :$form .= $this->getcircle ();break;default :$form .= '请选择一个形状';}$form .= '<input type="submit" name="sub" value="计算">';$form .= '</form>';return $form;}private function getRect() {$input = '<b>请输入|矩形|的长和宽:</b><p>';$input .= '宽度:<input type="text" name="width" value="' . $_POST ['width'] . '"><br>';$input .= '高度:<input type="test" name="height" value="' . $_POST ['height'] . '"><br>';$input .= '<input type="hidden" name="action" value="rect">';return $input;}private function getTriangle() {$input = '<b>请输入|三角形|的三边:</b><p>';$input = '<b>请输入|三角形|的三边:</b><p>';$input .= '第一边:<input type="text" name="side1" value="' . $_POST ['side1'] . '"><br>';$input .= '第二边:<input type="test" name="side2" value="' . $_POST ['side2'] . '"><br>';$input .= '第三边:<input type="test" name="side3" value="' . $_POST ['side3'] . '"><br>';$input .= '<input type="hidden" name="action" value="triangle">';return $input;}private function getCircle() {$input = '<b>请输入|圆形|的半径:</b><p>';$input .= '半径:<input type="text" name="radius" value="' . $_POST ['radius'] . '"><br>';$input .= '<input type="hidden" name="action" value="circle">';return $input;}
}
?>

这个php做了另外一件事,就是依据$_REQUEST ["action"]或者GET_["action"]载入了不同类型形状的表单。

然后,一旦你按下计算button,接下来就转到了载入result.class.php这个文件

<?phpclass Result{private $shape;/* * 依据form.class.php里传过来的$post['action']方法接受參数*  */function __construct(){         switch($_POST['action']){       case 'rect':                    $this->shape=new Rect();        break;                          case 'triangle':                $this->shape=new Triangle();    break;                          case 'circle':                  $this->shape=new Circle();      break;//没有break会导致default的运行default:                        $this->shape=false;             }}function __toString(){          if($this->shape){               $result=$this->shape->shapeName.'的周长'.$this->shape->perimeter().'<br>';$result.=$this->shape->shapeName.'的面积'.$this->shape->area().'<br>';return $result; }               else{return'没有这个形状';       }
}
}?>

这个文件做了一件事,就是分流,依据$_POST["action"]传过来的值看,运行那一个类文件

下一篇讲各个类文件含义。

php:兄弟连之面向对象版图形计算器1相关推荐

  1. php面向对象编写计算器,使用面向对象的图形计算器

    这个例子可能并不实用,但基本概括了面向对象的三个特征:继承性,封装性,多态性.本例的主要功能有:让用户可以选择不同类型的图形: 对所选的图形输入其相关属性: 根据输入的属性计算该图形的周长和面积. 效 ...

  2. php面向对象编写计算器,使用面向对象的图形计算器,面向对象图形计算器_PHP教程...

    使用面向对象的图形计算器,面向对象图形计算器 这个例子可能并不实用,但基本概括了面向对象的三个特征:继承性,封装性,多态性.本例的主要功能有: 效果如下: 思路: 需要改进的地方: index.php ...

  3. MATLAB图形计算器去广告,Mathlab Pro安卓去谷歌版下载-Mathlab计算器安卓去广告版下载v4.11.114 手机版-西西软件下载...

    Mathlab计算器安卓精简版是一款强大的科学计算器应用,小到中小学,大到研究生,生活工作中,这款科学计算器都可以帮助你解决计算问题,而且还具有图形显示功能,有需求的朋友自然会了解并能用的上,本版本为 ...

  4. 手机图形计算器matlab,科学图形计算器 Mathlab-科学图形计算器手机版下载V4.12-西西软件下载...

    科学图形计算器手机版是一款便捷的图形计算掌上应用.科学图形计算器手机版是一款非常专业的计算器,无论是中小学生和大学生研究生,都能用此应用进行复杂的计算.软件最出色的地方在于您输入的过程中软件便会自动显 ...

  5. 实验楼Java写计算器_Java版图形界面计算器

    Java 版图形界面计算器 实验说明及介绍 环境登录 无需密码自动登录,系统用户名 shiyanlou,密码 shiyanlou 环境介绍 本实验环境采用带桌面的 Ubuntu Linux 环境,实验 ...

  6. Java版图形界面计算器

    Java版图形界面计算器 1. 实验介绍 1. 实验内容 2. 实验知识点 3. 完整代码 2. 实验原理 3. 实验步骤 1. 项目创建 2. UI组件创建和初始化 3. 在窗口中添加 UI 组件 ...

  7. php面向对象编写计算器,面向对象的实例应用:图形计算器

    1.使用动态页面实现图形计算器,可以计算给定图形的周长和面积 2.可以使用接口或抽象类作为规范,再写各子类的多态 3.动态页面如下: #cal{ text-align: center; } 图形计算器 ...

  8. android图形计算器,图形计算器官方版 v4.11

    图形计算器是一款很创意的教学工具,别具一格的界面设计,更添几分趣味,独有的设计理念,让教学更急生动,是一个很好的数学课堂学习平台. 图形计算器提供了一种只管教学手段和一个探究研究的环境,许多数学概念都 ...

  9. 用面向对象思想实现计算器功能(Java版)

    /*** 使用面向对象思想实现计算器的功能,要求实现加减乘除*/ import java.util.Scanner; public class TestCalculator {public stati ...

最新文章

  1. Java项目:考试管理系统(java+Springboot+Maven+Jpa+Vue+Mysql)
  2. 浅谈 MySQL 子查询及其优化
  3. 任正非未来出行三谈,在攀登无人驾驶珠峰路上沿途下蛋...
  4. openstack migrate image
  5. 7-15 QQ帐户的申请与登陆 (25 分)(map做法+思路分析)
  6. stm32 PWM输入捕获
  7. java 多线程取一条记录_java多线程从队列中取出数据执行
  8. redis 3.0 java 工具包_redis分布式锁工具包,提供纯Java方式调用
  9. jquery $.fn $.fx $.extend
  10. 一个盒子相对于另一盒子垂直居中的方法
  11. nodejs基础 -- web模块
  12. 数独程序求解世界最难数独——JAVA版
  13. iOS逆向专栏总目录(持续更新)
  14. 网络安全等级保护的过程
  15. 三个div怎么分别靠左、居中、靠右显示
  16. 北京工作居住证续签注意的问题
  17. ACP.敏捷概念梳理1
  18. 计算机专业用什么轴的键盘,机械键盘什么轴好
  19. python数据不足位数补0
  20. 风控建模十二:数据淘金——如何从APP数据中挖掘出有效变量

热门文章

  1. Day 21 20190205 老男孩python学习第21天 内容整理
  2. Java8-如何构建一个Stream
  3. linux下安装oracle sqlplus以及imp、exp工具
  4. android数据的五种存储方式
  5. 使用腾讯开发平台获取QQ用户数据资料
  6. 时区日期处理及定时 (NSDate,NSCalendar,NSTimer,NSTimeZone)
  7. VTK:一个面向对象的可视化类库(zz)
  8. :nth-child(n)与:nth-of-type(n)为啥显示不对呢
  9. MVC是架构模式,而不是设计模式
  10. XAML中格式化日期