PHP课程笔记10

课时176 PHP图形计算器需求分析

<?php
/*
* 一个形状的抽象类,定义子类必须实现的方法
*
*
*
*/
abstract class shape {
public $name; //形状的名字

abstract function area(); //求面积

abstract function zhouchang(); //求周长

abstract function view(); //形状的图形表单

abstract function check(); //验证是否是该形状
}
?>



课时177 PHP图形计算器功能设计

<?php
/*
* 这个类是一个矩形的类,这个类要按形状的规范去实现
*
*/
class rect extends shape {
private $width;
private $height;

function __construct($arr){
$this->width = $arr[‘width‘];
$this->height = $arr[‘height‘];
$this->name = $arr[‘name‘];
}

function area(){
return $this->width * $this->height;
}
function zhouchang() {
return 2*($this->width + $this0->height);
}
function view(){
$form = ‘<form action ="index.php" method="post">‘;
$form .= $this->name.‘的宽:<input type="text" name="width" value="" /><br/>‘;
$form .= $this->name.‘的高:<input type="text" name="height" value="" /><br/>‘;
$form .= ‘<input type = "submit" name="dosubmit" value="计算"><br>‘;
$form .= "<form>";
}
function check(){
$bg = true;
if($arr[‘width‘]<0){
echo $this->name."的宽不能小于0<br>";
$bg = false;
}
if($arr[‘height‘]<0){
echo $this->name."的高不能小于0<br>";
$bg = false;
}

return $bg;

}
}
?>



课时178 PHP图形计算器主程序的实现

<?php
/*
* 在<a>连接里用一个参数区分用户的操作,作为测试使用
*
*/
?>

<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> ||
<a href="index.php>action=triangle">三角形</a>
</center>

<hr/>

<?php
//判断用户是否有选择单机一个形状链接
if(!empty($_GET[‘action‘])){

echo $_GET[‘action‘];

//如果用户没有单机连接,则是默认访问这个主程序
}else{
echo "请选择一个要计算的图形!<br>";
}

?>
</body>
</html>



课时179 PHP图形计算器主程序的步骤及代码

<?php
/*
* 在<a>连接里用一个参数区分用户的操作,作为测试使用
*
*/
error_reporting(E_ALL ^ E_NOTICE);
?>

<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> ||
<a href="index.php?action=triangle">三角形</a>
</center>

<hr/>

<?php

//设置自动加载这个程序需要的类文件
function __autoload($classname){
include strtolower($classname).".class.php";
}

//判断用户是否有选择单机一个形状链接
if(!empty($_GET[‘action‘])){
//1.创建形状的对象
$classname = $_GET[‘action‘];

$shape = new $classname($_POST);
//2.调用图形的对象中的界面view()

$shape -> view();

//3.用户是否提交了对应图形界面的表单
if(isset($_POSP[‘dosubmit‘])){

}

//4.查看用户输入的数据是否正确,失败则提示
if($shape->check($_POST)){
//5.计算图形周长和面积
echo $shape->name."周长为:".$shape -> zhouchang()."<br>";
echo $shape->name."面积为:".$shape -> area()."<br>";
}
//如果用户没有单机连接,则是默认访问这个主程序
}else{
echo "请选择一个要计算的图形!<br>";
}

?>
</body>
</html>

结果:

简单的图形计算器

矩形 || 三角形



请选择一个要计算的图形!



课时180 PHP图形计算器主程序完成检验

<?php
/*
* 在<a>连接里用一个参数区分用户的操作,作为测试使用
*
*/
error_reporting(E_ALL ^ E_NOTICE);
?>

<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> ||
<a href="index.php?action=triangle">三角形</a> ||
<a href="index.php?action=circle">圆形</a>
</center>

<hr/>

<?php

//设置自动加载这个程序需要的类文件
function __autoload($classname){
include strtolower($classname).".class.php";
}

//判断用户是否有选择单机一个形状链接
if(!empty($_GET[‘action‘])){
//1.创建形状的对象
$classname = $_GET[‘action‘];

$shape = new $classname($_POST);
//2.调用图形的对象中的界面view()

$shape -> view();

//3.用户是否提交了对应图形界面的表单
if(isset($_POSP[‘dosubmit‘])){

}

//4.查看用户输入的数据是否正确,失败则提示
if($shape->check($_POST)){
//5.计算图形周长和面积
echo $shape->name."周长为:".$shape -> zhouchang()."<br>";
echo $shape->name."面积为:".$shape -> area()."<br>";
}
//如果用户没有单机连接,则是默认访问这个主程序
}else{
echo "请选择一个要计算的图形!<br>";
}

?>
</body>
</html>

circle.class.php

<?php

class circle extends shape {
private $r;
const PI = 3.14;

function __construct($arr = array()) {
if(!empty($arr)){
$this->r = $arr[‘r‘];
}
$this ->name = "圆形";
}

function area(){
return self::PI * $this->r * $this->r;
}

function zhouchang(){
return 2 * self::PI * $this ->r;
}

function view(){
$form = ‘<form action ="index.php?action=circle" method="post">‘;
$form .= $this->name.‘的半径:<input type="text" name="r" value="‘.$_POST[‘r‘].‘" /><br/>‘;
$form .= ‘<input type = "submit" name="dosubmit" value="计算"><br>‘;
$form .= "<form>";
echo $form;
}

function check($arr){
$bg = true;
if($arr[‘r‘] <= 0){
echo $this->name."的半径不能小于0<br>";
$bg = false;
}
return $bg;
}
}

?>

triangle.class.php

<?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 = "三角形";

}
function area(){
$p = ($this->bian1 + $this ->bian2 + $this->bian3)/2;
return sqrt($p*($p-$this->bian1)*($p-$this->bian2)*($p-$this->bian3));

}

function view(){
$form = ‘<form action ="index.php?action=triangle" method="post">‘;
$form .= $this->name.‘的边1:<input type="text" name="bian1" value="‘.$_POST[‘bian1‘].‘" /><br/>‘;
$form .= $this->name.‘的边2:<input type="text" name="bian2" value="‘.$_POST[‘bian2‘].‘" /><br/>‘;
$form .= $this->name.‘的边3:<input type="text" name="bian3" value="‘.$_POST[‘bian3‘].‘" /><br/>‘;
$form .= ‘<input type = "submit" name="dosubmit" value="计算"><br>‘;
$form .= "<form>";
echo $form;
}

function zhouchang() {
return $this->bian1 + $this->bian2 + $this->bian3;

}
function check($arr){
$bj = true;
if($arr[‘bian1‘] < 0){
echo "第一个边不能小于0";
$bj = false;
}
if($arr[‘bian2‘] < 0){
echo "第二个边不能小于0";
$bj = false;
}
if($arr[‘bian3‘] < 0){
echo "第三个边不能小于0";
$bj = false;
}

if($arr[‘bian1‘]+$arr[‘bian2‘]<$arr[‘bian3‘] || $arr[‘bian1‘]+$arr[‘bian3‘]<$arr[‘bian2‘] || $arr[‘bian3‘]+$arr[‘bian2‘]<$arr[‘bian1‘]){
echo "两边只和必须大于第三边";
$bj = false;
}

return $bj;
}
}
?>



课时181 与类有关的魔术常量和函数

<?php
class Demo{
function test(){
echo __CLASS__."<br>";
$arr = array();
array_filter($arr,array(__CLASS__,"hello"));

echo __METHOD__;
}

function hello(){

}

}

$d = new Demo;
$d ->test();
?>

结果:

Demo
Demo::test



课时182 PHP命名空间的概述

/*
* 命名空间
*
* 1.常量
* 2.函数
* 3.类
*
* namespace
*/



PHP课程笔记10

时间: 2024-10-18 12:28:16

PHP课程笔记10的相关文章

Coursera台大机器学习课程笔记10 -- Linear Models for Classification

这一节讲线性模型,先将几种线性模型进行了对比,通过转换误差函数来将linear regression 和logistic regression 用于分类. 比较重要的是这种图,它解释了为何可以用Linear Regression或Logistic Regression来替代Linear Classification 然后介绍了随机梯度下降法,主要是对梯度下降法的一个改进,大大提高了效率. 最后讲了多类别分类,主要有两种策略:OVA和OVO OVA思想很简单,但如果类别很多并且每个类别的数目都差不

Linux操作系统及应用课程笔记 索引

第0部分  软件的安装与配置 Linux下软件的安装与配置 第1部分*   绪论 第2部分*  Linux的安装过程 第3部分   系统Shell和常用命令 Shell文件相关常用命令及参数总结 Linux下常用命令 第4部分  VI编辑器 Linux下vi编辑器的使用 <<学习vi和vim编辑器>>1 <<学习vi和vim编辑器>>2 第5部分  Shell脚本 Shell入门之脚本管理 Shell入门之测试操作 Shell入门之条件循环 Shell入门之

Andrew Ng机器学习课程笔记(五)之应用机器学习的建议

Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.html 前言 学习了Andrew Ng课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,后面的内容会陆续更新! 这篇博客主要记录了Andrew Ng课程第五章应用机器学习的建议,主要介绍了在测试新数据出现较大误差该怎么处理,这期间讲到了数据集的分类,偏差,方差,学习曲线等概念,帮

(转)妙味课堂—JavaScrip中级课程笔记

DOM基础概念.操作 DOM的概念及节点类型 childNodes children nodeType attributes 子节点和兄弟节点的操作 firstChild firstElementChild lastChild.lastElementChild nextSibling.previousSibling 父节点 parentNode offsetParent 元素位置宽高 offsetLeft.offsetTop offsetWidth.offsetHeight getPos() 操

(1/18)重学Standford_iOS7开发_iOS概述_课程笔记

写在前面:上次学习课程对iOS还是一知半解,由于缺乏实践,看公开课的视频有时不能很好地领会知识.带着问题去学习永远是最好的方法,接触一段时间iOS开发以后再来看斯坦福iOS公开课,又会有许多新的发现,对于已有的概念有了新的认识.这次课程笔记主要用作归纳知识点,整理学习思路,与大家讨论课后习题,交流等. 第一课:iOS概述 1.iOS分层:①Core OS:核心操作系统层,基于UNIX内核(套接字,文件系统,电源管理,钥匙串,Bonjour等).API多为C函数,实际应用使用较少. ②Core S

斯坦福CS229机器学习课程笔记六:学习理论、模型选择与正则化

稍微了解有监督机器学习的人都会知道,我们先通过训练集训练出模型,然后在测试集上测试模型效果,最后在未知的数据集上部署算法.然而,我们的目标是希望算法在未知的数据集上有很好的分类效果(即最低的泛化误差),为什么训练误差最小的模型对控制泛化误差也会有效呢?这一节关于学习理论的知识就是让大家知其然也知其所以然. 学习理论 1.empirical risk minimization(经验风险最小化) 假设有m个样本的训练集,并且每个样本都是相互独立地从概率分布D中生成的.对于假设h,定义training

Andrew Ng机器学习课程笔记(四)之神经网络

Andrew Ng机器学习课程笔记(四)之神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言 学习了Andrew Ng课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,后面的内容会陆续更新! 这篇博客主要记录Andrew Ng课程第四章和第五章的神经网络,主要介绍前向传播算法,反向传播算法,神经网络的多类分类,梯度校验,参数随机初始化,参数的更新等等 1.神经网络概述

《nodejs+gulp+webpack基础实战篇》课程笔记(六)--附加课

一.多页面分离资源引用,按需引用JS和css 我们前面实现了以下功能:1.新建了一个login模版(用到htmlWebpackPlugin).2.分别把main.js和login.js.reg.js分开写.3.学习了css加载器.我们通过webpack可以打包js文件.自动注入js和CSS引用. 那么我们要加载多页面如何操作呢?现在我们就在/src/tpl 文件夹下新件一个index.html文件,在CSS加入index.css,随便写两个样式,然后在/src/下新建一个index.js,随便写

《CSS动画实用技巧》课程笔记

概述 这是我学习CSS动画实用技巧的课程笔记 常用动画属性--transition .change img{ display:block; width:300px; height:284px; opacity:0; -webkit-transform:translate(-100px,-100px); -webkit-transition:opacity 1s ease-in-out 0.5s,-webkit-transform 1s ease-in-out; transition: opaci