PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles

不言
Release: 2023-03-24 15:50:01
Original
11275 people have browsed it


I just finished learning PHP object-oriented programming and learned this example with reference to teacher Gao Luofeng's PHP tutorial.

Effect picture:

PHP object-oriented programming exercises: Calculate the perimeter and area of ​​rectangles, triangles, and circles
PHP object-oriented programming exercises: Calculate the perimeter and area of ​​rectangles, triangles, and circles
PHP object-oriented programming exercises: Calculate the perimeter and area of ​​rectangles, triangles, and circles

##The following is the implementation code:

index.php
form.class.php_This is the form class_
action = $action; $this->shape=isset($_REQUEST["action"])?$_REQUEST["action"]:"rect"; } function __toString() { // TODO: Implement __toString() method. $form='
'; switch($this->shape){ case "rect": $form.=$this->getRect(); break; case "triangle": $form.=$this->getTriangle(); break; case "circle": $form.=$this->getCircle(); break; default: $form.='请选择一个形状
'; } $form.=''; $form.='
'; return $form; } private function getRect(){ $input='请输入 | PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles | 的宽度和高度:

'; $input.='宽度:
'; $input.='高度:
'; $input.=''; return $input; } private function getTriangle(){ $input='请输入 | PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles | 的三条边:

'; $input.='第一边:
'; $input.='第二边:
'; $input.='第三边:
'; $input.=''; return $input; } private function getCircle(){ $input='请输入 | PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles | 的半径:

'; $input.='半径:
'; $input.=''; return $input; } }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 16:26 * */

Copy after login
shape.class.php
This is an abstract class used to define specifications
shapeName = $shapeName; return $this; } //判断输入的数字是否为大于0的有效数字 protected function validate($value, $message="形状"){ if($value == "" || !is_numeric($value) || $value < 0 ){ echo ' '.$message.' 必须为非负值的数字,并且不能为空 
'; return false; } else { return true; } } }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 16:42 */
Copy after login
circle.class.php_It is the formula for calculating perimeter and area_
shapeName="PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles"; if($this->validate($_POST['radius'], '圆的半径')){ $this->radius=$_POST["radius"]; }else{ exit; } } function area(){ return pi()*$this->radius*$this->radius; } function perimeter(){ return 2*pi()*$this->radius; } }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 17:06 */
Copy after login
rect.class.php
shapeName="PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles"; if($this->validate($_POST["width"],'PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles的宽度') & $this->validate($_POST["height"],'PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles的高度')) { $this->width=$_POST["width"]; $this->height=$_POST["height"]; } else{ exit; } } function area(){ return $this->width*$this->height; } function perimeter() { return 2 * ($this->width + $this->height); } }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 17:02 */
Copy after login
triangle.class.php
shapeName="PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles"; if($this->validate($_POST['side1'], 'PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles的第一个边')){ $this->side1=$_POST["side1"]; } if($this->validate($_POST['side2'], 'PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles的第二个边')){ $this->side2=$_POST["side2"]; } if($this->validate($_POST['side3'], 'PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles的第三个边')){ $this->side3=$_POST["side3"]; } if(!$this->validateSum()){ echo 'PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles的两边之和必须大于第三边'; exit; } } function area(){ $s=( $this->side1+$this->side2+$this->side3 )/2; return sqrt( $s * ($s - $this->side1) * ($s - $this->side2) * ($s - $this->side3) ); } function perimeter(){ return $this->side1+$this->side2+$this->side3; } private function validateSum() { $condition1 = ($this->side1 + $this->side2) > $this->side3; $condition2 = ($this->side1 + $this->side3) > $this->side2; $condition3 = ($this->side2 + $this->side3) > $this->side1; if ($condition1 && $condition2 && $condition3) { return true; } else { return false; } } }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 17:04 */
Copy after login
result.class.php_Here is the return calculation result class_
shape=new Rect(); break; case 'triangle': $this->shape=new Triangle(); break; case 'circle': $this->shape=new Circle(); break; default: $this->shape=false; } } /** * @return string */ function __toString() { // TODO: Implement __toString() method. if($this->shape){ $result=$this->shape->shapeName.'的周长:'.$this->shape->perimeter().'
'; $result.=$this->shape->shapeName.'的面积:'.$this->shape->area().'
'; return $result; }else{ return '没有这个形状'; } } }/** * Created by PhpStorm. * User: user * Date: 2018/4/15 * Time: 16:47 */
Copy after login
Related recommendations:

PHP object-oriented static delayed binding static::

The above is the detailed content of PHP object-oriented programming exercises: Calculate the perimeter and area of rectangles, triangles, and circles. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!