php教程自学网 - 轻松零基础学php视频教程
条幅广告
当前位置: 主页 > PHP个人博客专栏 >

青衫慧博客:PHP学习作业一 流程控制和循环

时间:2019-06-25 17:47来源:未知 作者:admin 点击:
任务描述 一、语言和环境 实现语言:php语言 环境要求及开发工具:wamp,phpstudy或其它集成开发环境,sublime,phpstorm或其它编辑器 二、程序整体要求 1、思路清晰,依据思路写出的实现代
 
任务描述
一、语言和环境
实现语言:php语言
 
环境要求及开发工具:wamp,phpstudy或其它集成开发环境,sublime,phpstorm或其它编辑器
 
二、程序整体要求
1、思路清晰,依据思路写出的实现代码需层次分明,整洁易懂
 
2、功能实现应逻辑严谨,判断充分合理
 
3、代码格式及命名要规范整齐,可读性强
 
4、要求程序运行效果与提供的页面效果图,结构保持一致,文字大小,颜色不做统一要求
 
5、将作业形成压缩文件并提交
 
三、思路分析:
步骤一:在这个PHP文件中混编html代码,实现输入行数的input框以及“金字塔”和“空心菱形”的button按钮。
 
注意:
 
button按钮需设置value值,方便区分页面点击button按钮出现对应的图案。
 
form表单的提交地址是当前页面。
 
 
 
步骤二:金字塔实现步骤:
 
1、在PHP部分,首先接受表单POST方式的传参,判断参数是否是金字塔,如果是金字塔参数,那么就执行实现金字塔的循环。
 
2、实现每行相对前一行多2个*的规律。
 
首先,接受页面传过来的层数n,循环n,在这个循环中先打印一个由空格组成的倒直角三角形,注意可能有些浏览器对 &nbsp 与 * 的大小解析不相等,所以这里可以输出隐藏样式(style=”color:#FFF;”)的*来保证在浏览器页面呈现的是一个完全的倒三角。
 
其次,在层循环中打印一个由星号组成的等腰三角形,三角形星星的个数=2*层数-1。
 
最后,输出换行即可。
 
 
 
步骤三:空心菱形实现步骤:
 
1、在PHP部分,首先接受表单POST方法的传参,判断参数是否是空心菱形,如果是空心菱形参数,那么就执行实现空心菱形的循环。
 
2、用循环实现一个第一行和最后一行是一颗星星,其余中间每一行是行头,行尾各一颗星星的菱形的形状。
 
参考实现思路:
 
实现菱形的上半部分(想象一个空心的无底边三角形)。
 
首先,接受页面传过来的层数,循环这个层数。
 
其次,在层数的循环中,先打印一个空的倒直角三角,然后打印一个实心型三角,判断输出行首行尾的星星,中间部分直接打印出空。
 
最后,给每层打印换行。
 
 
 
实现菱形的下半部分(想象成一个空心的无底边的倒三角形)。
 
首先,在层数的循环中,先打印一个空的倒三角,然后打印一个实心型三角,同样判断输出行首行尾的星星,中间部分直接打印出空。
 
(注意循环层数的条件的变化)。
 
其次,给每层打印换行
 
作业内容
<html lang="zh">
<head>
    <title>PHP第一章节作业 - By QingShanKing</title>
</head>
<body>
<form action="phpwork.php" method="post">
    <input type="text" name="num" placeholder="请输入要打印的行数" style="width: 200px;height: 30px;border-radius: 5px;"><br><br>
    <input type="submit" name="echo_jzt" value="金字塔">&nbsp;&nbsp;
    <input type="submit" name="echo_kxl" value="空心菱形">
</form>
</body>
</html>
<?php
if (isset($_POST[’num’])) {
    $num = $_POST[’num’];
    //判断是否为正整数
    if ($num > 0 && floor($num) == $num) {
        //如果当前为金字塔
        if (isset($_POST[’echo_jzt’])) {
            for ($i = 1; $i <= $num; $i++) {
                for ($n = 1; $n <= $num - $i; $n++) {
                    echo ’&nbsp;’;
                }
                for ($j = 1; $j <= 2 * $i - 1; $j++) {
                    echo ’*’;
                }
                echo ’<br>’;
            }
        }
        //空心菱形
        if (isset($_POST[’echo_kxl’])) {
            for ($i = 1; $i <= $num; $i++) //i表示空心菱形上半部分行数;类似于金字塔行数
            {
                for ($j = 1; $j <= $num - $i; $j++) //j表示每行"*"号前面的空格数
                {
                    echo ’&nbsp;’;
                }
                for ($k = 1; $k <= 2 * $i - 1; $k++) //k表示每行要打印的"*"号
                {
                    if ($k == 1 || $k == 2 * $i - 1) //如果要打印的"*"是第一个或最后一个则打印出来
                    {
                        echo ’*’;
                    } else
                        echo ’&nbsp;’; //如果要打印的"*"不是第一个或最后一个则打印空格
                }
                echo ’<br>’;
            }        //以上打印出来的是空心菱形的上半部分
            for ($i = 1; $i <= $num - 1; $i++)  //空心菱形下半部分的行数为lay-1行;比如上半部分4行,则下半部分为3行才能构成菱形
            {
                for ($j = 1; $j <= $i; $j++) //每行空格数
                {
                    echo ’&nbsp;’;
                }
                for ($k = 1; $k <= 2 * ($num - $i) - 1; $k++) //下半部分每行总的"*"数
                {
                    if ($k == 1 || $k == 2 * ($num - $i) - 1) //如果"*"处在第一和最后一位则打印出来
                    {
                        echo ’*’;
                    } else
                        echo ’&nbsp;’; //如果"*"不是处在第一和最后一位则打印出空格
                }
                echo ’<br>’;
            }
        }
    } else echo ’层数请为正整数!’;
}
(责任编辑:admin)
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
相关推荐