php:兄弟连之面向对象版图形计算器1
曾经看细说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相关推荐
- php面向对象编写计算器,使用面向对象的图形计算器
这个例子可能并不实用,但基本概括了面向对象的三个特征:继承性,封装性,多态性.本例的主要功能有:让用户可以选择不同类型的图形: 对所选的图形输入其相关属性: 根据输入的属性计算该图形的周长和面积. 效 ...
- php面向对象编写计算器,使用面向对象的图形计算器,面向对象图形计算器_PHP教程...
使用面向对象的图形计算器,面向对象图形计算器 这个例子可能并不实用,但基本概括了面向对象的三个特征:继承性,封装性,多态性.本例的主要功能有: 效果如下: 思路: 需要改进的地方: index.php ...
- MATLAB图形计算器去广告,Mathlab Pro安卓去谷歌版下载-Mathlab计算器安卓去广告版下载v4.11.114 手机版-西西软件下载...
Mathlab计算器安卓精简版是一款强大的科学计算器应用,小到中小学,大到研究生,生活工作中,这款科学计算器都可以帮助你解决计算问题,而且还具有图形显示功能,有需求的朋友自然会了解并能用的上,本版本为 ...
- 手机图形计算器matlab,科学图形计算器 Mathlab-科学图形计算器手机版下载V4.12-西西软件下载...
科学图形计算器手机版是一款便捷的图形计算掌上应用.科学图形计算器手机版是一款非常专业的计算器,无论是中小学生和大学生研究生,都能用此应用进行复杂的计算.软件最出色的地方在于您输入的过程中软件便会自动显 ...
- 实验楼Java写计算器_Java版图形界面计算器
Java 版图形界面计算器 实验说明及介绍 环境登录 无需密码自动登录,系统用户名 shiyanlou,密码 shiyanlou 环境介绍 本实验环境采用带桌面的 Ubuntu Linux 环境,实验 ...
- Java版图形界面计算器
Java版图形界面计算器 1. 实验介绍 1. 实验内容 2. 实验知识点 3. 完整代码 2. 实验原理 3. 实验步骤 1. 项目创建 2. UI组件创建和初始化 3. 在窗口中添加 UI 组件 ...
- php面向对象编写计算器,面向对象的实例应用:图形计算器
1.使用动态页面实现图形计算器,可以计算给定图形的周长和面积 2.可以使用接口或抽象类作为规范,再写各子类的多态 3.动态页面如下: #cal{ text-align: center; } 图形计算器 ...
- android图形计算器,图形计算器官方版 v4.11
图形计算器是一款很创意的教学工具,别具一格的界面设计,更添几分趣味,独有的设计理念,让教学更急生动,是一个很好的数学课堂学习平台. 图形计算器提供了一种只管教学手段和一个探究研究的环境,许多数学概念都 ...
- 用面向对象思想实现计算器功能(Java版)
/*** 使用面向对象思想实现计算器的功能,要求实现加减乘除*/ import java.util.Scanner; public class TestCalculator {public stati ...
最新文章
- Java项目:考试管理系统(java+Springboot+Maven+Jpa+Vue+Mysql)
- 浅谈 MySQL 子查询及其优化
- 任正非未来出行三谈,在攀登无人驾驶珠峰路上沿途下蛋...
- openstack migrate image
- 7-15 QQ帐户的申请与登陆 (25 分)(map做法+思路分析)
- stm32 PWM输入捕获
- java 多线程取一条记录_java多线程从队列中取出数据执行
- redis 3.0 java 工具包_redis分布式锁工具包,提供纯Java方式调用
- jquery $.fn $.fx $.extend
- 一个盒子相对于另一盒子垂直居中的方法
- nodejs基础 -- web模块
- 数独程序求解世界最难数独——JAVA版
- iOS逆向专栏总目录(持续更新)
- 网络安全等级保护的过程
- 三个div怎么分别靠左、居中、靠右显示
- 北京工作居住证续签注意的问题
- ACP.敏捷概念梳理1
- 计算机专业用什么轴的键盘,机械键盘什么轴好
- python数据不足位数补0
- 风控建模十二:数据淘金——如何从APP数据中挖掘出有效变量
热门文章
- Day 21 20190205 老男孩python学习第21天 内容整理
- Java8-如何构建一个Stream
- linux下安装oracle sqlplus以及imp、exp工具
- android数据的五种存储方式
- 使用腾讯开发平台获取QQ用户数据资料
- 时区日期处理及定时 (NSDate,NSCalendar,NSTimer,NSTimeZone)
- VTK:一个面向对象的可视化类库(zz)
- :nth-child(n)与:nth-of-type(n)为啥显示不对呢
- MVC是架构模式,而不是设计模式
- XAML中格式化日期