首页 > php教程 > php手册 > 正文

前端学PHP之面向对象系列第六篇简单图形面积计算器实现

php中文网
发布: 2016-11-16 10:24:01
原创
1702人浏览过

前面的话

  本文用面向对象的技术来实现一个简单的图形面积计算器

 

立即学习PHP免费学习笔记(深入)”;

图形类

1

2

3

4

5

6

7

8

9

<span style="color: #008000;">//</span><span style="color: #008000;">rect.class.php</span>

<?<span style="color: #000000;">php

    </span><span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Shape{

        </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$name</span><span style="color: #000000;">;

        </span><span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> area();

        </span><span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> view();

        </span><span style="color: #0000ff;">abstract</span> <span style="color: #0000ff;">function</span> test(<span style="color: #800080;">$arr</span><span style="color: #000000;">);

    }

</span>?>

登录后复制

 

立即学习PHP免费学习笔记(深入)”;

主界面

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

<span style="color: #008000;">//</span><span style="color: #008000;">index.php</span>

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<style>

.<span style="color: #000000;">box{

    width</span>:<span style="color: #000000;"> 800px;

    margin</span>: 0<span style="color: #000000;"> auto;

}

</span></style>

</head>

<body>

<div <span style="color: #0000ff;">class</span>="box">

    <h1>图形计算器</h1>

    <div>

        <a href="index.php?action=rect">矩形</a>

        <a href="index.php?action=triangle">三角形</a>

    </div>

</div>   

    <?<span style="color: #000000;">php

        </span><span style="color: #008080;">error_reporting</span>(<span style="color: #ff00ff;">E_ALL</span> & ~<span style="color: #ff00ff;">E_NOTICE</span><span style="color: #000000;">);

        </span><span style="color: #0000ff;">function</span> __autoload(<span style="color: #800080;">$classname</span><span style="color: #000000;">){

            </span><span style="color: #0000ff;">include</span> <span style="color: #008080;">strtolower</span>(<span style="color: #800080;">$classname</span>).".class.php"<span style="color: #000000;">;

        }

        </span><span style="color: #0000ff;">if</span>(!<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$_GET</span>['action'<span style="color: #000000;">])) {

            </span><span style="color: #800080;">$classname</span> = <span style="color: #008080;">ucfirst</span>(<span style="color: #800080;">$_GET</span>['action'<span style="color: #000000;">]);

            </span><span style="color: #800080;">$shape</span>=<span style="color: #0000ff;">new</span> <span style="color: #800080;">$classname</span>(<span style="color: #800080;">$_POST</span><span style="color: #000000;">);

            </span><span style="color: #800080;">$shape</span>-><span style="color: #000000;">view();

            </span><span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$_POST</span>['dosubmit'<span style="color: #000000;">])) {

                </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$shape</span>->test(<span style="color: #800080;">$_POST</span><span style="color: #000000;">)) {

                    </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$shape</span>->name."的面积为:".<span style="color: #800080;">$shape</span>->area()."<br>"<span style="color: #000000;">;

                }

            }

        }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{

            </span><span style="color: #0000ff;">echo</span> "请选择一个要计算的图形!<br>"<span style="color: #000000;">;

        }

    </span>?>

</body>

</html>

登录后复制

 

立即学习PHP免费学习笔记(深入)”;

矩形类

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

<span style="color: #008000;">//</span><span style="color: #008000;">rect.class.php</span>

<?<span style="color: #000000;">php

</span><span style="color: #0000ff;">class</span> Rect <span style="color: #0000ff;">extends</span><span style="color: #000000;"> Shape{

    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$width</span><span style="color: #000000;">;

    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$height</span><span style="color: #000000;">;

    </span><span style="color: #0000ff;">function</span> __construct(<span style="color: #800080;">$arr</span>=<span style="color: #000000;">[]){

        </span><span style="color: #0000ff;">if</span>(!<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$arr</span><span style="color: #000000;">)){

            </span><span style="color: #800080;">$this</span>->width = <span style="color: #800080;">$arr</span>['width'<span style="color: #000000;">];

            </span><span style="color: #800080;">$this</span>->height = <span style="color: #800080;">$arr</span>['height'<span style="color: #000000;">];

        }

        </span><span style="color: #800080;">$this</span>->name = "矩形"<span style="color: #000000;">;

    }

    </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> area() {

        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>->width * <span style="color: #800080;">$this</span>-><span style="color: #000000;">height;

    }

    </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> view() {

        </span><span style="color: #800080;">$form</span> = '<form action="index.php?action=rect" method="post">'<span style="color: #000000;">;

        </span><span style="color: #800080;">$form</span> .=<span style="color: #800080;">$this</span>->name.'的宽:<input name="width" value=""/><br>'<span style="color: #000000;">;

        </span><span style="color: #800080;">$form</span> .=<span style="color: #800080;">$this</span>->name.'的高:<input name="height" value=""/><br>'<span style="color: #000000;">;

        </span><span style="color: #800080;">$form</span> .='<input type="submit" name="dosubmit" value="计算"><br>'<span style="color: #000000;">;

        </span><span style="color: #800080;">$form</span> .='</form>'<span style="color: #000000;">;

        </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$form</span><span style="color: #000000;">;

    }

    </span><span style="color: #0000ff;">function</span> test(<span style="color: #800080;">$arr</span><span style="color: #000000;">) {

        </span><span style="color: #800080;">$bg</span> = <span style="color: #0000ff;">true</span><span style="color: #000000;">;

        </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$arr</span>['width'] < 0<span style="color: #000000;">) {

            </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$this</span>->name."的宽不能小于0!<br>"<span style="color: #000000;">;

            </span><span style="color: #800080;">$bg</span> = <span style="color: #0000ff;">false</span><span style="color: #000000;">;   

        }

        </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$arr</span>['height'] < 0<span style="color: #000000;">) {

            </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$this</span>->name."的高度不能小于0!<br>"<span style="color: #000000;">;

            </span><span style="color: #800080;">$bg</span> = <span style="color: #0000ff;">false</span><span style="color: #000000;">;

        }

        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$bg</span><span style="color: #000000;">;

    }

}

</span>?>

登录后复制

 

立即学习PHP免费学习笔记(深入)”;

三角形类

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

<span style="color: #008000;">//</span><span style="color: #008000;">triangle.class.php</span>

<?<span style="color: #000000;">php

</span><span style="color: #0000ff;">class</span> Triangle <span style="color: #0000ff;">extends</span><span style="color: #000000;"> Shape{

    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$b1</span><span style="color: #000000;">;

    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$b2</span><span style="color: #000000;">;

    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$b3</span><span style="color: #000000;">;

    </span><span style="color: #0000ff;">function</span> __construct(<span style="color: #800080;">$arr</span>=<span style="color: #000000;">[]){

        </span><span style="color: #0000ff;">if</span>(!<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$arr</span><span style="color: #000000;">)){

            </span><span style="color: #800080;">$this</span>->b1 = <span style="color: #800080;">$arr</span>['b1'<span style="color: #000000;">];

            </span><span style="color: #800080;">$this</span>->b2 = <span style="color: #800080;">$arr</span>['b2'<span style="color: #000000;">];

            </span><span style="color: #800080;">$this</span>->b3 = <span style="color: #800080;">$arr</span>['b3'<span style="color: #000000;">];

        }

        </span><span style="color: #800080;">$this</span>->name = "三角形"<span style="color: #000000;">;

    }

    </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> area() {

        </span><span style="color: #800080;">$p</span> = (<span style="color: #800080;">$this</span>->b1 + <span style="color: #800080;">$this</span>->b2 + <span style="color: #800080;">$this</span>->b3)/2<span style="color: #000000;">;

        </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">sqrt</span>(<span style="color: #800080;">$p</span>*(<span style="color: #800080;">$p</span>-<span style="color: #800080;">$this</span>->b1)*(<span style="color: #800080;">$p</span>-<span style="color: #800080;">$this</span>->b2)*(<span style="color: #800080;">$p</span>-<span style="color: #800080;">$this</span>-><span style="color: #000000;">b3));

    }

    </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> view() {

        </span><span style="color: #800080;">$form</span> = '<form action="index.php?action=triangle" method="post">'<span style="color: #000000;">;

        </span><span style="color: #800080;">$form</span> .=<span style="color: #800080;">$this</span>->name.'第一个边的宽:<input name="b1" value=""/><br>'<span style="color: #000000;">;

        </span><span style="color: #800080;">$form</span> .=<span style="color: #800080;">$this</span>->name.'第二个边的宽:<input name="b2" value=""/><br>'<span style="color: #000000;">;

        </span><span style="color: #800080;">$form</span> .=<span style="color: #800080;">$this</span>->name.'第三个边的宽:<input name="b3" value=""/><br>'<span style="color: #000000;">;

        </span><span style="color: #800080;">$form</span> .='<input type="submit" name="dosubmit" value="计算"><br>'<span style="color: #000000;">;

        </span><span style="color: #800080;">$form</span> .='</form>'<span style="color: #000000;">;

        </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$form</span><span style="color: #000000;">;

    }

    </span><span style="color: #0000ff;">function</span> test(<span style="color: #800080;">$arr</span><span style="color: #000000;">) {

        </span><span style="color: #800080;">$bg</span> = <span style="color: #0000ff;">true</span><span style="color: #000000;">;

        </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$arr</span>['b1'] < 0<span style="color: #000000;">) {

            </span><span style="color: #0000ff;">echo</span> "第一个边的宽不能小于0!<br>"<span style="color: #000000;">;

            </span><span style="color: #800080;">$bg</span> = <span style="color: #0000ff;">false</span><span style="color: #000000;">;   

        }

        </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$arr</span>['b2'] < 0<span style="color: #000000;">) {

            </span><span style="color: #0000ff;">echo</span> "第二个边的宽不能小于0!<br>"<span style="color: #000000;">;

            </span><span style="color: #800080;">$bg</span> = <span style="color: #0000ff;">false</span><span style="color: #000000;">;   

        }

        </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$arr</span>['b3'] < 0<span style="color: #000000;">) {

            </span><span style="color: #0000ff;">echo</span> "第三个边的宽不能小于0!<br>"<span style="color: #000000;">;

            </span><span style="color: #800080;">$bg</span> = <span style="color: #0000ff;">false</span><span style="color: #000000;">;   

        }

        </span><span style="color: #0000ff;">if</span>((<span style="color: #800080;">$arr</span>['b1'] + <span style="color: #800080;">$arr</span>['b2'] < <span style="color: #800080;">$arr</span>['b3'])||(<span style="color: #800080;">$arr</span>['b1'] + <span style="color: #800080;">$arr</span>['b3'] < <span style="color: #800080;">$arr</span>['b2'])||(<span style="color: #800080;">$arr</span>['b3'] + <span style="color: #800080;">$arr</span>['b2'] < <span style="color: #800080;">$arr</span>['b1'<span style="color: #000000;">])){

            </span><span style="color: #0000ff;">echo</span> '两边之和不能小于第三边<br>'<span style="color: #000000;">;

            </span><span style="color: #800080;">$bg</span> = <span style="color: #0000ff;">false</span><span style="color: #000000;">;

        }

        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$bg</span><span style="color: #000000;">;

    }

}

</span>?>

登录后复制
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号